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

Uploaded Python 3Windows ARM64

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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3musllinux: musl 1.2+ x86-64

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

Uploaded Python 3musllinux: musl 1.2+ ARM64

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

Uploaded Python 3manylinux: glibc 2.17+ ARM64

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

Uploaded Python 3macOS 11.0+ ARM64

arity-0.12.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.12.0.tar.gz.

File metadata

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

File hashes

Hashes for arity-0.12.0.tar.gz
Algorithm Hash digest
SHA256 850a54271e62dfd1a081ffa0acda9a75ac69998a735e50373622fd7b392b1500
MD5 85bcb357016d304aadabff67fab3e97b
BLAKE2b-256 0e46aa2676e788b429b2b1a472ea1d4eafc73beb8f4dfad6715e4610a6b4917c

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: arity-0.12.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.12

File hashes

Hashes for arity-0.12.0-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 03efcaddae7a14708db97234f82eca761b8a0fd20e01c3d92dde9426e673869c
MD5 f40f2528f3fc44f0660643ccd607a3e9
BLAKE2b-256 5b0275e9475704cc33481d3b583ba6f7ed3bf63bd79ad1436c3699ce571a8920

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: arity-0.12.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.12

File hashes

Hashes for arity-0.12.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 4cae5b4b0b491cfdbc24f07cc2ea82b0f223fdb32b28e6c89f46e7ecf342c53b
MD5 406ba207419b65be7380be0cbd5cb714
BLAKE2b-256 1700d267eb6a118395961c60d3ded00a64795d3a59c2607395e334e40f713980

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for arity-0.12.0-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 105b3929c6dd8b7af3fbb97cb0b5280d89ace050f041a357117bf4cb9c4bb01c
MD5 106f62bf72f93948c4d4b9bee568fa19
BLAKE2b-256 f6387e35298d044cad7112ea497f30f9da2e1dbcb97d1ed4d10b90a0e7cf10eb

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for arity-0.12.0-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 131a0608d9a4356e4afb307dd181d4a47874595de83a6c239cbca8141d4e6866
MD5 68782a222b52ea22c9c4819c06cd51ed
BLAKE2b-256 ef6c04728fbbd5215c52ea0721ca9cbd0dc1e5c54544e9dce64561bbdc1167aa

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for arity-0.12.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6c35b110ef4fc23250b081055f8095fed1fea47df382d50c893ee0c3ce1687c6
MD5 2590523fbd5f903f42c19f32f9a5731b
BLAKE2b-256 9411afefbffe78044b2960d952e14cac00d717f7a3aa6f0a341c386f0fd84b7b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for arity-0.12.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b4e4280cfd72afd972958d0775f7680ac07c635a5c4a77dcb45fa82d17072724
MD5 b390811f64132942b8ceaca571c9a587
BLAKE2b-256 aa020a916f925d1f977820720b05bc381b79d95590268ab7811571f1a02fa5de

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for arity-0.12.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0e79cb4e1b1a1157b95985afa53d3904a776e7f704176a46be36bdf485c294a6
MD5 1d3f748ce8a6781375d5a80426dcbd27
BLAKE2b-256 acab69dd86917a21a9c3e149407a9098ab04677cb62017346e42230469c97598

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for arity-0.12.0-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 85b6b999c22aed5f3f26bcc80024ffd14cbe3ba773670e65df3d1281f1907e7c
MD5 156bd6abe36d6f11799e32dd6a013faa
BLAKE2b-256 719b7f3c945adfde5c7bdefd77a6cc3865cdb3c9f7601bebad237cfba435d27d

See more details on using hashes here.

Provenance

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