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/nvim-lsp-installer/servers/r_language_server/init.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/nvim-lsp-installer/servers/r_language_server/init.lua')
| -rw-r--r-- | lua/nvim-lsp-installer/servers/r_language_server/init.lua | 51 |
1 files changed, 51 insertions, 0 deletions
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 |
