refactor lspconfig

This commit is contained in:
Oliver Hartmann 2024-06-15 00:19:22 +02:00
parent 48e0a8f399
commit 0a23e9529e
2 changed files with 61 additions and 58 deletions

View File

@ -3,24 +3,24 @@ vim.cmd('language en_US.utf-8')
local opt = vim.opt
local indent = 2
opt.termguicolors = true -- Enable colors in terminal
opt.hlsearch = true --Set highlight on search
opt.number = true --Make line numbers default
opt.termguicolors = true -- Enable colors in terminal
opt.hlsearch = true --Set highlight on search
opt.number = true --Make line numbers default
opt.relativenumber = false --Make relative number default
opt.mouse = 'a' --Enable mouse mode
opt.breakindent = true --Enable break indent
opt.undofile = true --Save undo history
opt.ignorecase = true --Case insensitive searching unless /C or capital in search
opt.smartcase = true -- Smart case
opt.updatetime = 300 --Decrease update time
opt.signcolumn = 'yes' -- Always show sign column
opt.timeoutlen = 300 -- Time in milliseconds to wait for a mapped sequence to complete.
opt.mouse = 'a' --Enable mouse mode
opt.breakindent = true --Enable break indent
opt.undofile = true --Save undo history
opt.ignorecase = true --Case insensitive searching unless /C or capital in search
opt.smartcase = true -- Smart case
opt.updatetime = 300 --Decrease update time
opt.signcolumn = 'yes' -- Always show sign column
opt.timeoutlen = 300 -- Time in milliseconds to wait for a mapped sequence to complete.
opt.ttimeoutlen = 10
opt.showmode = false -- Do not need to show the mode. We use the statusline instead.
opt.scrolloff = 999 -- Lines of context
opt.joinspaces = false -- No double spaces with join after a dot
opt.showmatch = true -- Show matching braces
opt.wrap = true -- When on, lines longer than the width of the window will wrap and displaying continues on the next line
opt.showmode = false -- Do not need to show the mode. We use the statusline instead.
opt.scrolloff = 999 -- Lines of context
opt.joinspaces = false -- No double spaces with join after a dot
opt.showmatch = true -- Show matching braces
opt.wrap = true -- When on, lines longer than the width of the window will wrap and displaying continues on the next line
opt.list = true
opt.hidden = true
opt.scrolloff = 4
@ -107,6 +107,18 @@ opt.foldmethod = 'expr'
opt.foldexpr = 'nvim_treesitter#foldexpr()'
opt.foldexpr = 'nvim_treesitter#foldexpr()'
vim.diagnostic.config({
virtual_text = false,
signs = true,
float = {
border = 'single',
format = function(diagnostic)
return string.format('%s (%s) [%s]', diagnostic.message, diagnostic.source,
diagnostic.code or diagnostic.user_data.lsp.code)
end,
},
})
-- Window border for floating windows
require('lspconfig.ui.windows').default_options.border = 'rounded'

View File

@ -99,6 +99,38 @@ local on_attach = function(client, bufnr)
end
end
local efm_setup = function(capabilities)
local prettier = require('efmls-configs.formatters.prettier')
local stylua = require('efmls-configs.formatters.stylua')
local gersemi = require('efmls-configs.formatters.gersemi')
local black = require('efmls-configs.formatters.black')
local isort = require('efmls-configs.formatters.isort')
local cmake_lint = require('efmls-configs.linters.cmake_lint')
local flake8 = require('efmls-configs.linters.flake8')
local languages = {
lua = { stylua },
markdown = { prettier },
cmake = { gersemi, cmake_lint },
python = { isort, black, flake8 },
}
local efmls_config = {
-- filetypes = vim.tbl_keys(languages),
settings = {
rootMarkers = { '.git/' },
languages = languages,
},
init_options = {
documentFormatting = true,
documentRangeFormatting = true,
},
}
require('lspconfig').efm.setup(vim.tbl_extend('force', efmls_config, {
on_attach = on_attach,
capabilities = capabilities,
}))
end
return {
'neovim/nvim-lspconfig',
dependencies = {
@ -278,48 +310,7 @@ return {
},
})
local prettier = require('efmls-configs.formatters.prettier')
local stylua = require('efmls-configs.formatters.stylua')
local gersemi = require('efmls-configs.formatters.gersemi')
local black = require('efmls-configs.formatters.black')
local isort = require('efmls-configs.formatters.isort')
local cmake_lint = require('efmls-configs.linters.cmake_lint')
local flake8 = require('efmls-configs.linters.flake8')
local languages = {
lua = { stylua },
markdown = { prettier },
cmake = { gersemi, cmake_lint },
python = { isort, black, flake8 },
}
local efmls_config = {
-- filetypes = vim.tbl_keys(languages),
settings = {
rootMarkers = { '.git/' },
languages = languages,
},
init_options = {
documentFormatting = true,
documentRangeFormatting = true,
},
}
require('lspconfig').efm.setup(vim.tbl_extend('force', efmls_config, {
on_attach = on_attach,
capabilities = capabilities,
}))
vim.diagnostic.config({
virtual_text = false,
signs = true,
float = {
border = 'single',
format = function(diagnostic)
return string.format('%s (%s) [%s]', diagnostic.message, diagnostic.source,
diagnostic.code or diagnostic.user_data.lsp.code)
end,
},
})
efm_setup(capabilities)
end,
event = 'VeryLazy',
}