Skip to content

jolars/fatou

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

289 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

Installation

Fatou is available from several sources:

  • crates.io: cargo install fatou
  • npm: npm install -g fatou-cli (bundles a prebuilt binary)
  • PyPI: uv tool install fatou/pipx install fatou
  • Prebuilt binaries: from the releases page
  • VS Code/Open VSX: the Fatou extension (also works in Positron)

Runs on Linux, macOS, and Windows (x86_64 and arm64).

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. The Fatou extension for VS Code/Open VSX (and Positron) bundles the binary and starts the server automatically; see editors/code. For Neovim and other editors, see the editor setup guide.

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.

About

Julia language server, formatter, and linter built in Rust

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Packages

 
 
 

Contributors