fatou 0.3.0

A language server, formatter, and linter for Julia
Documentation

Fatou

A language server, formatter, and linter for Julia, written in Rust.

Fatou follows the rust-analyzer design (a lossless rowan CST, salsa for incremental computation, and lsp-server for the language-server transport) and is modeled directly on the author's R tooling project, arity.

Status: early groundwork. The full architecture is in place; the parser covers a growing Julia subset, the formatter has started landing per-construct layout rules (gated by hand-authored fixtures), and no lint rules ship yet. See TODO.md for the roadmap and AGENTS.md for the design tenets.

Usage

fatou parse <file.jl>          # print the CST (stdin if no file)
fatou format <file.jl>         # format to stdout (stdin if omitted)
fatou format --check <dir>     # check formatting; non-zero exit if any differ
fatou lint --check <dir>       # lint
fatou lsp                      # run the language server on stdio

Configuration lives in fatou.toml ([format] line_width/indent_width, [lint] select/ignore).

Editor integration

The language server (fatou lsp) provides formatting and parse diagnostics over stdio. See docs/editors/neovim.md for a Neovim setup.

Development

cargo build
cargo test
cargo clippy --all-targets --all-features -- -D warnings
cargo fmt -- --check

Or via task: task test, task lint, task format.

License

MIT—see LICENSE.