A language server for Standard ML (SML).
See the blog post introducing the project.
Millet analyzes SML code without running it, and provides information like:
- Inline errors
- Hover for type/documentation
- Jump to definition
Note that Millet does not actually run SML code. To do that, you'll need an installation of SML, like SML/NJ or MLton.
The language server is beta-quality software. It might be slow, wrong, incomplete, or unstable.
There is a VS Code extension on the marketplace.
VS Code is the only editor 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 affiliated with Project Savanna, a project whose goal is to improve tooling for Standard ML.
There is a Discord server for Project Savanna, and Millet has its own channel there. You can get support and discuss the project there.
Install the dependencies:
- git, to clone the repository.
- rust (i.e.
rustc
andcargo
), to build Rust code. - nodejs (i.e.
node
andnpm
), to build the VS Code extension in TypeScript.
Then, git clone
the repo, cd
inside, and run cargo xtask ci
.
If you're using VS Code, you can try out the VS Code extension:
- Open the root directory of this repository in VS Code.
- Open the Run panel from the activity bar (the play button with bug).
- Select "extension" in the drop down.
- Press the green play button.
See also the architecture documentation.
"Millet" has the letters M and L in it, in that order. So does "Standard ML".
Also:
- Birds eat millet.
- A bird named Polly Morphism is the mascot for 15-150, Carnegie Mellon's introductory functional programming course.
- 15-150 is taught in Standard ML.
Millet is dual-licensed under the terms of both the MIT license and the Apache license v2.0.