diff options
| author | William Boman <william@redwill.se> | 2022-04-06 11:35:35 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-04-06 11:35:35 +0200 |
| commit | 0795a757e8b78116f7e6d9e353bcb0443c7dbc52 (patch) | |
| tree | 76f8d5d5eb55bb438db0de84a741b2d6b81fe073 /lua/nvim-lsp-installer/servers/r_language_server/init.lua | |
| parent | fix(pip3): always use normalized "python" executable with venv-enhanced path ... (diff) | |
| download | mason-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.lua | 31 |
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 |
