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

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)

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.13.0.tar.gz (863.6 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.13.0-py3-none-win_arm64.whl (4.2 MB view details)

Uploaded Python 3Windows ARM64

arity-0.13.0-py3-none-win_amd64.whl (4.4 MB view details)

Uploaded Python 3Windows x86-64

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

Uploaded Python 3musllinux: musl 1.2+ x86-64

arity-0.13.0-py3-none-musllinux_1_2_aarch64.whl (4.3 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARM64

arity-0.13.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.13.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.3 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

arity-0.13.0-py3-none-macosx_11_0_arm64.whl (4.2 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

arity-0.13.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.13.0.tar.gz.

File metadata

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

File hashes

Hashes for arity-0.13.0.tar.gz
Algorithm Hash digest
SHA256 f745a876e6abaa2d1d58c1e985cd1c026ae834e289c99e8e681776a5b3b6c66e
MD5 d0a0a3f343e9fa891121b2ca23e0518b
BLAKE2b-256 9fff20e027dcb24cc3fda95cd0f554284fb9367f272dcb770acf8a6109f166e4

See more details on using hashes here.

Provenance

The following attestation bundles were made for arity-0.13.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.13.0-py3-none-win_arm64.whl.

File metadata

  • Download URL: arity-0.13.0-py3-none-win_arm64.whl
  • Upload date:
  • Size: 4.2 MB
  • Tags: Python 3, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for arity-0.13.0-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 14c23b62cf9ca722b5518024d2966cad579fde861b5142e846133f1e4e37deea
MD5 c9f39abf21b9ab2d91f4277c44939be8
BLAKE2b-256 98afe2c69f6c9fa4f3297273e4cd6a3af0a4275620ff6ba10c1932ed1516ea31

See more details on using hashes here.

Provenance

The following attestation bundles were made for arity-0.13.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.13.0-py3-none-win_amd64.whl.

File metadata

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

File hashes

Hashes for arity-0.13.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 060c900ea4f6054e9729f7f1d2dabced27eb8fbbdba9f19202a5a3f2d6eb8664
MD5 b7494cb3ae8a7d1b1312627766cdbce4
BLAKE2b-256 0945f4f534993aa332f2199e0bcbb51310943efb86b8a9de91c0e9b229f14341

See more details on using hashes here.

Provenance

The following attestation bundles were made for arity-0.13.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.13.0-py3-none-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for arity-0.13.0-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 cba29032dbb3ce4660eb4ab12e3de3503dde108e1929598816a6aecc2924c3d0
MD5 b0d9ac21dd3a8d851c85f67fe881af92
BLAKE2b-256 c3cba2b259cdb4addcb091bd29ed001d15275a616e3ac16164648a16479092e7

See more details on using hashes here.

Provenance

The following attestation bundles were made for arity-0.13.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.13.0-py3-none-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for arity-0.13.0-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 644af2c6a21d26da97de1a51e091149171d95ddba263b1e0c7acee43b40792fe
MD5 579e5e9d68801d84ff36cba0873f52b1
BLAKE2b-256 abff1a1aab61624fc9496748404f49d518dde82f529fa6196172b59becd11c8b

See more details on using hashes here.

Provenance

The following attestation bundles were made for arity-0.13.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.13.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for arity-0.13.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 64801fcb92ff895fbd9823121b14d86e3878a7fd834a1f284e23443d284df144
MD5 0d2ba11fa5906aca58167d4665ba959a
BLAKE2b-256 48ab4e7e88c2c107b50e69105618a713b3e60980001990b4a9d18bd7bfaeadb0

See more details on using hashes here.

Provenance

The following attestation bundles were made for arity-0.13.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.13.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for arity-0.13.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 090373cac35343c776f622e728f1bebd2c8dd0cd42ad0e4f8aa1e8e54b27f29a
MD5 1ecc028dcb341032176af80578d0692a
BLAKE2b-256 0e4297be756fcaa0f7e0343861d4a3b161e744cf56fc78c37ae3c564d9c703e5

See more details on using hashes here.

Provenance

The following attestation bundles were made for arity-0.13.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.13.0-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for arity-0.13.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7f733c15dd0425a17aa94916737609b25d823ec3e1d2ad3fd594cb64fdc21f4c
MD5 bf57c37e29645db724e5c8a97b2c9a85
BLAKE2b-256 4fb3e3f6cd5e0b58bcf762f6bef52ed2596b0bf6e8bc6ef1bb2632615e5c82d1

See more details on using hashes here.

Provenance

The following attestation bundles were made for arity-0.13.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.13.0-py3-none-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for arity-0.13.0-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 9d9293e0a9ffef61e03804196fe1560a29143d50374d8cc0f8c7caedcfd16717
MD5 34092ceefc5b0bcbaefd3e63554d4bed
BLAKE2b-256 113f0f6be7d348e823b9b095a2fe0eace54c99d382569f15fae752fb71d04099

See more details on using hashes here.

Provenance

The following attestation bundles were made for arity-0.13.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