-
Notifications
You must be signed in to change notification settings - Fork 2.1k
/
bqnlsp.lua
42 lines (36 loc) · 1.42 KB
/
bqnlsp.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
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.
]],
},
}