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

Uploaded Python 3Windows ARM64

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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3musllinux: musl 1.2+ x86-64

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

Uploaded Python 3musllinux: musl 1.2+ ARM64

arity-0.9.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.9.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.1 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

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

Uploaded Python 3macOS 11.0+ ARM64

arity-0.9.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.9.0.tar.gz.

File metadata

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

File hashes

Hashes for arity-0.9.0.tar.gz
Algorithm Hash digest
SHA256 46bec8b432c5ed3b9e8cf5a4f4cce4e762f992670f2a6a31fbf7d96b21e000bb
MD5 50c2ac099292080ed23cdb7ebf0e69ae
BLAKE2b-256 0a85339c2b17de180bc76a56a2bed84b300625e6b3c42aad9c79aaa288613bec

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: arity-0.9.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.9.0-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 00675eb618e0500e368cc725863813e13f5bc335cf76ffbb5b8832f0333e5882
MD5 6755681fcd5207e25fe91fd1a9ec570e
BLAKE2b-256 cb59c29bc89a8f5f2bbe11f7752b8d89ca7d7dafaf8cc9d29376515ff31dd451

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: arity-0.9.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.9.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 52f266a5c50bbdbdb9dd356e679abac2aac99affa3683fd4338f8bbe4fe4c4f1
MD5 6e618a5907454000eaa57ef39e9b7d1a
BLAKE2b-256 e6bdb9cb3fb2f04e159869c12264ccb7fd88316372ce8ff54658231d3223a181

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for arity-0.9.0-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 985c542ca6c97e2d9732db4a7eb0b4b70f37756011995b063eeaf4f34ce20a6d
MD5 1c09cc80b5dbc98b3489356f3a44158b
BLAKE2b-256 5fe1a62b9d3869d5cb6bdd48e33057fc4559d4dd29db1d812e8bf9ae3540fc8e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for arity-0.9.0-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 652c3c5cdb4ee352f641a93a226f3562642030e7384da619bff0950b8689805c
MD5 d1b657bafd43f229fe45032d69cfb0ff
BLAKE2b-256 973b398808a6c6d01b9956ab96348d714ee119e5f014d81712cdb779331454a8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for arity-0.9.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fa164a7fe2d0ee99ddd31d1a2494343e5f317132f37b788cda18389901723bb7
MD5 579814fc0d89d9c70897c99c40dec141
BLAKE2b-256 cf04098e82d45d46390ed5b1ece43cfe241d0c0064c0f4e6eea10e1bc08395bd

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for arity-0.9.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1dc15c820d35bcf70ffc8cf47043fadfa72b4e8d8d8d452cbc7b6d7c5c8d05f7
MD5 807e9edfb3a765b8be7085be13919632
BLAKE2b-256 6a90dbfe898dd4b9f7b56b4e1ba5085871537fb8744251dd6f16c7168430d838

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: arity-0.9.0-py3-none-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 4.0 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 arity-0.9.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5515569380d18d74132792822f6e80a770734fd75042f86c20f8a414c43a50ed
MD5 962ff4a159f7e03329ccb2cccccbb57c
BLAKE2b-256 d4db19751ca287790b0068d4164d2c5cc051f6d6e8eb60224778802fd6a8410d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for arity-0.9.0-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 d59b40c7b953a8f885e53d9c14b6eb2c975a1ab210c4c650a93878ea299b06e2
MD5 3c5b857419d3530dea715848456e0c04
BLAKE2b-256 49387df49b293f16f62c92b4129d4793a573e8617834ba8139857877d2e26f57

See more details on using hashes here.

Provenance

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