diff --git a/lua/config/options.lua b/lua/config/options.lua index 004ad91..4bfd237 100644 --- a/lua/config/options.lua +++ b/lua/config/options.lua @@ -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' diff --git a/lua/plugins/lspconfig.lua b/lua/plugins/lspconfig.lua index 8389506..c580e53 100644 --- a/lua/plugins/lspconfig.lua +++ b/lua/plugins/lspconfig.lua @@ -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', }