SkillAgentSearch skills...

Languageserver

An implementation of the Language Server Protocol for R

Install / Use

/learn @REditorSupport/Languageserver
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

languageserver: An implementation of the Language Server Protocol for R

R-CMD-check codecov CRAN_Status_Badge CRAN Downloads r-universe

languageserver is an implementation of the Microsoft's Language Server Protocol for the language of R.

Installation

A few dependencies are required beforehand:

# On Debian, Ubuntu, etc.
apt install --assume-yes --no-install-recommends build-essential libcurl4-openssl-dev libssl-dev libxml2-dev r-base

# On Fedora, Centos, etc.
dnf install --assumeyes --setopt=install_weak_deps=False @development-tools libcurl-devel libxml2-devel openssl-devel R

# On Alpine
apk add --no-cache curl-dev g++ gcc libxml2-dev linux-headers make R R-dev

languageserver is released on CRAN and can be easily installed by

install.packages("languageserver")

To try the latest features, install the daily development build from our r-universe repository:

install.packages("languageserver", repos = c(
    reditorsupport = "https://reditorsupport.r-universe.dev",
    getOption("repos")
))

Or install the latest development version from our GitHub repository:

# install.packages("remotes")
remotes::install_github("REditorSupport/languageserver")

Language Clients

The following editors are supported by installing the corresponding extensions:

  • VS Code: vscode-R

  • Atom: atom-ide-r

  • Sublime Text: R-IDE

  • NeoVim: NeoVim's LSP client with settings

    vim.lsp.config['r_language_server'] = {
    	settings = {
    		filetypes = { "r", "rmd" },
    	},
    }
    vim.api.nvim_create_autocmd("FileType", {
    	pattern = { "r", "rmd" },
    	callback = function()
    		vim.lsp.start(vim.lsp.config["r_language_server"])
    	end,
    }
    

    or, if you use coc.nvim, you can do one of two things:

    • Install coc-r-lsp with:

      :CocInstall coc-r-lsp
      
    • or install the languageserver package in R

      install.packages("languageserver")
      # or install the developement version
      # remotes::install_github("REditorSupport/languageserver")
      

      Then add the following to your Coc config:

      "languageserver": {
          "R": {
              "command": "/usr/bin/R",
              "args" : [ "--no-echo", "-e", "languageserver::run()"],
              "filetypes" : ["r"]
          }
      }
      
  • Emacs: lsp-mode

  • JupyterLab: jupyterlab-lsp

  • BBEdit: preconfigured in version 14.0 and later; see the BBEdit LSP support page for complete details.

  • Nova: R-Nova

Services Implemented

languageserver is still under active development, the following services have been implemented:

Settings

languageserver exposes the following settings via LSP configuration.

settings | default | description ---- | ----- | ----- r.lsp.debug | false | increase verbosity for debug purpose r.lsp.log_file | null | file to log debug messages, fallback to stderr if empty r.lsp.diagnostics | true | enable file diagnostics via lintr r.lsp.rich_documentation | true | rich documentation with enhanced markdown features r.lsp.snippet_support | true | enable snippets in auto completion r.lsp.max_completions | 200 | maximum number of completion items `r.lsp.lint_

Related Skills

View on GitHub
GitHub Stars653
CategoryDevelopment
Updated1d ago
Forks112

Languages

R

Security Score

85/100

Audited on Mar 27, 2026

No findings