From 095ab4eb6a02d5fd3ea4b782a0e868e2c65e4427 Mon Sep 17 00:00:00 2001 From: William Boman Date: Sun, 2 Jan 2022 17:54:56 +0100 Subject: leverage PATH for locating local executables (#283) 1. This is a breaking change for the following servers, which will have to be reinstalled: - ltex - clangd 2. This is a breaking change for users who reach into the default options (for example via server:get_default_options()) to access the `cmd` property. nvim-lsp-installer no longer provides the `cmd` (except in a few instances), but instead provides an amended PATH which allows neovim's LSP client to locate the locally installed executable. To access the `cmd`, simply access it via lspconfig instead, for example like so: local default_config = require("lspconfig.server_configurations.rust_analyzer").default_config print("I can now access the cmd governed by lspconfig:", default_config.cmd) 3. This is a breaking change for 3rd party use cases that makes use of the `executable()` APIs (e.g., `npm.executable(root_dir, "tsserver")`). The recommended usage is to instead to use the canonical name of the command ("tsserver"), while providing an amended PATH, for example: local npm = require("nvim-lsp-installer.installers.npm") local server = server.Server:new { ..., root_dir = root_dir, installer = npm.packages { "tsserver" }, default_options = { cmd = { "tsserver" }, cmd_env = npm.env(root_dir), } } --- lua/nvim-lsp-installer/servers/sumneko_lua/init.lua | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'lua/nvim-lsp-installer/servers/sumneko_lua/init.lua') diff --git a/lua/nvim-lsp-installer/servers/sumneko_lua/init.lua b/lua/nvim-lsp-installer/servers/sumneko_lua/init.lua index 907545be..1d562bb4 100644 --- a/lua/nvim-lsp-installer/servers/sumneko_lua/init.lua +++ b/lua/nvim-lsp-installer/servers/sumneko_lua/init.lua @@ -4,6 +4,7 @@ local platform = require "nvim-lsp-installer.platform" local Data = require "nvim-lsp-installer.data" local std = require "nvim-lsp-installer.installers.std" local context = require "nvim-lsp-installer.installers.context" +local process = require "nvim-lsp-installer.process" local coalesce, when = Data.coalesce, Data.when @@ -40,7 +41,11 @@ return function(name, root_dir) end), }, default_options = { - cmd = { path.concat { root_dir, "extension", "server", "bin", "lua-language-server" } }, + cmd_env = { + PATH = process.extend_path { + path.concat { root_dir, "extension", "server", "bin" }, + }, + }, }, } end -- cgit v1.2.3-70-g09d2