diff options
| author | meriops <meriops@users.noreply.github.com> | 2022-02-12 14:10:02 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-02-12 14:10:02 +0100 |
| commit | 8e03401ad37a6f95e2097ea6139308e24270662d (patch) | |
| tree | e15bb9af14f83a2efebcf3d9ed7132ce8dfb9550 /lua | |
| parent | add omnisharp net6.0 support instead of mono (#472) (diff) | |
| download | mason-8e03401ad37a6f95e2097ea6139308e24270662d.tar mason-8e03401ad37a6f95e2097ea6139308e24270662d.tar.gz mason-8e03401ad37a6f95e2097ea6139308e24270662d.tar.bz2 mason-8e03401ad37a6f95e2097ea6139308e24270662d.tar.lz mason-8e03401ad37a6f95e2097ea6139308e24270662d.tar.xz mason-8e03401ad37a6f95e2097ea6139308e24270662d.tar.zst mason-8e03401ad37a6f95e2097ea6139308e24270662d.zip | |
add r_language_server (#467)
Closes #185.
Co-authored-by: Olivier Devineau <olivier.devineau@inn.no>
Co-authored-by: William Boman <william@redwill.se>
Diffstat (limited to 'lua')
8 files changed, 65 insertions, 0 deletions
diff --git a/lua/nvim-lsp-installer/_generated/filetype_map.lua b/lua/nvim-lsp-installer/_generated/filetype_map.lua index 3d98a387..6486ba73 100644 --- a/lua/nvim-lsp-installer/_generated/filetype_map.lua +++ b/lua/nvim-lsp-installer/_generated/filetype_map.lua @@ -99,9 +99,11 @@ return { purescript = { "purescriptls" }, python = { "jedi_language_server", "pylsp", "pyright" }, ql = { "codeqlls" }, + r = { "r_language_server" }, razor = { "tailwindcss" }, reason = { "ocamlls", "tailwindcss" }, rescript = { "rescriptls", "tailwindcss" }, + rmd = { "r_language_server" }, rnoweb = { "ltex" }, rst = { "esbonio", "ltex" }, ruby = { "solargraph", "sorbet" }, diff --git a/lua/nvim-lsp-installer/_generated/language_autocomplete_map.lua b/lua/nvim-lsp-installer/_generated/language_autocomplete_map.lua index e2810677..e7d2b570 100644 --- a/lua/nvim-lsp-installer/_generated/language_autocomplete_map.lua +++ b/lua/nvim-lsp-installer/_generated/language_autocomplete_map.lua @@ -2,6 +2,7 @@ -- stylua: ignore start return { OpenFOAM = { "foam_ls" }, + R = { "r_language_server" }, ["assembly-gas"] = { "asm_lsp" }, ["assembly-go"] = { "asm_lsp" }, ["assembly-nasm"] = { "asm_lsp" }, diff --git a/lua/nvim-lsp-installer/_generated/metadata.lua b/lua/nvim-lsp-installer/_generated/metadata.lua index dbb4c6b7..348db23a 100644 --- a/lua/nvim-lsp-installer/_generated/metadata.lua +++ b/lua/nvim-lsp-installer/_generated/metadata.lua @@ -205,6 +205,9 @@ return { quick_lint_js = { filetypes = { "javascript" } }, + r_language_server = { + filetypes = { "r", "rmd" } + }, remark_ls = { filetypes = { "markdown" } }, diff --git a/lua/nvim-lsp-installer/_generated/schemas/r_language_server.lua b/lua/nvim-lsp-installer/_generated/schemas/r_language_server.lua new file mode 100644 index 00000000..27e1bbd4 --- /dev/null +++ b/lua/nvim-lsp-installer/_generated/schemas/r_language_server.lua @@ -0,0 +1,3 @@ +-- THIS FILE IS GENERATED. DO NOT EDIT MANUALLY. +-- stylua: ignore start +return {properties = {["r.lsp.args"] = {default = {},description = "The command line arguments to use when launching R Language Server",type = "array"},["r.lsp.debug"] = {default = false,description = "Debug R Language Server",type = "boolean"},["r.lsp.diagnostics"] = {default = true,description = "Enable Diagnostics",type = "boolean"},["r.lsp.lang"] = {default = "",description = "Override default LANG environment variable",type = "string"},["r.lsp.path"] = {default = "",deprecationMessage = "Will be deprecated. Use r.rpath.windows, r.rpath.mac, or r.rpath.linux instead.",description = "Path to R binary for launching Language Server",markdownDeprecationMessage = "Will be deprecated. Use `#r.rpath.windows#`, `#r.rpath.mac#`, or `#r.rpath.linux#` instead.",type = "string"},["r.lsp.use_stdio"] = {default = false,description = "Use STDIO connection instead of TCP. (Unix/macOS users only)",type = "boolean"},["r.rpath.linux"] = {default = "",description = 'Path to an R executable for Linux. Must be "vanilla" R, not radian etc.!',type = "string"},["r.rpath.mac"] = {default = "",description = 'Path to an R executable for macOS. Must be "vanilla" R, not radian etc.!',type = "string"},["r.rpath.windows"] = {default = "",description = 'Path to an R executable for Windows. Must be "vanilla" R, not radian etc.!',type = "string"}},title = "R LSP Client",type = "object"}
\ No newline at end of file diff --git a/lua/nvim-lsp-installer/core/receipt.lua b/lua/nvim-lsp-installer/core/receipt.lua index d430d9dc..0c631c27 100644 --- a/lua/nvim-lsp-installer/core/receipt.lua +++ b/lua/nvim-lsp-installer/core/receipt.lua @@ -11,6 +11,7 @@ local M = {} ---| '"go"' ---| '"cargo"' ---| '"dotnet"' +---| '"r_package"' ---| '"unmanaged"' ---| '"system"' ---| '"jdtls"' @@ -118,6 +119,7 @@ InstallReceiptBuilder.go = package_source "go" InstallReceiptBuilder.dotnet = package_source "dotnet" InstallReceiptBuilder.cargo = package_source "cargo" InstallReceiptBuilder.composer = package_source "composer" +InstallReceiptBuilder.r_package = package_source "r_package" InstallReceiptBuilder.unmanaged = { type = "unmanaged" } diff --git a/lua/nvim-lsp-installer/jobs/outdated-servers/init.lua b/lua/nvim-lsp-installer/jobs/outdated-servers/init.lua index 8e4548f7..e51fd44a 100644 --- a/lua/nvim-lsp-installer/jobs/outdated-servers/init.lua +++ b/lua/nvim-lsp-installer/jobs/outdated-servers/init.lua @@ -22,6 +22,7 @@ local function noop(server, _, on_result) on_result(VersionCheckResult.empty(server)) end +---@type Record<InstallReceiptSourceType, function> local checkers = { ["npm"] = npm_check, ["pip3"] = pip3_check, @@ -30,6 +31,7 @@ local checkers = { ["composer"] = composer_check, ["go"] = noop, -- TODO ["dotnet"] = noop, -- TODO + ["r_package"] = noop, -- TODO ["unmanaged"] = noop, ["system"] = noop, ["jdtls"] = jdtls, diff --git a/lua/nvim-lsp-installer/servers/init.lua b/lua/nvim-lsp-installer/servers/init.lua index 29017de7..eabf3e46 100644 --- a/lua/nvim-lsp-installer/servers/init.lua +++ b/lua/nvim-lsp-installer/servers/init.lua @@ -99,6 +99,7 @@ local CORE_SERVERS = Data.set_of { "pylsp", "pyright", "quick_lint_js", + "r_language_server", "remark_ls", "rescriptls", "rnix", diff --git a/lua/nvim-lsp-installer/servers/r_language_server/init.lua b/lua/nvim-lsp-installer/servers/r_language_server/init.lua new file mode 100644 index 00000000..c85107c1 --- /dev/null +++ b/lua/nvim-lsp-installer/servers/r_language_server/init.lua @@ -0,0 +1,51 @@ +local server = require "nvim-lsp-installer.server" +local process = require "nvim-lsp-installer.process" +local context = require "nvim-lsp-installer.installers.context" + +return function(name, root_dir) + local function create_install_script(install_dir) + return ([[ +options(langserver_library = %q); +options(repos = list(CRAN = "http://cran.rstudio.com/")); +rlsLib <- getOption("langserver_library"); +install.packages("languageserversetup", lib = rlsLib); +loadNamespace("languageserversetup", lib.loc = rlsLib); + +languageserversetup::languageserver_install( + fullReinstall = TRUE, + confirmBeforeInstall = FALSE, + strictLibrary = TRUE +); +]]):format(install_dir, install_dir, install_dir) + end + + local server_script = ([[ +options("langserver_library" = %q); +rlsLib <- getOption("langserver_library"); +.libPaths(new = rlsLib); +loadNamespace("languageserver", lib.loc = rlsLib); +languageserver::run(); + ]]):format(root_dir) + + return server.Server:new { + name = name, + root_dir = root_dir, + homepage = "https://github.com/REditorSupport/languageserver", + languages = { "R" }, + installer = { + function(_, callback, ctx) + process.spawn("R", { + cwd = ctx.install_dir, + args = { "-e", create_install_script(ctx.install_dir) }, + stdio_sink = ctx.stdio_sink, + }, callback) + end, + context.receipt(function(receipt) + receipt:with_primary_source(receipt.r_package "languageserver") + end), + }, + default_options = { + cmd = { "R", "--slave", "-e", server_script }, + }, + } +end |
