diff options
Diffstat (limited to 'start/lspconfig-0.1.8/lua/lspconfig/server_configurations/bqnlsp.lua')
-rw-r--r-- | start/lspconfig-0.1.8/lua/lspconfig/server_configurations/bqnlsp.lua | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/start/lspconfig-0.1.8/lua/lspconfig/server_configurations/bqnlsp.lua b/start/lspconfig-0.1.8/lua/lspconfig/server_configurations/bqnlsp.lua new file mode 100644 index 0000000..5d18e99 --- /dev/null +++ b/start/lspconfig-0.1.8/lua/lspconfig/server_configurations/bqnlsp.lua @@ -0,0 +1,45 @@ +local util = require 'lspconfig.util' + +-- set os dependent library path +local function library_path(path, cmd_env) + path = path or '/usr/local/lib' + cmd_env = cmd_env or {} + if vim.fn.has 'macunix' and not cmd_env.DYLD_LIBRARY_PATH then + cmd_env.DYLD_LIBRARY_PATH = path + elseif vim.fn.has 'linux' and not cmd_env.LD_LIBRARY_PATH then + cmd_env.LD_LIBRARY_PATH = path + end + return cmd_env +end + +return { + default_config = { + cmd = { 'bqnlsp' }, + filetypes = { 'bqn' }, + root_dir = util.find_git_ancestor, + single_file_support = true, + libcbqnPath = nil, + on_new_config = function(new_config, _) + if new_config.libcbqnPath then + new_config.cmd_env = library_path(new_config.libcbqnPath, new_config.cmd_env) + end + end, + }, + docs = { + description = [[ +https://git.sr.ht/~detegr/bqnlsp + + +`bqnlsp`, a language server for BQN. + +The binary depends on the shared library of [CBQN](https://github.com/dzaima/CBQN) `libcbqn.so`. +If CBQN is installed system-wide (using `sudo make install` in its source directory) and `bqnlsp` errors that it can't find the shared library, update the linker cache by executing `sudo ldconfig`. +If CBQN has been installed in a non-standard directory or can't be installed globally pass `libcbqnPath = '/path/to/CBQN'` to the setup function. +This will set the environment variables `LD_LIBRARY_PATH` (Linux) or `DYLD_LIBRARY_PATH` (macOS) to the provided path. + + ]], + default_config = { + root_dir = [[util.find_git_ancestor]], + }, + }, +} |