diff --git a/init.lua b/init.lua index ebde6c5..5005469 100644 --- a/init.lua +++ b/init.lua @@ -20,5 +20,3 @@ vim.opt.rtp:prepend(lazypath) require("lazy").setup("plugins") require("plugconfig") - -require("confformat") diff --git a/lua/confformat.lua b/lua/confformat.lua index 8ec76e3..19810d0 100644 --- a/lua/confformat.lua +++ b/lua/confformat.lua @@ -54,3 +54,13 @@ require("formatter").setup({ }, }, }) + +-- Formatter autocommands +vim.cmd([[ + augroup FormatAutogroup + autocmd! + autocmd BufWritePost * FormatWrite + augroup END + + autocmd BufWritePost *.v lua vim.lsp.buf.format({ async = false }) +]]) diff --git a/lua/linterconfiguration.lua b/lua/linterconfiguration.lua new file mode 100644 index 0000000..9084a3a --- /dev/null +++ b/lua/linterconfiguration.lua @@ -0,0 +1,30 @@ +-- Ale configuration +vim.g.ale_linters_explicit = 0 +local linters = { + python = { "pylint" }, + vim = { "vint" }, + cpp = { "clang" }, + c = { "clang" }, + markdown = { "languagetool" }, + latex = { "proselint" }, + tex = { "proselint" }, + plaintex = { "proselint" }, + ada = { "gnat", "gcc", "cspell" }, +} + +vim.g.ale_linters = linters +vim.g.ale_fix_on_save = 1 +-- vim.g.ale_ada_gpr_project_file = "default.gpr" +vim.g.ale_fixers = { + ada = { "gnatpp" }, + asm = { "gcc" }, + bash = { "bashate" }, + c = { "astyle" }, + latex = { "texlab", "textlint" }, + lua = { "stylua" }, + markdown = { "prettier", "pandoc" }, + python = { "yapf" }, +} + +vim.keymap.set("n", "lf", ":ALEFix") +vim.keymap.set("n", "ld", ":ALEDetail") diff --git a/lua/lspconfiguration.lua b/lua/lspconfiguration.lua new file mode 100644 index 0000000..9592502 --- /dev/null +++ b/lua/lspconfiguration.lua @@ -0,0 +1,25 @@ +-- Mason setup +require("mason").setup(require("mason").setup({ + ui = { + icons = { + package_installed = "✓", + package_pending = "󰔟", + package_uninstalled = "✗", + }, + }, +})) + +require("mason-lspconfig").setup({ + -- ensure_installed = { "clangd", "cmake", "jdtls", "texlab", "pylsp" }, + ensure_installed = { "clangd" }, +}) + +require("mason-lspconfig").setup_handlers({ + function(clangd) + require("lspconfig")[clangd].setup({}) + end, +}) + +require("lspconfig").verible.setup({ + cmd = { "verible-verilog-ls", "--rules_config_search" }, +}) diff --git a/lua/navigation.lua b/lua/navigation.lua new file mode 100644 index 0000000..f82664a --- /dev/null +++ b/lua/navigation.lua @@ -0,0 +1,24 @@ +-- Bufstop +vim.keymap.set("n", "", ":bdelete") +vim.keymap.set("n", "", ":BufstopFast") + +-- NERDTree Config +vim.g.NERDTreeShowHidden = 1 +vim.keymap.set("n", "", ":NERDTreeToggle") + +-- Telescope snippet +local builtin = require("telescope.builtin") +vim.keymap.set("n", "ff", builtin.find_files, {}) +vim.keymap.set("n", "fg", builtin.live_grep, {}) +vim.keymap.set("n", "", builtin.current_buffer_fuzzy_find, {}) +vim.keymap.set("n", "fh", builtin.help_tags, {}) +vim.keymap.set("n", "fc", builtin.commands, {}) + +-- Telescope + Ultisnips +require("telescope").load_extension("ultisnips") +vim.keymap.set("n", "fs", require("telescope").extensions.ultisnips.ultisnips, {}) + +-- Tagbar +vim.keymap.set("n", "", ":TagbarToggle") -- permanent window +vim.keymap.set("n", "", ":TagbarOpenAutoClose") -- select, jump, close +vim.g.tagbar_autoclose = 0 -- do not autoclose after selection diff --git a/lua/plugconfig.lua b/lua/plugconfig.lua index fcfc6b8..3a5d51f 100644 --- a/lua/plugconfig.lua +++ b/lua/plugconfig.lua @@ -1,3 +1,22 @@ +-- Formatter configuration +require("confformat") + +-- Code completion +require("code-completion") + +-- Snippet configuration (Ultisnips) +require("snippetconfiguration") + +-- ALE configuration +require("linterconfiguration") + +-- Navigation and jumping configuration +require("navigation") + +-- Mason and builtin lsp configuration +require("lspconfiguration") + +-- Misc configuration if vim == nil then vim = {} end @@ -10,118 +29,16 @@ end vim.keymap.set("n", "", ":lua Update_Sys()") --- Bufstop -vim.keymap.set("n", "", ":bdelete") -vim.keymap.set("n", "", ":BufstopFast") - --- UltiSnips Configuration -vim.g.UltiSnipsExpandTrigger = "" -vim.g.UltiSnipsJumpForwardTrigger = "" -vim.g.UltiSnipsJumpBackwardTrigger = "" -vim.g.UltiSnipsEditSplit = "vertical" -vim.g.UltiSnipsSnippetDirectories = { "~/.config/nvim/UltiSnips" } - --- NERDTree Config -vim.g.NERDTreeShowHidden = 1 -vim.keymap.set("n", "", ":NERDTreeToggle") - -- Lexima vim.g.lexima_enable_basic_rules = 1 vim.g.lexima_enable_newline_rules = 1 --- Telescope snippet -local builtin = require("telescope.builtin") -vim.keymap.set("n", "ff", builtin.find_files, {}) -vim.keymap.set("n", "fg", builtin.live_grep, {}) -vim.keymap.set("n", "", builtin.current_buffer_fuzzy_find, {}) -vim.keymap.set("n", "fh", builtin.help_tags, {}) -vim.keymap.set("n", "fc", builtin.commands, {}) - --- Telescope + Ultisnips -require("telescope").load_extension("ultisnips") -vim.keymap.set("n", "fs", require("telescope").extensions.ultisnips.ultisnips, {}) - -- Git-Blame configuration vim.g.gitblame_message_template = " => " vim.g.gitblame_date_format = "%r" --- Code completion -require("code-completion") - --- Mason setup -require("mason").setup(require("mason").setup({ - ui = { - icons = { - package_installed = "✓", - package_pending = "󰔟", - package_uninstalled = "✗", - }, - }, -})) - -require("mason-lspconfig").setup({ - -- ensure_installed = { "clangd", "cmake", "jdtls", "texlab", "pylsp" }, - ensure_installed = { "clangd" }, -}) - -require("mason-lspconfig").setup_handlers({ - function(clangd) - require("lspconfig")[clangd].setup({}) - end, -}) - -require("lspconfig").verible.setup({ - cmd = { "verible-verilog-ls", "--rules_config_search" }, -}) - -- Floating terminal vim.keymap.set("n", "", ":FloatermNew --height=0.9 --width=0.9 --wintype=float --name=terminal ") -- Set default colorscheme vim.cmd("colo tokyonight-night") - --- Formatter configuration -vim.cmd([[ - augroup FormatAutogroup - autocmd! - autocmd BufWritePost * FormatWrite - augroup END - - autocmd BufWritePost *.v lua vim.lsp.buf.format({ async = false }) -]]) - --- Ale configuration -vim.g.ale_linters_explicit = 0 -local linters = { - python = { "pylint" }, - vim = { "vint" }, - cpp = { "clang" }, - c = { "clang" }, - markdown = { "languagetool" }, - latex = { "proselint" }, - tex = { "proselint" }, - plaintex = { "proselint" }, - ada = { "gnat", "gcc", "cspell" }, -} - -vim.g.ale_linters = linters -vim.g.ale_fix_on_save = 1 --- vim.g.ale_ada_gpr_project_file = "default.gpr" -vim.g.ale_fixers = { - ada = { "gnatpp" }, - asm = { "gcc" }, - bash = { "bashate" }, - c = { "astyle" }, - latex = { "texlab", "textlint" }, - lua = { "stylua" }, - markdown = { "prettier", "pandoc" }, - python = { "yapf" }, -} - -vim.keymap.set("n", "lf", ":ALEFix") -vim.keymap.set("n", "ld", ":ALEDetail") - --- Tagbar -vim.keymap.set("n", "", ":TagbarToggle") -- permanent window -vim.keymap.set("n", "", ":TagbarOpenAutoClose") -- select, jump, close -vim.g.tagbar_autoclose = 0 -- do not autoclose after selection diff --git a/lua/snippetconfiguration.lua b/lua/snippetconfiguration.lua new file mode 100644 index 0000000..ec2597f --- /dev/null +++ b/lua/snippetconfiguration.lua @@ -0,0 +1,5 @@ +vim.g.UltiSnipsExpandTrigger = "" +vim.g.UltiSnipsJumpForwardTrigger = "" +vim.g.UltiSnipsJumpBackwardTrigger = "" +vim.g.UltiSnipsEditSplit = "vertical" +vim.g.UltiSnipsSnippetDirectories = { "~/.config/nvim/UltiSnips" }