lsp pls wörk
This commit is contained in:
parent
113f8d4abd
commit
316cd28587
|
@ -0,0 +1,31 @@
|
|||
local lspconfig = require "lspconfig"
|
||||
local lspsettings = require "custom.plugins.configs.lspsettings"
|
||||
|
||||
-- these are using the defaults
|
||||
local servers = {
|
||||
"html",
|
||||
"cssls",
|
||||
"tsserver",
|
||||
"clangd",
|
||||
"bashls",
|
||||
"cmake",
|
||||
"yamlls",
|
||||
"texlab",
|
||||
"csharp_ls",
|
||||
}
|
||||
|
||||
for _, lsp in ipairs(servers) do
|
||||
lspconfig[lsp].setup()
|
||||
end
|
||||
|
||||
local server_with_settings = {
|
||||
-- "textlsp",
|
||||
"ltex",
|
||||
"rust_analyzer",
|
||||
"basedpyright",
|
||||
}
|
||||
|
||||
for _, lsp in ipairs(server_with_settings) do
|
||||
lspconfig[lsp].setup(lspsettings[lsp])
|
||||
end
|
||||
|
|
@ -0,0 +1,202 @@
|
|||
local M = {}
|
||||
|
||||
M.basedpyright = {
|
||||
root_dir = vim.loop.cwd,
|
||||
flags = { debounce_text_changes = 300 },
|
||||
single_file_support = true,
|
||||
settings = {
|
||||
python = {
|
||||
analysis = {
|
||||
autoSearchPaths = true,
|
||||
diagnosticMode = "openFilesOnly",
|
||||
useLibraryCodeForTypes = true,
|
||||
typeCheckingMode = "basic",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
M.rust_analyzer = {
|
||||
settings = {
|
||||
["rust-analyzer"] = {
|
||||
check = {
|
||||
command = "clippy",
|
||||
},
|
||||
imports = {
|
||||
granularity = {
|
||||
group = "module",
|
||||
},
|
||||
prefix = "self",
|
||||
},
|
||||
cargo = {
|
||||
buildScripts = {
|
||||
enable = true,
|
||||
},
|
||||
},
|
||||
procMacro = {
|
||||
enable = true,
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
M.ltex = {
|
||||
use_spellfile = false,
|
||||
settings = {
|
||||
ltex = {
|
||||
checkFrequency = "save", -- shut up while i'm just editing, see <https://github.com/folke/noice.nvim/issues/166>
|
||||
-- specific language (such as en-GB or de-DE is recommended, but I
|
||||
-- want multilingual)
|
||||
language = "auto",
|
||||
enabled = {
|
||||
"bibtex",
|
||||
"tex",
|
||||
"latex",
|
||||
"gitcommit",
|
||||
"markdown",
|
||||
"org",
|
||||
"restructuredtext",
|
||||
"rsweave",
|
||||
"quarto",
|
||||
"rmd",
|
||||
"context",
|
||||
-- "html",
|
||||
-- "xhtml",
|
||||
},
|
||||
additionalRules = {
|
||||
enablePickyRules = true,
|
||||
-- thats cool, but often adds diagnostics in
|
||||
-- places where a german might confuse words that are similar
|
||||
-- between english and german REGARDLESS of context. I seem to use the
|
||||
-- english words only in the proper contexts, so leaving this on
|
||||
-- just adds annoying hints like 'Hinweis: "list/NN.*" (English) bedeutet "Liste",
|
||||
-- "Verzeichnis" (German). Meinten Sie vielleicht 'cunning', 'trick'?'
|
||||
-- everytime I use the word "list". I liked that this makes the hints be
|
||||
-- in german regardless of the language I'm working in through...
|
||||
--motherTongue = "de",
|
||||
},
|
||||
-- load token and additional languagetool items later
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
M.textlsp = {
|
||||
filetypes = {
|
||||
"bibtex",
|
||||
"tex",
|
||||
"latex",
|
||||
"gitcommit",
|
||||
"markdown",
|
||||
"org",
|
||||
"restructuredtext",
|
||||
"rsweave",
|
||||
"quarto",
|
||||
"rmd",
|
||||
"context",
|
||||
"html",
|
||||
"xhtml",
|
||||
},
|
||||
settings = {
|
||||
textLSP = {
|
||||
analysers = {
|
||||
languagetool = {
|
||||
enabled = true,
|
||||
check_text = {
|
||||
on_open = true,
|
||||
on_save = true,
|
||||
on_change = false,
|
||||
},
|
||||
},
|
||||
gramformer = {
|
||||
-- gramformer dependency needs to be installed manually
|
||||
enabled = true,
|
||||
gpu = false,
|
||||
check_text = {
|
||||
on_open = false,
|
||||
on_save = true,
|
||||
on_change = false,
|
||||
},
|
||||
},
|
||||
hf_checker = {
|
||||
enabled = false,
|
||||
gpu = false,
|
||||
quantize = 32,
|
||||
model = "pszemraj/flan-t5-large-grammar-synthesis",
|
||||
min_length = 40,
|
||||
check_text = {
|
||||
on_open = false,
|
||||
on_save = true,
|
||||
on_change = false,
|
||||
},
|
||||
},
|
||||
hf_instruction_checker = {
|
||||
enabled = true,
|
||||
gpu = false,
|
||||
quantize = 32,
|
||||
model = "grammarly/coedit-large",
|
||||
min_length = 40,
|
||||
check_text = {
|
||||
on_open = false,
|
||||
on_save = true,
|
||||
on_change = false,
|
||||
},
|
||||
},
|
||||
hf_completion = {
|
||||
enabled = true,
|
||||
gpu = false,
|
||||
quantize = 32,
|
||||
model = "bert-base-multilingual-cased",
|
||||
topk = 5,
|
||||
},
|
||||
-- openai = {
|
||||
-- enabled = false,
|
||||
-- api_key = "<MY_API_KEY>",
|
||||
-- check_text = {
|
||||
-- on_open = false,
|
||||
-- on_save = false,
|
||||
-- on_change = false,
|
||||
-- },
|
||||
-- model = "gpt-3.5-turbo",
|
||||
-- max_token = 16,
|
||||
-- },
|
||||
-- grammarbot = {
|
||||
-- enabled = false,
|
||||
-- api_key = "<MY_API_KEY>",
|
||||
-- -- longer texts are split, this parameter sets the maximum number of splits per analysis
|
||||
-- input_max_requests = 1,
|
||||
-- check_text = {
|
||||
-- on_open = false,
|
||||
-- on_save = false,
|
||||
-- on_change = false,
|
||||
-- },
|
||||
-- },
|
||||
},
|
||||
documents = {
|
||||
-- org = {
|
||||
-- org_todo_keywords = {
|
||||
-- "TODO",
|
||||
-- "IN_PROGRESS",
|
||||
-- "DONE",
|
||||
-- },
|
||||
-- },
|
||||
txt = {
|
||||
parse = true,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
-- load secrets
|
||||
-- the secret module should just return a string with the token
|
||||
local available, token = require("custom.utils").try_require "custom.secret.languagetool_token"
|
||||
if available then
|
||||
M.ltex.languageToolOrg = {
|
||||
apiKey = token,
|
||||
username = "accounts@cscherr.de",
|
||||
languageToolHttpServerUrl = "https://api.languagetoolplus.com/v2/",
|
||||
}
|
||||
M.ltex.languageToolHttpServerUrl = "https://api.languagetoolplus.com/v2/"
|
||||
end
|
||||
|
||||
return M
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
return {
|
||||
{
|
||||
'neovim/nvim-lspconfig',
|
||||
config = function()
|
||||
require "custom.plugins.configs.lsp"
|
||||
end,
|
||||
},
|
||||
}
|
|
@ -11,7 +11,6 @@ return {
|
|||
{ '<leader>tf', '<cmd> NvimTreeToggle <cr>', desc = '[T]oggle [F]ile explorer' },
|
||||
},
|
||||
},
|
||||
|
||||
{
|
||||
'ggandor/leap.nvim',
|
||||
lazy = false,
|
||||
|
@ -33,7 +32,6 @@ return {
|
|||
},
|
||||
{
|
||||
'kdheepak/lazygit.nvim',
|
||||
lazy = false,
|
||||
keys = { '<leader>gg' },
|
||||
cmd = 'LazyGit',
|
||||
-- optional for floating window border decoration
|
||||
|
@ -48,12 +46,11 @@ return {
|
|||
mode = { 'n', 'v' },
|
||||
[';'] = { name = '+telescope' },
|
||||
[';f'] = { name = '+find' },
|
||||
[';d'] = { name = '+lsp/todo' },
|
||||
['g'] = { name = '+goto' },
|
||||
[']'] = { name = '+next' },
|
||||
['['] = { name = '+prev' },
|
||||
['<leader>x'] = { name = '+diagnostics/quickfix' },
|
||||
['<leader>d'] = { name = '+debug' },
|
||||
['<leader>d'] = { name = '+lsp/debug' },
|
||||
['<leader>r'] = { name = '+diagnostics/quickfix' },
|
||||
['<leader>c'] = { name = '+code' },
|
||||
['<leader>g'] = { name = '+git' },
|
||||
['<leader>t'] = { name = '+toggle/tools' },
|
||||
|
|
Loading…
Reference in New Issue