-
Notifications
You must be signed in to change notification settings - Fork 13
Expand file tree
/
Copy pathspring-boot.lua
More file actions
56 lines (51 loc) · 1.56 KB
/
Copy pathspring-boot.lua
File metadata and controls
56 lines (51 loc) · 1.56 KB
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
local M = {}
local me = require("kide.melspconfig")
local function spring_tools_path()
local path = vim.env["JDTLS_SPRING_TOOLS_PATH"]
if path == nil or path == "" then
return nil
end
return path
end
-- 语言服务器路径: 优先取 env 指定的目录, 否则由插件从 mason / vscode 扩展目录查找
local function ls_path()
local path = spring_tools_path()
if path == nil then
return nil
end
return require("spring_boot").get_boot_ls(vim.fs.joinpath(path, "language-server"))
end
-- jdtls 扩展 jar: env 指定目录优先, 否则交给插件自己查找
M.jars = function()
local path = spring_tools_path()
if path == nil then
return nil
end
return require("spring_boot").get_jars(vim.fs.joinpath(path, "jars"))
end
-- 0.2 起客户端由 vim.lsp.config/vim.lsp.enable 接管, 只需要配置一次
M.setup = function()
if M.done then
return
end
M.done = true
require("spring_boot").setup({
ls_path = ls_path(),
jars = M.jars(),
project_filter = function(root_dir)
return require("spring_boot.util").has_spring_boot_dependency(root_dir)
end,
server = {
on_attach = function(client, bufnr)
me.on_attach(client, bufnr)
end,
on_init = function(client, init_result)
client.server_capabilities.documentHighlightProvider = false
-- server 是合并链最高层, 会整个替换插件自带的 on_init, 需要自己调用
require("spring_boot.util").boot_ls_init(client, init_result)
me.on_init(client, init_result)
end,
},
})
end
return M