Skip to main content

A language server, formatter, and linter for R

Project description

Arity

Build and Test Crates.io Open VSX VS Code PyPI version npm version License: MIT

Arity is a language server, formatter, and linter for the R programming language, built in Rust on a lossless, incremental parser. It provides a fast, deterministic development experience that integrates with popular code editors and IDEs.

  • Formatter: deterministic, rule-based formatting toward the tidyverse style guide, with idempotent output and roxygen support.
  • Linter: a growing set of correctness, readability, and performance rules, many with safe autofixes.
  • Language server: formatting, diagnostics with quick fixes, hover, completion, signature help, go-to-definition and references, rename, document and workspace symbols, semantic tokens, folding, and call hierarchy.

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

Installation

Arity is available from several sources:

  • crates.io: cargo install arity
  • npm: npm install -g arity-cli (bundles a prebuilt binary)
  • PyPI: uv tool install arity/pipx install arity
  • Prebuilt binaries: from the releases page
  • VS Code/Open VSX: the Arity extension (also works in Positron)
  • Arch Linux: pacman -S arity-bin (or arity) (from the AUR: arity-bin, arity)

From npm

Install with npx or npm:

# One-shot run, no install:
npx arity-cli format file.R

# Persistent install:
npm install -g arity-cli

The package detects your platform at install time and pulls in a prebuilt binary via npm's optional dependencies; no Rust toolchain required.

From crates.io

If you have Rust installed:

cargo install arity

Formatter

To format your code, you can use:

  • arity format [file]
  • arity format --verify [file]
  • arity format --check <path> [<path> ...]

Linter

To lint your code, you can use:

  • arity lint <path> [<path> ...]

arity lint reads from stdin when given no paths, and exits non-zero when it reports any findings.

Configuration

Arity reads an optional arity.toml, discovered by walking up from each file's directory to the repository root. Run arity init to scaffold a commented starter file. See the configuration reference for every key.

Editor integration

arity lsp starts a stdio-based language server offering formatting, diagnostics with quick fixes, hover, completion, signature help, go-to-definition and references, rename, document and workspace symbols, semantic tokens, folding, and call hierarchy.

The Arity extension for VS Code/Open VSX (and Positron) bundles the binary and starts the server automatically. For Neovim, Helix, and other editors, see the editor setup guide.

Acknowledgements

The core architecture of Arity is entirely based on rust-analyzer, using salsa for incremental computation and rowan for lossless syntax trees. Arity also owes a great debt to air, on which it is heavily inspired and from which it has borrowed tests, rules, and formatting style. It is also inspired by jarl and has borrowed rules from it as well as some of its architecture.

Documentation

Full documentation lives at arity.cc:

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

arity-0.11.0.tar.gz (793.0 kB view details)

Uploaded Source

Built Distributions

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

arity-0.11.0-py3-none-win_arm64.whl (4.1 MB view details)

Uploaded Python 3Windows ARM64

arity-0.11.0-py3-none-win_amd64.whl (4.3 MB view details)

Uploaded Python 3Windows x86-64

arity-0.11.0-py3-none-musllinux_1_2_x86_64.whl (4.6 MB view details)

Uploaded Python 3musllinux: musl 1.2+ x86-64

arity-0.11.0-py3-none-musllinux_1_2_aarch64.whl (4.2 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARM64

arity-0.11.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.5 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

arity-0.11.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.2 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

arity-0.11.0-py3-none-macosx_11_0_arm64.whl (4.1 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

arity-0.11.0-py3-none-macosx_10_12_x86_64.whl (4.3 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

File details

Details for the file arity-0.11.0.tar.gz.

File metadata

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

File hashes

Hashes for arity-0.11.0.tar.gz
Algorithm Hash digest
SHA256 a109b5f44392816d64d7f424fbc7aa30c90484b10c9adf7d968c7e6ce2971337
MD5 c7d69214da61b408cd7a7b95fc559266
BLAKE2b-256 448d82e466d50fd7a74b2f37378759a53b0248dbef9a3ef0ae7b6fa34332d266

See more details on using hashes here.

Provenance

The following attestation bundles were made for arity-0.11.0.tar.gz:

Publisher: publish-pypi.yml on jolars/arity

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

File details

Details for the file arity-0.11.0-py3-none-win_arm64.whl.

File metadata

  • Download URL: arity-0.11.0-py3-none-win_arm64.whl
  • Upload date:
  • Size: 4.1 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 arity-0.11.0-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 b7127cc85aaa6a7925a8d191af9ea85c75f0e1b94c307f2ead7572ed040289dd
MD5 894dbdfa83258a404b0fe6902a1dd5cb
BLAKE2b-256 3c4aba83ed70990a7831306ce1cedc291fb1f64548d1e17eebad1fe425802788

See more details on using hashes here.

Provenance

The following attestation bundles were made for arity-0.11.0-py3-none-win_arm64.whl:

Publisher: publish-pypi.yml on jolars/arity

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

File details

Details for the file arity-0.11.0-py3-none-win_amd64.whl.

File metadata

  • Download URL: arity-0.11.0-py3-none-win_amd64.whl
  • Upload date:
  • Size: 4.3 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 arity-0.11.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 3a7a34fd99fb4ce706d7e1b89976c27167717be129f5e01de19d0edef1f30647
MD5 36726a9aad3319d75a93ecd3df30f4eb
BLAKE2b-256 ad627f27c23d12ea3f81ad7d343236f221fe9602f0c4110506f9f4587c0f2638

See more details on using hashes here.

Provenance

The following attestation bundles were made for arity-0.11.0-py3-none-win_amd64.whl:

Publisher: publish-pypi.yml on jolars/arity

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

File details

Details for the file arity-0.11.0-py3-none-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for arity-0.11.0-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d11e23a12ee0a92e32fcb800f1ae70cd55ee1d4461efdf2b43543c3f9232801b
MD5 2bc78d00e2f2450920d981e031241c07
BLAKE2b-256 3cce9aa2abcd65623c7ec2b20b1082c11c01dca5da6f16785b42f170fa481c12

See more details on using hashes here.

Provenance

The following attestation bundles were made for arity-0.11.0-py3-none-musllinux_1_2_x86_64.whl:

Publisher: publish-pypi.yml on jolars/arity

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

File details

Details for the file arity-0.11.0-py3-none-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for arity-0.11.0-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 2877376111802e725e71f66916b3e245fa1ed7df7f7ad65edc9fb4d53d33c959
MD5 442c427f897ecacc4a716521ae26e6cd
BLAKE2b-256 5e70098d4db017a2d558672c6e191ecd6852336f8f03ed3ea4d74709f83d0025

See more details on using hashes here.

Provenance

The following attestation bundles were made for arity-0.11.0-py3-none-musllinux_1_2_aarch64.whl:

Publisher: publish-pypi.yml on jolars/arity

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

File details

Details for the file arity-0.11.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for arity-0.11.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 94a97697fbb00da75e6d706851bcdde6ab214658f8b35bf04fcacbcfea73003b
MD5 8078f5b05fe5fd4c8b624fb923c66738
BLAKE2b-256 8a11c77e8c14d5fc8f486459ebab76ddc72a6536baff147140dfe1b62c1fe488

See more details on using hashes here.

Provenance

The following attestation bundles were made for arity-0.11.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish-pypi.yml on jolars/arity

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

File details

Details for the file arity-0.11.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for arity-0.11.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 64092ac0354492c9d42b1bae2c32864f459d51ee46777ee8b08db49bf140342b
MD5 800777f4bbabd3939b6129f65b6004f0
BLAKE2b-256 f779b2a7f795e7ef29c38d527e6a2be3158e6519528a5289bb763615d36f1f58

See more details on using hashes here.

Provenance

The following attestation bundles were made for arity-0.11.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish-pypi.yml on jolars/arity

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

File details

Details for the file arity-0.11.0-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for arity-0.11.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e083dac0a25ae12a0e2a9fa10056f5e98e0e62785a302856e9a0251396303318
MD5 6c6973c43d1ff1243248fc9f462bf861
BLAKE2b-256 19ed0913d6e66005aa68c02e19f089f508c84c1e577cd26d66b1654996613927

See more details on using hashes here.

Provenance

The following attestation bundles were made for arity-0.11.0-py3-none-macosx_11_0_arm64.whl:

Publisher: publish-pypi.yml on jolars/arity

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

File details

Details for the file arity-0.11.0-py3-none-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for arity-0.11.0-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 c0443eac71677a0678dfba74c5a5721bf4a34ad86deb085ebe8fa0620a4bfbb9
MD5 c1da68d26b537d00e5165a34e8ca8651
BLAKE2b-256 a4e67e13b04b05a1e677cbce6cd77d0ab9224e1d9ae513338ace2a9adc44c3d6

See more details on using hashes here.

Provenance

The following attestation bundles were made for arity-0.11.0-py3-none-macosx_10_12_x86_64.whl:

Publisher: publish-pypi.yml on jolars/arity

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