mirror of
https://github.com/SpaceVim/SpaceVim.git
synced 2025-02-09 18:20:05 +08:00
50 lines
1.5 KiB
Lua
50 lines
1.5 KiB
Lua
|
local util = require 'lspconfig.util'
|
||
|
|
||
|
return {
|
||
|
default_config = {
|
||
|
cmd = { 'DelphiLSP.exe' },
|
||
|
filetypes = { 'pascal' },
|
||
|
root_dir = util.root_pattern '*.dpr',
|
||
|
single_file_support = false,
|
||
|
},
|
||
|
docs = {
|
||
|
description = [[
|
||
|
Language server for Delphi from Embarcadero.
|
||
|
https://marketplace.visualstudio.com/items?itemName=EmbarcaderoTechnologies.delphilsp
|
||
|
|
||
|
Note, the '*.delphilsp.json' file is required, more details at:
|
||
|
https://docwiki.embarcadero.com/RADStudio/Alexandria/en/Using_DelphiLSP_Code_Insight_with_Other_Editors
|
||
|
|
||
|
Below, you'll find a sample configuration for the lazy manager.
|
||
|
When on_attach is triggered, it signals DelphiLSP to load settings from a configuration file.
|
||
|
Without this step, DelphiLSP initializes but remains non-functional:
|
||
|
|
||
|
```lua
|
||
|
"neovim/nvim-lspconfig",
|
||
|
lazy = false,
|
||
|
config = function()
|
||
|
local capabilities = require("cmp_nvim_lsp").default_capabilities()
|
||
|
local lspconfig = require("lspconfig")
|
||
|
|
||
|
lspconfig.delphi_ls.setup({
|
||
|
capabilities = capabilities,
|
||
|
|
||
|
on_attach = function(client)
|
||
|
local lsp_config = vim.fs.find(function(name)
|
||
|
return name:match(".*%.delphilsp.json$")
|
||
|
end, { type = "file", path = client.config.root_dir, upward = false })[1]
|
||
|
|
||
|
if lsp_config then
|
||
|
client.config.settings = { settingsFile = lsp_config }
|
||
|
client.notify("workspace/didChangeConfiguration", { settings = client.config.settings })
|
||
|
else
|
||
|
vim.notify_once("delphi_ls: '*.delphilsp.json' config file not found")
|
||
|
end
|
||
|
end,
|
||
|
})
|
||
|
end,
|
||
|
```
|
||
|
]],
|
||
|
},
|
||
|
}
|