Language server
Completion, hover, go-to-definition, references, rename, and inlay hints — live in your editor.
Language serverthree tools, one binary
Built for R users who have outgrown RStudio: editor smarts, problem-catching analysis, and one consistent style from a single binary. R has world-class statistics — ry brings the IDE-grade tooling other ecosystems already take for granted, fast enough to scale past 300k lines.
Completion, hover, go-to-definition, references, rename, and inlay hints — live in your editor.
Language serverLint diagnostics on by default — plus the first static type checker for R, opt-in.
Type checkerry fmt rewrites your whole project to one consistent style, with a --diff mode for CI.
Formatterwrite
One server behind every editor feature — complete a record's fields, hover a name for its inferred signature, jump to where it is bound, rename it everywhere at once. Extensions for VS Code and Zed, plain LSP for the rest.
check
ry check lints out of the box. Switch the
type checker on and it reads your code the way a compiler
would — and since inference runs whether or not you annotate
anything, it catches the mistake either way.
# ry: allow(...) comment.
exit 1
fee_rate wants the region, not the amount. Annotations live in #: comments — ordinary comments to R and to every other tool you run.
exit 1
numeric bound alone rejects the string.
exit 1
ship
ry fmt is deliberately non-invasive. It fixes
spacing, braces and indentation, and it never splits a
line you chose to keep on one line. Run it across the
project, or use --diff in CI.
$ ry fmt
--diff totals.R 1 file would be reformatted, 0 files already formatted $ ry fmt
--diff regions.R Braces go in wherever leaving them out could change what runs. $ ry fmt
--diff options.R Every argument snaps to one indent step. Your line breaks are kept. $ ry fmt
--diff pricing.R Annotations are re-rendered with the type checker's own grammar. Anything it cannot parse is left byte-for-byte alone. adopt
Nothing about your existing R has to change. Install the VS Code extension in one click — no toolchain required — or grab the CLI and point ry at your project.
1 · Install
cargo install --git https://github.com/felix-andreas/ry ry-lang 2 · Run it on your project
ry fmt . # format
ry check . # lint and type-check Grab the VS Code extension from the Marketplace, then tune behavior in configuration.