Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Fatou
Fatou is a language server, formatter, and linter for Julia that never has to run Julia itself. It bundles three tools in one:
- Formatter (
fatou format): fast, deterministic, and opinionated - Linter (
fatou lint): configurable, with auto-fix support for many rules - Language server (
fatou lsp): both of the above, plus IDE features like completion, hover, go-to-definition, and more
Fatou is fast, safe, and easy to embed in editors and tooling. The architecture
follows rust-analyzer: a lossless
rowan syntax tree that reconstructs the
input byte-for-byte, salsa for incremental
recomputation, and lsp-server for the
language-server transport. It is named after the French mathematician Pierre
Fatou, whose Fatou set is the complement of the Julia set.
Installation
Fatou is available from several sources:
- crates.io:
cargo install fatou - Homebrew:
brew install jolars/tap/fatou - npm:
npm install -g fatou-cli(bundles a prebuilt binary) - PyPI:
uv tool install fatou/pipx install fatou - AUR (Arch Linux):
paru -S fatou-bin(or any other AUR helper) - NixOS: the
fatoupackage is available in the Nixpkgs repository - Prebuilt binaries: from the releases page
- VS Code/Open VSX: the Fatou extension (Marketplace, Open VSX); also works in Positron
Install Script
If you prefer a one-liner installer that picks the right release artifact for your platform, you can use the installer scripts below, which download the latest matching Fatou release for your platform, installing to a user-local directory by default. If you prefer, download and inspect the script before running it.
For macOS and Linux:
|
For Windows PowerShell:
powershell -NoProfile -ExecutionPolicy Bypass -Command "irm https://fatou.dev/install.ps1 | iex"
Usage
# Format in place
# Verify formatting without writing
# Lint (exits non-zero if there are any findings)
# Fix lint findings in place
Configuration lives in fatou.toml: [format] sets line and indent widths,
[lint] selects or ignores rules. Fatou walks up from the file's directory to
find one, stopping at the repository root, then falls back to $FATOU_CONFIG
and to a global user config at ~/.config/fatou/fatou.toml.
Editor Integration
The language server (fatou lsp) runs over stdio and provides a broad set of
features:
- formatting (whole-document and range),
- linting (push and pull),
- completion (including the REPL's LaTeX and emoji input sequences), hover,
- go-to-definition, -find references,
- document highlights,
- rename (of symbols, and of files and folders),
- document and workspace symbols,
- call and type hierarchy,
- signature help,
- code actions,
- folding and selection ranges,
- document links, and
- semantic tokens.
The Fatou extension for VS Code and Open VSX
(Marketplace,
Open VSX) bundles the binary and
starts the server automatically; it also works in Positron. See
editors/code for the extension, or the editor setup
guide for Neovim and other editors.
Integrations
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
Library Crates
The parser and formatter are published as standalone, wasm-compatible crates for embedding in other tools:
- fatou-parser: lossless CST parser, typed AST wrappers, and incremental reparser.
- fatou-formatter: the formatting
engine, with optional
serde/schemafeatures.
Documentation
See https://fatou.dev/ for the full documentation.
Contributing
See CONTRIBUTING.md.
License
MIT, see LICENSE.