Skip to main content

A language server, formatter, and linter for Julia

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fatou-0.4.0.tar.gz (203.8 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

fatou-0.4.0-py3-none-win_arm64.whl (1.7 MB view details)

Uploaded Python 3Windows ARM64

fatou-0.4.0-py3-none-win_amd64.whl (1.7 MB view details)

Uploaded Python 3Windows x86-64

fatou-0.4.0-py3-none-musllinux_1_2_x86_64.whl (1.9 MB view details)

Uploaded Python 3musllinux: musl 1.2+ x86-64

fatou-0.4.0-py3-none-musllinux_1_2_aarch64.whl (1.7 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARM64

fatou-0.4.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

fatou-0.4.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.7 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

fatou-0.4.0-py3-none-macosx_11_0_arm64.whl (1.7 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

fatou-0.4.0-py3-none-macosx_10_12_x86_64.whl (1.8 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

File details

Details for the file fatou-0.4.0.tar.gz.

File metadata

  • Download URL: fatou-0.4.0.tar.gz
  • Upload date:
  • Size: 203.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for fatou-0.4.0.tar.gz
Algorithm Hash digest
SHA256 8dbf93253df2092888a05128b41a785cbd5ee375a68cbe707e291bf180a3a765
MD5 edc9c0ba806f9f9fb7eff6834313ecf7
BLAKE2b-256 d8ae3a1d97eb844b2ff5ce51c4152ba6bda74e3c766adf0333716d3fdb2b841d

See more details on using hashes here.

Provenance

The following attestation bundles were made for fatou-0.4.0.tar.gz:

Publisher: publish-pypi.yml on jolars/fatou

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fatou-0.4.0-py3-none-win_arm64.whl.

File metadata

  • Download URL: fatou-0.4.0-py3-none-win_arm64.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: Python 3, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for fatou-0.4.0-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 2a71944ad0eaacd94f404052661c9be780769ca01f4eb5cd30d85eb226a99e60
MD5 cf6ef12d218fe9e31ccbcaec842a300d
BLAKE2b-256 969943ae88f1c1c1dbbf2e4d31abb89d82723733a728cd74a7b278187b5e4f13

See more details on using hashes here.

Provenance

The following attestation bundles were made for fatou-0.4.0-py3-none-win_arm64.whl:

Publisher: publish-pypi.yml on jolars/fatou

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fatou-0.4.0-py3-none-win_amd64.whl.

File metadata

  • Download URL: fatou-0.4.0-py3-none-win_amd64.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for fatou-0.4.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 eb8221a1eb05483b70c774259e8a37070c1e4749e296c7687482ec1c4a6353c0
MD5 d695819d81d22ca4916f907ed0ca23cc
BLAKE2b-256 5a28d2b78c7f80239722d45dd805382127001ae169a28e2df9a6fc3622976467

See more details on using hashes here.

Provenance

The following attestation bundles were made for fatou-0.4.0-py3-none-win_amd64.whl:

Publisher: publish-pypi.yml on jolars/fatou

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fatou-0.4.0-py3-none-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for fatou-0.4.0-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 686ee081f152c9b88bd8668975d0dd57cf997b6e619f4ffbbc94c6b5a2801ea3
MD5 ddd452cccb8ca10d164c33a681eb5ca2
BLAKE2b-256 7aa3cb20eb7cd01b9b8d2a330fecbb6d0091367f5a2d5d6b97557ee568dc2598

See more details on using hashes here.

Provenance

The following attestation bundles were made for fatou-0.4.0-py3-none-musllinux_1_2_x86_64.whl:

Publisher: publish-pypi.yml on jolars/fatou

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fatou-0.4.0-py3-none-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for fatou-0.4.0-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 df639699e8a837246c8ef6a734707b454f475b2ac497820d05aed150a06458c1
MD5 25f993f8dad409ee3898ae7abc5fb778
BLAKE2b-256 761571b697fa941e5d8e54923db7b986b85c02a4207be34852b9c5610ffe8a6c

See more details on using hashes here.

Provenance

The following attestation bundles were made for fatou-0.4.0-py3-none-musllinux_1_2_aarch64.whl:

Publisher: publish-pypi.yml on jolars/fatou

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fatou-0.4.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for fatou-0.4.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6535d795dc6633c1632fa6ded52dea8ace7d1230f51bad7d7d4a7ad8a0e1c1ed
MD5 a18e0ed971965f59004f8d4aa21621ea
BLAKE2b-256 7df7dc9b44ad68e8687692fd4a5b821ccc2bdf71afba07c071c35fd833917d8d

See more details on using hashes here.

Provenance

The following attestation bundles were made for fatou-0.4.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish-pypi.yml on jolars/fatou

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fatou-0.4.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for fatou-0.4.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 bc33f93e6c1788944f47db193bf7e61ee82c63448a84d886225e4673840181fe
MD5 61eec37943ce018cdbaa2faa027d82d5
BLAKE2b-256 eb914e35fd1316e5ec8e9e367e874db286fe2e093242ae986ca14a61d158fa57

See more details on using hashes here.

Provenance

The following attestation bundles were made for fatou-0.4.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish-pypi.yml on jolars/fatou

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fatou-0.4.0-py3-none-macosx_11_0_arm64.whl.

File metadata

  • Download URL: fatou-0.4.0-py3-none-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: Python 3, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for fatou-0.4.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2e6ba481f2c87605e623cbb9f96ceb3be4e9c319879f30d3939c434a776e7608
MD5 6e4572f4b9a808e331eec5397c2815fc
BLAKE2b-256 50512f391f2e485e272e027bfb68ee5f802ed5adaea28391287952b30d41d2ae

See more details on using hashes here.

Provenance

The following attestation bundles were made for fatou-0.4.0-py3-none-macosx_11_0_arm64.whl:

Publisher: publish-pypi.yml on jolars/fatou

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fatou-0.4.0-py3-none-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for fatou-0.4.0-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 41b620716dd2d30f70f29138525fbaa1d756c7239a9f3d8b7ffbfabc1031f5b4
MD5 45c8e0a307b5d342bbc311535cabc38a
BLAKE2b-256 2a6d66f0054302c273b12d3dec3b9d6cb58feccd3aa9dc2459ceb6fd38a7f029

See more details on using hashes here.

Provenance

The following attestation bundles were made for fatou-0.4.0-py3-none-macosx_10_12_x86_64.whl:

Publisher: publish-pypi.yml on jolars/fatou

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page