A language server for Standard ML
A language server for Standard ML (SML).
Install for: VS Code • Open VSX
Millet analyzes SML code without running it, and provides information like:
Millet also supports SML/NJ Compilation Manager (CM) and ML Basis (MLB), allowing for analysis of multi-file SML projects.
Note that Millet does not actually run SML code. To do that, you’ll need an installation of SML, like SML/NJ or MLton.
VS Code and compatible editors like VSCodium are the only editors for which we provide an “official” extension. However, because Millet is a language server, it should be able to be adapted to work with any editor that supports language servers.
Millet is also available in various other package managers and repositories. These are maintained by the community and are not official, so they may be out of date.
There is some support for Millet in various editors as well:
Millet is affiliated with Project Savanna, a project whose goal is to improve tooling for Standard ML.
There is a Discord server for Project Savanna. The server has a channel for Millet support and discussion.
We encourage contributions of all kinds. Please read the contributing guide.
What | Version | Why | Required |
---|---|---|---|
Rust | Latest stable | Build Rust code | Yes |
Node.js | 20 | Build TypeScript code | No |
The project is mostly written in Rust, so you will need a Rust installation. It should include:
rustc
, a Rust compilercargo
, a Rust package manager and build systemrustfmt
, a Rust formatterclippy
, a Rust linterThe minimum supported Rust version (MSRV) is the latest stable.
If you want to build the VS Code extension in TypeScript as well, you should also install Node.js.
If your editor supports it, we also recommend installing Rust Analyzer, a language server for Rust.
This is a regular Rust project, so the usual Cargo commands will work:
$ cargo build
$ cargo test
We also use clippy and rustfmt, which can be run with cargo as well:
$ cargo fmt
$ cargo clippy
These can all be run together as they are in CI:
$ cargo xtask ci
If you’re using VS Code, you can try out the VS Code extension:
The logo features Polly Morphism, wearing a 15-150 style T-shirt, writing SML on a Millet-branded laptop, encircled with millet. Yixin He drew the logo.
Like Rust itself and many other projects in the Rust community, Millet is licensed under either the MIT license or the Apache license v2.0, at your option.