Skip to main content

A language server, formatter, and linter for R

Project description

Arity

Build and Test Crates.io 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)

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.10.0.tar.gz (713.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.10.0-py3-none-win_arm64.whl (4.0 MB view details)

Uploaded Python 3Windows ARM64

arity-0.10.0-py3-none-win_amd64.whl (4.2 MB view details)

Uploaded Python 3Windows x86-64

arity-0.10.0-py3-none-musllinux_1_2_x86_64.whl (4.4 MB view details)

Uploaded Python 3musllinux: musl 1.2+ x86-64

arity-0.10.0-py3-none-musllinux_1_2_aarch64.whl (4.1 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARM64

arity-0.10.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.4 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

arity-0.10.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.1 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

arity-0.10.0-py3-none-macosx_11_0_arm64.whl (4.0 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

arity-0.10.0-py3-none-macosx_10_12_x86_64.whl (4.1 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

File details

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

File metadata

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

File hashes

Hashes for arity-0.10.0.tar.gz
Algorithm Hash digest
SHA256 d2ca291d9fc375f40781782e69357ba199d6e0ecfb3621221b49b59b6b4955be
MD5 a808d5b2c33e9bd587007bf9ab1e64e5
BLAKE2b-256 d3f8b662f96f49d8aa1f69ac1cb89e853bf3b041a5470fe2e9bd1f8624b04b0f

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: arity-0.10.0-py3-none-win_arm64.whl
  • Upload date:
  • Size: 4.0 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.10.0-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 c1224ee40e5bf317063792984d53aa1732564be4ea56b8964346727ed7ee4f76
MD5 972a4c6ebd8cb6c8f21de513b1ad1448
BLAKE2b-256 ada91f87e55c4394d9a95a3a7f806912a5b995349c89524ca01d84d25c04a9d3

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: arity-0.10.0-py3-none-win_amd64.whl
  • Upload date:
  • Size: 4.2 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.10.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 2bef094a4918cf2dff7192e247aab48d6d1e362ded01b200c5034408a05b96aa
MD5 b47645b7bcb44df4a9bcdb4f09638712
BLAKE2b-256 c12ffe95d97e760468b09e7ad5b7ea9136145ae8db1800226b3f0412295d76d6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for arity-0.10.0-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 27b525f47d69c7d805091c983cce92c854b566c827dac815f2d94abdcf1ba8b0
MD5 fc701992022045e533a271568df8555a
BLAKE2b-256 b8a874c6ee5fd3b3bbe1389ab42fa03905712acaef91a6d3bb2042628ac227a6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for arity-0.10.0-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 5cdd094839948967832fff31d59be7cbae60c18ff19caaaa10deb4cff176d372
MD5 508234f0a73e998b535e555f481d327f
BLAKE2b-256 44879b84475343099ff90cfe61f134751df1e17cb51df31e18ef32b3a44b38a1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for arity-0.10.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e276446d7d4dc3cae0cd6333efa783012c169c2b4b01a7cb60e60c9fc072c381
MD5 357526c3a1c429957c780ed6a7b879ec
BLAKE2b-256 76213c6be5dde22cb3d10116167726c247c962af5c8bc3a3a482589b1dc72009

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for arity-0.10.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4104e893b31c22109f27a093670e70072ba5f6065170fde970b733039365e577
MD5 3f6772dcde3b0159e93df11e455cccac
BLAKE2b-256 bebb3f9a17415f0c9ce190789956cdd43dfccc10332a8f59ab588649a0cba82a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for arity-0.10.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ebd25b45bde1d83afed2683620a0ac1259804489de864b63860e4a04012f30c7
MD5 5137a97d3392cdb91a0c556e5aa91cdc
BLAKE2b-256 50db8ef17151d317c3e67e50ee544922f5937e85e09849777ceb192e9ce14872

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for arity-0.10.0-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 5e903516e9d5259c8294974c1a0ab5ca29ddf6af87a3b7ca4d06a2493e6aecd9
MD5 dd7db3d964546490c4ca77eeae5a1a82
BLAKE2b-256 e2115989fc4210a323512f6a572811c0bbfe432af68b29bf4f596c1e40cf6e27

See more details on using hashes here.

Provenance

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