Refactor lsp
This commit is contained in:
@@ -1,21 +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 = { "bash-language-server", "start", },
|
||||
cmd_env = { GLOB_PATTERN = "*@(.sh|.inc|.bash|.command)", },
|
||||
single_file_support = true,
|
||||
}
|
||||
@@ -1,25 +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 = {
|
||||
"clangd",
|
||||
"--clang-tidy",
|
||||
"--enable-config",
|
||||
"--log=verbose",
|
||||
},
|
||||
single_file_support = true,
|
||||
}
|
||||
@@ -1,23 +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 = { "cmake-language-server", },
|
||||
single_file_support = true,
|
||||
init_options = {
|
||||
buildDirectory = "build",
|
||||
},
|
||||
}
|
||||
@@ -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,23 +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 = {
|
||||
"java", "-jar",
|
||||
"/usr/share/java/groovy-language-server/groovy-language-server-all.jar",
|
||||
},
|
||||
single_file_support = true,
|
||||
}
|
||||
@@ -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",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
@@ -1,34 +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 = { "lemminx", },
|
||||
single_file_support = true,
|
||||
init_options = {
|
||||
settings = {
|
||||
xml = {
|
||||
format = {
|
||||
splitAttributes = true,
|
||||
joinCDATALines = false,
|
||||
joinContentLines = true,
|
||||
joinCommentLines = false,
|
||||
spaceBeforeEmptyCloseLine = false,
|
||||
enabled = true,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
@@ -1,39 +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 runtime_path = vim.split(package.path, ";")
|
||||
table.insert(runtime_path, "lua/?.lua")
|
||||
table.insert(runtime_path, "lua/?/init.lua")
|
||||
|
||||
-- spec: https://luals.github.io/wiki/settings/
|
||||
|
||||
return {
|
||||
cmd = { "lua-language-server", },
|
||||
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, },
|
||||
},
|
||||
},
|
||||
}
|
||||
Reference in New Issue
Block a user