aboutsummaryrefslogtreecommitdiffstats
path: root/lua/nvim-lsp-installer/servers/r_language_server/init.lua
diff options
context:
space:
mode:
authorWilliam Boman <william@redwill.se>2022-04-06 11:35:35 +0200
committerGitHub <noreply@github.com>2022-04-06 11:35:35 +0200
commit0795a757e8b78116f7e6d9e353bcb0443c7dbc52 (patch)
tree76f8d5d5eb55bb438db0de84a741b2d6b81fe073 /lua/nvim-lsp-installer/servers/r_language_server/init.lua
parentfix(pip3): always use normalized "python" executable with venv-enhanced path ... (diff)
downloadmason-0795a757e8b78116f7e6d9e353bcb0443c7dbc52.tar
mason-0795a757e8b78116f7e6d9e353bcb0443c7dbc52.tar.gz
mason-0795a757e8b78116f7e6d9e353bcb0443c7dbc52.tar.bz2
mason-0795a757e8b78116f7e6d9e353bcb0443c7dbc52.tar.lz
mason-0795a757e8b78116f7e6d9e353bcb0443c7dbc52.tar.xz
mason-0795a757e8b78116f7e6d9e353bcb0443c7dbc52.tar.zst
mason-0795a757e8b78116f7e6d9e353bcb0443c7dbc52.zip
fix(r_language_server): run install script via stdin (#578)
Fixes #568.
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.lua31
1 files changed, 16 insertions, 15 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
index c85107c1..c8ae0f41 100644
--- a/lua/nvim-lsp-installer/servers/r_language_server/init.lua
+++ b/lua/nvim-lsp-installer/servers/r_language_server/init.lua
@@ -1,6 +1,5 @@
local server = require "nvim-lsp-installer.server"
-local process = require "nvim-lsp-installer.process"
-local context = require "nvim-lsp-installer.installers.context"
+local path = require "nvim-lsp-installer.path"
return function(name, root_dir)
local function create_install_script(install_dir)
@@ -32,20 +31,22 @@ languageserver::run();
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),
- },
+ async = true,
+ ---@param ctx InstallContext
+ installer = function(ctx)
+ ctx.spawn.R {
+ "--no-save",
+ on_spawn = function(_, stdio)
+ local stdin = stdio[1]
+ stdin:write(create_install_script(ctx.cwd:get()))
+ stdin:close()
+ end,
+ }
+ ctx.fs:write_file("server.R", server_script)
+ ctx.receipt:with_primary_source(ctx.receipt.r_package "languageserver")
+ end,
default_options = {
- cmd = { "R", "--slave", "-e", server_script },
+ cmd = { "R", "--slave", "-f", path.concat { root_dir, "server.R" } },
},
}
end