An implementation of the Language Server Protocol (LSP) for the R programming language.
languageserver is an R package that implements the Language Server Protocol (LSP) for the R programming language. It acts as a backend server that provides advanced code editing features—such as autocomplete, diagnostics, and navigation—to any text editor or IDE that supports LSP. This allows R developers to use their preferred editor while enjoying a consistent, high-quality development experience.
R programmers and data scientists who use editors like VS Code, Vim, Emacs, or Sublime Text and want enhanced language support without switching to a dedicated R IDE.
It offers a standardized, editor-independent way to bring IDE-like capabilities to R coding, eliminating the need for editor-specific plugins and ensuring feature parity across different development environments.
An implementation of the Language Server Protocol for R
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Implements LSP for broad compatibility, working with VS Code, Vim, Emacs, Sublime Text, and others via client extensions, as detailed in the Language Clients section.
Uses lintr for real-time diagnostics and styler for formatting, with customizable rules via .lintr files and options, per the FAQ.
Supports call hierarchy, type hierarchy, and semantic tokens, enabling deep navigation and understanding of R codebases.
Shows continuous updates with CI badges, CRAN releases, and an r-universe for daily builds, ensuring reliability and access to new features.
Lacks implementation of several LSP services like codeLens, inlineValueProvider, and linkedEditingRange, as acknowledged in the Services Implemented list.
Requires non-trivial setup for editors like NeoVim, with manual LSP client configuration that can be error-prone for non-experts.
As an LSP server, it adds runtime overhead, which might slow down editing in large R projects or on low-resource machines.