Refactor lsp
This commit is contained in:
@@ -1,98 +0,0 @@
|
|||||||
--[[
|
|
||||||
Copyright 2023 Oscar Wallberg
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
https://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
]]
|
|
||||||
|
|
||||||
return {
|
|
||||||
cmd = { "diagnostic-languageserver", "--stdio", },
|
|
||||||
single_file_support = true,
|
|
||||||
-- For more info see https://github.com/iamcco/diagnostic-languageserver
|
|
||||||
init_options = {
|
|
||||||
filetypes = { python = "flake8", lua = "luaFormatter", },
|
|
||||||
linters = {
|
|
||||||
-- some help from this:
|
|
||||||
-- https://github.com/creativenull/diagnosticls-configs-nvim/blob/main/lua/diagnosticls-configs/linters/flake8.lua
|
|
||||||
flake8 = {
|
|
||||||
command = "flake8",
|
|
||||||
args = {
|
|
||||||
"--config",
|
|
||||||
"tox.ini",
|
|
||||||
"--format",
|
|
||||||
"%(row)d,%(col)d,%(code).1s,%(code)s: %(text)s",
|
|
||||||
"-",
|
|
||||||
},
|
|
||||||
rootPatterns = { "Pipfile", ".git", "tox.ini", },
|
|
||||||
isStdout = true,
|
|
||||||
isStderr = false,
|
|
||||||
debounce = 100,
|
|
||||||
offsetLine = 0,
|
|
||||||
offsetColumn = 0,
|
|
||||||
sourceName = "flake8",
|
|
||||||
formatLines = 1,
|
|
||||||
formatPattern = {
|
|
||||||
[[(\d+),(\d+),([A-Z]),(.*)(\r|\n)*$]],
|
|
||||||
{ line = 1, column = 2, security = 3, message = { 4, }, },
|
|
||||||
},
|
|
||||||
securities = {
|
|
||||||
-- Available securities are { 'error', 'warning', 'hint', 'info' }
|
|
||||||
E = "error",
|
|
||||||
W = "warning",
|
|
||||||
B = "hint",
|
|
||||||
F = "error",
|
|
||||||
D = "info",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
formatFiletypes = {
|
|
||||||
python = { "black", "isort", },
|
|
||||||
sh = { "shfmt", },
|
|
||||||
},
|
|
||||||
formatters = {
|
|
||||||
black = {
|
|
||||||
sourceName = "black",
|
|
||||||
command = "black",
|
|
||||||
args = {
|
|
||||||
"--stdin-filename",
|
|
||||||
"%filename",
|
|
||||||
"-t",
|
|
||||||
"py39",
|
|
||||||
"--quiet",
|
|
||||||
"-",
|
|
||||||
},
|
|
||||||
rootPatterns = { "Pipfile", ".git", "tox.ini", },
|
|
||||||
isStdout = true,
|
|
||||||
isStderr = false,
|
|
||||||
ignoreExitCode = false,
|
|
||||||
},
|
|
||||||
isort = {
|
|
||||||
sourceName = "isort",
|
|
||||||
command = "isort",
|
|
||||||
args = { "--quiet", "-", },
|
|
||||||
rootPatterns = { "Pipfile", ".git", "tox.ini", },
|
|
||||||
isStdout = true,
|
|
||||||
isStderr = false,
|
|
||||||
ignoreExitCode = false,
|
|
||||||
},
|
|
||||||
shfmt = {
|
|
||||||
sourceName = "shfmt",
|
|
||||||
command = "shfmt",
|
|
||||||
args = { "-s", "-i", "4", "-ci", },
|
|
||||||
rootPatterns = { "Pipfile", ".git", "tox.ini", },
|
|
||||||
isStdout = true,
|
|
||||||
isStderr = false,
|
|
||||||
ignoreExitCode = false,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
@@ -1,55 +0,0 @@
|
|||||||
--[[
|
|
||||||
Copyright 2023 Oscar Wallberg
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
https://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
]]
|
|
||||||
|
|
||||||
return {
|
|
||||||
cmd = { "jedi-language-server", },
|
|
||||||
single_file_support = true,
|
|
||||||
-- For more info see:
|
|
||||||
-- - https://github.com/pappasam/jedi-language-server#configuration
|
|
||||||
-- - https://github.com/pappasam/coc-jedi#configuration (good descriptions)
|
|
||||||
init_options = {
|
|
||||||
-- Built-in diagnostics seem to be very basic,
|
|
||||||
-- to the point where you are wondering if it's even active.
|
|
||||||
-- Will use iamcco/diagnostic-languageserver instead.
|
|
||||||
diagnostics = {
|
|
||||||
-- Enables (or disables) diagnostics provided by Jedi
|
|
||||||
-- type: boolean
|
|
||||||
-- default: true
|
|
||||||
enable = false,
|
|
||||||
},
|
|
||||||
-- The preferred MarkupKind for all jedi-language-server messages that take MarkupContent.
|
|
||||||
-- type: string
|
|
||||||
-- accepted values: "markdown", "plaintext"
|
|
||||||
-- If omitted, jedi-language-server defaults to the client-preferred configuration.
|
|
||||||
-- If there is no client-preferred configuration, jedi language server users "plaintext".
|
|
||||||
-- markupKindPreferred = "markdown",
|
|
||||||
workspace = {
|
|
||||||
symbols = {
|
|
||||||
-- Performance optimization that sets names of folders that are ignored for workspace/symbols.
|
|
||||||
-- type: string[]
|
|
||||||
-- default: { ".nox", ".tox", ".venv", "__pycache__", "venv" }
|
|
||||||
-- If you manually set this option, it overrides the default.
|
|
||||||
-- Setting it to an empty array will result in no ignored folders.
|
|
||||||
ignoreFolders = {
|
|
||||||
".nox", ".tox", ".venv", "__pycache__", "venv",
|
|
||||||
"artifacts", "config", ".vscode", ".pytest_cache",
|
|
||||||
"build", "scripts", "incoax_tests.egg-info",
|
|
||||||
"node_modules",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
+14
-16
@@ -221,7 +221,7 @@ end
|
|||||||
function P.reload_server_buf(self, name)
|
function P.reload_server_buf(self, name)
|
||||||
local server = self.servers[name]
|
local server = self.servers[name]
|
||||||
local ft_map = {}
|
local ft_map = {}
|
||||||
for _, ft in ipairs(server.filetypes) do
|
for _, ft in ipairs(server.lspconfig.filetypes) do
|
||||||
ft_map[ft] = true
|
ft_map[ft] = true
|
||||||
end
|
end
|
||||||
for _, bufnr in ipairs(vim.api.nvim_list_bufs()) do
|
for _, bufnr in ipairs(vim.api.nvim_list_bufs()) do
|
||||||
@@ -241,8 +241,8 @@ function P.filetypes(self)
|
|||||||
if not self._filetypes then
|
if not self._filetypes then
|
||||||
self._filetypes = {}
|
self._filetypes = {}
|
||||||
local unique = {}
|
local unique = {}
|
||||||
for _, cfg in pairs(self.servers) do
|
for _, server in pairs(self.servers) do
|
||||||
for _, ft in ipairs(cfg.filetypes) do
|
for _, ft in ipairs(server.lspconfig.filetypes) do
|
||||||
if not unique[ft] then
|
if not unique[ft] then
|
||||||
table.insert(self._filetypes, ft)
|
table.insert(self._filetypes, ft)
|
||||||
unique[ft] = true
|
unique[ft] = true
|
||||||
@@ -257,22 +257,21 @@ end
|
|||||||
function P.language_servers(self)
|
function P.language_servers(self)
|
||||||
if not self._language_servers then
|
if not self._language_servers then
|
||||||
self._language_servers = {}
|
self._language_servers = {}
|
||||||
for name, opts in pairs(self.servers) do
|
for name, server in pairs(self.servers) do
|
||||||
if opts.dependencies ~= nil then
|
if server.dependencies ~= nil then
|
||||||
for _, dep in ipairs(opts.dependencies) do
|
for _, dep in ipairs(server.dependencies) do
|
||||||
if not utils.is_available(dep) then
|
if not utils.is_available(dep) then
|
||||||
utils.warn(
|
utils.warn(
|
||||||
"Disabling " .. name .. " because " .. dep .. " is required but not installed",
|
"Disabling " .. name .. " because " .. dep .. " is required but not installed",
|
||||||
module_name
|
module_name
|
||||||
)
|
)
|
||||||
opts.enabled = false
|
server.enabled = false
|
||||||
goto next_server
|
goto next_server
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if opts.enabled == true then
|
if server.enabled == true then
|
||||||
opts.config = require("lsp.config." .. name)
|
|
||||||
table.insert(self._language_servers, name)
|
table.insert(self._language_servers, name)
|
||||||
end
|
end
|
||||||
::next_server::
|
::next_server::
|
||||||
@@ -283,18 +282,17 @@ function P.language_servers(self)
|
|||||||
end
|
end
|
||||||
|
|
||||||
function P.setup_server(self, name)
|
function P.setup_server(self, name)
|
||||||
local opts = self.servers[name]
|
local server = self.servers[name]
|
||||||
|
|
||||||
if opts.enabled ~= true then
|
if server.enabled ~= true then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
local lspconfig = require("lspconfig")
|
local lspconfig = require("lspconfig")
|
||||||
opts.config.filetypes = opts.filetypes
|
server.lspconfig.root_dir = lspconfig.util.find_git_ancestor
|
||||||
opts.config.root_dir = lspconfig.util.find_git_ancestor
|
server.lspconfig.capabilities = self.capabilities
|
||||||
opts.config.capabilities = self.capabilities
|
server.lspconfig.on_attach = self.on_attach
|
||||||
opts.config.on_attach = self.on_attach
|
lspconfig[name].setup(server.lspconfig)
|
||||||
lspconfig[name].setup(opts.config)
|
|
||||||
self:reload_server_buf(name)
|
self:reload_server_buf(name)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -1,94 +0,0 @@
|
|||||||
--[[
|
|
||||||
Copyright 2023 Oscar Wallberg
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
https://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
]]
|
|
||||||
|
|
||||||
local servers = {
|
|
||||||
clangd = {
|
|
||||||
enabled = true,
|
|
||||||
filetypes = {
|
|
||||||
"c",
|
|
||||||
"cpp",
|
|
||||||
"objc",
|
|
||||||
"objcpp",
|
|
||||||
"cuda",
|
|
||||||
"proto",
|
|
||||||
},
|
|
||||||
config = {},
|
|
||||||
},
|
|
||||||
cmake = {
|
|
||||||
enabled = true,
|
|
||||||
filetypes = {
|
|
||||||
"cmake",
|
|
||||||
},
|
|
||||||
config = {},
|
|
||||||
},
|
|
||||||
diagnosticls = {
|
|
||||||
enabled = true,
|
|
||||||
filetypes = {
|
|
||||||
"python",
|
|
||||||
"lua",
|
|
||||||
"sh",
|
|
||||||
},
|
|
||||||
dependencies = {
|
|
||||||
"npm",
|
|
||||||
},
|
|
||||||
config = {},
|
|
||||||
},
|
|
||||||
lua_ls = {
|
|
||||||
enabled = true,
|
|
||||||
filetypes = {
|
|
||||||
"lua",
|
|
||||||
},
|
|
||||||
config = {},
|
|
||||||
},
|
|
||||||
lemminx = {
|
|
||||||
enabled = true,
|
|
||||||
filetypes = {
|
|
||||||
"xml",
|
|
||||||
"xsd",
|
|
||||||
"xsl",
|
|
||||||
"xslt",
|
|
||||||
"svg",
|
|
||||||
},
|
|
||||||
config = {},
|
|
||||||
},
|
|
||||||
bashls = {
|
|
||||||
enabled = true,
|
|
||||||
filetypes = {
|
|
||||||
"sh",
|
|
||||||
},
|
|
||||||
dependencies = {
|
|
||||||
"npm",
|
|
||||||
"shellcheck"
|
|
||||||
},
|
|
||||||
config = {},
|
|
||||||
},
|
|
||||||
groovyls = {
|
|
||||||
enabled = true,
|
|
||||||
filetypes = {
|
|
||||||
"groovy",
|
|
||||||
},
|
|
||||||
config = {},
|
|
||||||
},
|
|
||||||
jedi_language_server = {
|
|
||||||
enabled = true,
|
|
||||||
filetypes = {
|
|
||||||
"python",
|
|
||||||
},
|
|
||||||
config = {},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
return servers
|
|
||||||
@@ -15,11 +15,17 @@
|
|||||||
]]
|
]]
|
||||||
|
|
||||||
return {
|
return {
|
||||||
cmd = {
|
enabled = true,
|
||||||
"clangd",
|
dependencies = {
|
||||||
"--clang-tidy",
|
"npm",
|
||||||
"--enable-config",
|
"shellcheck",
|
||||||
"--log=verbose",
|
},
|
||||||
|
lspconfig = {
|
||||||
|
filetypes = {
|
||||||
|
"sh",
|
||||||
|
},
|
||||||
|
cmd = { "bash-language-server", "start", },
|
||||||
|
cmd_env = { GLOB_PATTERN = "*@(.sh|.inc|.bash|.command)", },
|
||||||
|
single_file_support = true,
|
||||||
},
|
},
|
||||||
single_file_support = true,
|
|
||||||
}
|
}
|
||||||
@@ -15,7 +15,22 @@
|
|||||||
]]
|
]]
|
||||||
|
|
||||||
return {
|
return {
|
||||||
cmd = { "bash-language-server", "start", },
|
enabled = true,
|
||||||
cmd_env = { GLOB_PATTERN = "*@(.sh|.inc|.bash|.command)", },
|
lspconfig = {
|
||||||
single_file_support = true,
|
filetypes = {
|
||||||
|
"c",
|
||||||
|
"cpp",
|
||||||
|
"objc",
|
||||||
|
"objcpp",
|
||||||
|
"cuda",
|
||||||
|
"proto",
|
||||||
|
},
|
||||||
|
cmd = {
|
||||||
|
"clangd",
|
||||||
|
"--clang-tidy",
|
||||||
|
"--enable-config",
|
||||||
|
"--log=verbose",
|
||||||
|
},
|
||||||
|
single_file_support = true,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
@@ -15,9 +15,15 @@
|
|||||||
]]
|
]]
|
||||||
|
|
||||||
return {
|
return {
|
||||||
cmd = { "cmake-language-server", },
|
enabled = true,
|
||||||
single_file_support = true,
|
lspconfig = {
|
||||||
init_options = {
|
filetypes = {
|
||||||
buildDirectory = "build",
|
"cmake",
|
||||||
|
},
|
||||||
|
cmd = { "cmake-language-server", },
|
||||||
|
single_file_support = true,
|
||||||
|
init_options = {
|
||||||
|
buildDirectory = "build",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,109 @@
|
|||||||
|
--[[
|
||||||
|
Copyright 2023 Oscar Wallberg
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
]]
|
||||||
|
|
||||||
|
return {
|
||||||
|
enabled = true,
|
||||||
|
dependencies = {
|
||||||
|
"npm",
|
||||||
|
},
|
||||||
|
lspconfig = {
|
||||||
|
filetypes = {
|
||||||
|
"python",
|
||||||
|
"lua",
|
||||||
|
"sh",
|
||||||
|
},
|
||||||
|
cmd = { "diagnostic-languageserver", "--stdio", },
|
||||||
|
single_file_support = true,
|
||||||
|
-- For more info see https://github.com/iamcco/diagnostic-languageserver
|
||||||
|
init_options = {
|
||||||
|
filetypes = { python = "flake8", lua = "luaFormatter", },
|
||||||
|
linters = {
|
||||||
|
-- some help from this:
|
||||||
|
-- https://github.com/creativenull/diagnosticls-configs-nvim/blob/main/lua/diagnosticls-configs/linters/flake8.lua
|
||||||
|
flake8 = {
|
||||||
|
command = "flake8",
|
||||||
|
args = {
|
||||||
|
"--config",
|
||||||
|
"tox.ini",
|
||||||
|
"--format",
|
||||||
|
"%(row)d,%(col)d,%(code).1s,%(code)s: %(text)s",
|
||||||
|
"-",
|
||||||
|
},
|
||||||
|
rootPatterns = { "Pipfile", ".git", "tox.ini", },
|
||||||
|
isStdout = true,
|
||||||
|
isStderr = false,
|
||||||
|
debounce = 100,
|
||||||
|
offsetLine = 0,
|
||||||
|
offsetColumn = 0,
|
||||||
|
sourceName = "flake8",
|
||||||
|
formatLines = 1,
|
||||||
|
formatPattern = {
|
||||||
|
[[(\d+),(\d+),([A-Z]),(.*)(\r|\n)*$]],
|
||||||
|
{ line = 1, column = 2, security = 3, message = { 4, }, },
|
||||||
|
},
|
||||||
|
securities = {
|
||||||
|
-- Available securities are { 'error', 'warning', 'hint', 'info' }
|
||||||
|
E = "error",
|
||||||
|
W = "warning",
|
||||||
|
B = "hint",
|
||||||
|
F = "error",
|
||||||
|
D = "info",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
formatFiletypes = {
|
||||||
|
python = { "black", "isort", },
|
||||||
|
sh = { "shfmt", },
|
||||||
|
},
|
||||||
|
formatters = {
|
||||||
|
black = {
|
||||||
|
sourceName = "black",
|
||||||
|
command = "black",
|
||||||
|
args = {
|
||||||
|
"--stdin-filename",
|
||||||
|
"%filename",
|
||||||
|
"-t",
|
||||||
|
"py39",
|
||||||
|
"--quiet",
|
||||||
|
"-",
|
||||||
|
},
|
||||||
|
rootPatterns = { "Pipfile", ".git", "tox.ini", },
|
||||||
|
isStdout = true,
|
||||||
|
isStderr = false,
|
||||||
|
ignoreExitCode = false,
|
||||||
|
},
|
||||||
|
isort = {
|
||||||
|
sourceName = "isort",
|
||||||
|
command = "isort",
|
||||||
|
args = { "--quiet", "-", },
|
||||||
|
rootPatterns = { "Pipfile", ".git", "tox.ini", },
|
||||||
|
isStdout = true,
|
||||||
|
isStderr = false,
|
||||||
|
ignoreExitCode = false,
|
||||||
|
},
|
||||||
|
shfmt = {
|
||||||
|
sourceName = "shfmt",
|
||||||
|
command = "shfmt",
|
||||||
|
args = { "-s", "-i", "4", "-ci", },
|
||||||
|
rootPatterns = { "Pipfile", ".git", "tox.ini", },
|
||||||
|
isStdout = true,
|
||||||
|
isStderr = false,
|
||||||
|
ignoreExitCode = false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
@@ -15,9 +15,15 @@
|
|||||||
]]
|
]]
|
||||||
|
|
||||||
return {
|
return {
|
||||||
cmd = {
|
enabled = true,
|
||||||
"java", "-jar",
|
lspconfig = {
|
||||||
"/usr/share/java/groovy-language-server/groovy-language-server-all.jar",
|
filetypes = {
|
||||||
|
"groovy",
|
||||||
|
},
|
||||||
|
cmd = {
|
||||||
|
"java", "-jar",
|
||||||
|
"/usr/share/java/groovy-language-server/groovy-language-server-all.jar",
|
||||||
|
},
|
||||||
|
single_file_support = true,
|
||||||
},
|
},
|
||||||
single_file_support = true,
|
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
local servers = {
|
||||||
|
"bashls",
|
||||||
|
"clangd",
|
||||||
|
"cmake",
|
||||||
|
"diagnosticls",
|
||||||
|
"groovyls",
|
||||||
|
"jedi_language_server",
|
||||||
|
"lemminx",
|
||||||
|
"lua_ls",
|
||||||
|
}
|
||||||
|
|
||||||
|
local manifest = {}
|
||||||
|
|
||||||
|
for _, name in ipairs(servers) do
|
||||||
|
manifest[name] = require("lsp.servers." .. name)
|
||||||
|
end
|
||||||
|
|
||||||
|
return manifest
|
||||||
@@ -0,0 +1,61 @@
|
|||||||
|
--[[
|
||||||
|
Copyright 2023 Oscar Wallberg
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
]]
|
||||||
|
|
||||||
|
return {
|
||||||
|
enabled = true,
|
||||||
|
lspconfig = {
|
||||||
|
filetypes = {
|
||||||
|
"python",
|
||||||
|
},
|
||||||
|
cmd = { "jedi-language-server", },
|
||||||
|
single_file_support = true,
|
||||||
|
-- For more info see:
|
||||||
|
-- - https://github.com/pappasam/jedi-language-server#configuration
|
||||||
|
-- - https://github.com/pappasam/coc-jedi#configuration (good descriptions)
|
||||||
|
init_options = {
|
||||||
|
-- Built-in diagnostics seem to be very basic,
|
||||||
|
-- to the point where you are wondering if it's even active.
|
||||||
|
-- Will use iamcco/diagnostic-languageserver instead.
|
||||||
|
diagnostics = {
|
||||||
|
-- Enables (or disables) diagnostics provided by Jedi
|
||||||
|
-- type: boolean
|
||||||
|
-- default: true
|
||||||
|
enable = false,
|
||||||
|
},
|
||||||
|
-- The preferred MarkupKind for all jedi-language-server messages that take MarkupContent.
|
||||||
|
-- type: string
|
||||||
|
-- accepted values: "markdown", "plaintext"
|
||||||
|
-- If omitted, jedi-language-server defaults to the client-preferred configuration.
|
||||||
|
-- If there is no client-preferred configuration, jedi language server users "plaintext".
|
||||||
|
-- markupKindPreferred = "markdown",
|
||||||
|
workspace = {
|
||||||
|
symbols = {
|
||||||
|
-- Performance optimization that sets names of folders that are ignored for workspace/symbols.
|
||||||
|
-- type: string[]
|
||||||
|
-- default: { ".nox", ".tox", ".venv", "__pycache__", "venv" }
|
||||||
|
-- If you manually set this option, it overrides the default.
|
||||||
|
-- Setting it to an empty array will result in no ignored folders.
|
||||||
|
ignoreFolders = {
|
||||||
|
".nox", ".tox", ".venv", "__pycache__", "venv",
|
||||||
|
"artifacts", "config", ".vscode", ".pytest_cache",
|
||||||
|
"build", "scripts", "incoax_tests.egg-info",
|
||||||
|
"node_modules",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
@@ -15,18 +15,28 @@
|
|||||||
]]
|
]]
|
||||||
|
|
||||||
return {
|
return {
|
||||||
cmd = { "lemminx", },
|
enabled = true,
|
||||||
single_file_support = true,
|
lspconfig = {
|
||||||
init_options = {
|
filetypes = {
|
||||||
settings = {
|
"xml",
|
||||||
xml = {
|
"xsd",
|
||||||
format = {
|
"xsl",
|
||||||
splitAttributes = true,
|
"xslt",
|
||||||
joinCDATALines = false,
|
"svg",
|
||||||
joinContentLines = true,
|
},
|
||||||
joinCommentLines = false,
|
cmd = { "lemminx", },
|
||||||
spaceBeforeEmptyCloseLine = false,
|
single_file_support = true,
|
||||||
enabled = true,
|
init_options = {
|
||||||
|
settings = {
|
||||||
|
xml = {
|
||||||
|
format = {
|
||||||
|
splitAttributes = true,
|
||||||
|
joinCDATALines = false,
|
||||||
|
joinContentLines = true,
|
||||||
|
joinCommentLines = false,
|
||||||
|
spaceBeforeEmptyCloseLine = false,
|
||||||
|
enabled = true,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@@ -21,19 +21,25 @@ table.insert(runtime_path, "lua/?/init.lua")
|
|||||||
-- spec: https://luals.github.io/wiki/settings/
|
-- spec: https://luals.github.io/wiki/settings/
|
||||||
|
|
||||||
return {
|
return {
|
||||||
cmd = { "lua-language-server", },
|
enabled = true,
|
||||||
single_file_support = true,
|
lspconfig = {
|
||||||
settings = {
|
filetypes = {
|
||||||
Lua = {
|
"lua",
|
||||||
runtime = {
|
},
|
||||||
version = "LuaJIT",
|
cmd = { "lua-language-server", },
|
||||||
path = runtime_path,
|
single_file_support = true,
|
||||||
|
settings = {
|
||||||
|
Lua = {
|
||||||
|
runtime = {
|
||||||
|
version = "LuaJIT",
|
||||||
|
path = runtime_path,
|
||||||
|
},
|
||||||
|
workspace = {
|
||||||
|
library = vim.api.nvim_get_runtime_file("", true),
|
||||||
|
checkThirdParty = false,
|
||||||
|
},
|
||||||
|
telemetry = { enable = false, },
|
||||||
},
|
},
|
||||||
workspace = {
|
|
||||||
library = vim.api.nvim_get_runtime_file("", true),
|
|
||||||
checkThirdParty = false,
|
|
||||||
},
|
|
||||||
telemetry = { enable = false, },
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user