Skip to content

jolars/fatou

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

496 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Fatou

Build and Test Documentation Open VSX VS Code PyPI version npm version

A language server, formatter, and linter for Julia that doesn't require running Julia itself. Fatou is written in Rust and is designed to be fast, safe, and easy to integrate into editors and tooling. It is named after the French mathematician Pierre Fatou, whose Fatou set is the complement of the Julia set.

Fatou follows the rust-analyzer design (a lossless rowan CST, salsa for incremental computation, and lsp-server for the language-server transport).

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.

CI integration

Run format and lint checks in GitHub Actions with fatou-action, which installs a prebuilt, checksum- and provenance-verified binary:

- uses: jolars/fatou-action@v1

Or as pre-commit hooks with fatou-pre-commit:

repos:
  - repo: https://github.com/jolars/fatou-pre-commit
    # fatou version
    rev: v0.7.0
    hooks:
      - id: fatou-lint
      - id: fatou-format

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

Stars

Watchers

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages