79 releases (38 stable)

new 2.9.4 Feb 19, 2025
2.9.2 Dec 11, 2024
2.9.1 Nov 29, 2024
2.7.0-rc.3 Jul 16, 2024
0.1.0 Jan 4, 2023

#34 in Magic Beans

Download history 606/week @ 2024-10-29 463/week @ 2024-11-05 365/week @ 2024-11-12 380/week @ 2024-11-19 693/week @ 2024-11-26 337/week @ 2024-12-03 433/week @ 2024-12-10 178/week @ 2024-12-17 52/week @ 2024-12-24 198/week @ 2024-12-31 209/week @ 2025-01-07 323/week @ 2025-01-14 222/week @ 2025-01-21 217/week @ 2025-01-28 267/week @ 2025-02-04 412/week @ 2025-02-11

1,191 downloads per month

Custom license

6.5MB
117K SLoC

CairoLS

Implements the LSP protocol over stdin/out.

Running vanilla

This is basically the source code of the cairo-language-server and scarb cairo-language-server binaries.

fn main() {
    cairo_lang_language_server::start();
}

Running with customizations

Due to the immaturity of various Cairo compiler parts (especially around potentially dynamically-loadable things), for some projects it might be necessary to provide a custom build of CairoLS that includes custom modifications to the compiler. The start_with_tricks function allows building a customized build of CairoLS that supports project-specific features. See the Tricks struct documentation for available customizations.

use cairo_lang_language_server::Tricks;

fn main() {
    let mut tricks = Tricks::default();
    tricks.extra_plugin_suites = Some(&|| vec![dojo_plugin_suite()]);
    cairo_lang_language_server::start_with_tricks(tricks);
}

Dependencies

~28–43MB
~685K SLoC