diff options
-rw-r--r-- | nvim/.config/nvim/lua/tobyvin/keymaps.lua | 9 | ||||
-rw-r--r-- | nvim/.config/nvim/lua/tobyvin/lsp/formatting.lua | 4 | ||||
-rw-r--r-- | nvim/.config/nvim/lua/tobyvin/lsp/highlighting.lua | 6 | ||||
-rw-r--r-- | nvim/.config/nvim/lua/tobyvin/lsp/init.lua | 4 | ||||
-rw-r--r-- | nvim/.config/nvim/lua/tobyvin/plugins.lua | 59 | ||||
-rw-r--r-- | nvim/.config/nvim/lua/tobyvin/plugins/formatter.lua | 37 | ||||
-rw-r--r-- | nvim/.config/nvim/lua/tobyvin/plugins/lint.lua | 22 | ||||
-rw-r--r-- | nvim/.config/nvim/lua/tobyvin/plugins/lspconfig.lua | 3 | ||||
-rw-r--r-- | nvim/.config/nvim/lua/tobyvin/plugins/mason-lspconfig.lua | 13 | ||||
-rw-r--r-- | nvim/.config/nvim/lua/tobyvin/plugins/mason.lua | 24 | ||||
-rw-r--r-- | nvim/.config/nvim/lua/tobyvin/plugins/renamer.lua | 46 |
11 files changed, 152 insertions, 75 deletions
diff --git a/nvim/.config/nvim/lua/tobyvin/keymaps.lua b/nvim/.config/nvim/lua/tobyvin/keymaps.lua index 56cdfc6..3f2f95b 100644 --- a/nvim/.config/nvim/lua/tobyvin/keymaps.lua +++ b/nvim/.config/nvim/lua/tobyvin/keymaps.lua @@ -5,7 +5,12 @@ M.write = function() vim.cmd("write") end +M.training_wheels = function() + vim.notify("You did the thing. Stop doing the thing. Use <C-[>", "warn", { title = "STOP DOING THAT" }) +end + M.setup = function() + vim.keymap.set("i", "<C-c>", M.training_wheels, { desc = "Helper to quit using <C-c>" }) vim.keymap.set("n", "<C-u>", "<C-u>zz", { desc = "Up half page and center" }) vim.keymap.set("n", "<C-d>", "<C-d>zz", { desc = "Down half page and center" }) vim.keymap.set("n", "<leader>q", utils.quit, { desc = "Quit" }) @@ -15,8 +20,8 @@ M.setup = function() vim.keymap.set("n", "<leader>H", utils.docs, { desc = "Docs" }) vim.keymap.set("n", "<leader>w", M.write, { desc = "Write" }) - vim.keymap.set("v", "<a-k>", ":m '<-2<CR>gv=gv", { desc = "Move selection up" }) - vim.keymap.set("v", "<a-j>", ":m '>+1<CR>gv=gv", { desc = "Move selection down" }) + vim.keymap.set("v", "<a-k>", ":m '<-2<CR>gv=gv", { desc = "Move selection up" }) + vim.keymap.set("v", "<a-j>", ":m '>+1<CR>gv=gv", { desc = "Move selection down" }) local nmap_run = utils.create_map_group("n", "<leader>r", { desc = "Run" }) diff --git a/nvim/.config/nvim/lua/tobyvin/lsp/formatting.lua b/nvim/.config/nvim/lua/tobyvin/lsp/formatting.lua index 47d2328..5486640 100644 --- a/nvim/.config/nvim/lua/tobyvin/lsp/formatting.lua +++ b/nvim/.config/nvim/lua/tobyvin/lsp/formatting.lua @@ -1,6 +1,10 @@ local M = {} M.on_attach = function(client, bufnr) + if client.name == "sumneko_lua" then + return + end + if client.server_capabilities.documentFormattingProvider then vim.api.nvim_buf_set_option(bufnr, "formatexpr", "v:lua.vim.lsp.formatexpr()") vim.api.nvim_buf_create_user_command(bufnr, "Format", vim.lsp.buf.format, { nargs = "*" }) diff --git a/nvim/.config/nvim/lua/tobyvin/lsp/highlighting.lua b/nvim/.config/nvim/lua/tobyvin/lsp/highlighting.lua index 055e735..f4ecf59 100644 --- a/nvim/.config/nvim/lua/tobyvin/lsp/highlighting.lua +++ b/nvim/.config/nvim/lua/tobyvin/lsp/highlighting.lua @@ -1,10 +1,8 @@ -local M = { - augroup_highlight = vim.api.nvim_create_augroup("Highlight", { clear = true }), -} +local M = {} M.on_attach = function(client, bufnr) if client.server_capabilities.documentHighlightProvider then - vim.api.nvim_clear_autocmds({ group = M.augroup_highlight, buffer = bufnr }) + M.augroup_highlight = vim.api.nvim_create_augroup("ReferenceHighlight", { clear = true }) vim.api.nvim_create_autocmd("CursorHold", { group = M.augroup_highlight, diff --git a/nvim/.config/nvim/lua/tobyvin/lsp/init.lua b/nvim/.config/nvim/lua/tobyvin/lsp/init.lua index 0b2623a..a07a6c1 100644 --- a/nvim/.config/nvim/lua/tobyvin/lsp/init.lua +++ b/nvim/.config/nvim/lua/tobyvin/lsp/init.lua @@ -2,8 +2,8 @@ local utils = require("tobyvin.utils") local M = {} M.on_attach = function(client, bufnr) - vim.api.nvim_buf_set_option(bufnr, "omnifunc", "v:lua.vim.lsp.omnifunc") - vim.api.nvim_buf_set_option(bufnr, "tagfunc", "v:lua.vim.lsp.tagfunc") + -- vim.api.nvim_buf_set_option(bufnr, "omnifunc", "v:lua.vim.lsp.omnifunc") + -- vim.api.nvim_buf_set_option(bufnr, "tagfunc", "v:lua.vim.lsp.tagfunc") vim.keymap.set("n", "gd", vim.lsp.buf.definition, { desc = "Definition", buffer = bufnr }) vim.keymap.set("n", "gD", vim.lsp.buf.declaration, { desc = "Declaration", buffer = bufnr }) diff --git a/nvim/.config/nvim/lua/tobyvin/plugins.lua b/nvim/.config/nvim/lua/tobyvin/plugins.lua index e30da5c..e79164c 100644 --- a/nvim/.config/nvim/lua/tobyvin/plugins.lua +++ b/nvim/.config/nvim/lua/tobyvin/plugins.lua @@ -73,30 +73,54 @@ M.plugins = function(use) }) use({ - "neovim/nvim-lspconfig", + "mfussenegger/nvim-lint", + config = function() + require("tobyvin.plugins.lint").setup() + end, + }) + + use({ + "mhartington/formatter.nvim", + config = function() + require("tobyvin.plugins.formatter").setup() + end, + }) + + use({ + "williamboman/mason.nvim", + requires = {}, + config = function() + require("tobyvin.plugins.mason").setup() + end, + }) + + use({ + "williamboman/mason-lspconfig.nvim", + after = "mason.nvim", requires = { - "williamboman/nvim-lsp-installer", - "ray-x/lsp_signature.nvim", - "SmiteshP/nvim-navic", - "barreiroleo/ltex-extra.nvim", + "williamboman/mason.nvim", }, config = function() - require("tobyvin.plugins.lspconfig").setup() + require("tobyvin.plugins.mason-lspconfig").setup() end, }) use({ - "jose-elias-alvarez/null-ls.nvim", + "neovim/nvim-lspconfig", + after = "mason-lspconfig.nvim", requires = { - "nvim-lua/plenary.nvim", + "ray-x/lsp_signature.nvim", + "SmiteshP/nvim-navic", + "barreiroleo/ltex-extra.nvim", }, config = function() - require("tobyvin.plugins.null-ls").setup() + require("tobyvin.plugins.lspconfig").setup() end, }) use({ "folke/lua-dev.nvim", + after = "nvim-lspconfig", requires = { "neovim/nvim-lspconfig", }, @@ -117,17 +141,10 @@ M.plugins = function(use) }) use({ - "mickael-menu/zk-nvim", - config = function() - require("tobyvin.plugins.zk").setup() - end, - }) - - use({ "brymer-meneses/grammar-guard.nvim", + after = "nvim-lspconfig", requires = { "neovim/nvim-lspconfig", - "williamboman/nvim-lsp-installer", }, config = function() require("grammar-guard").init() @@ -135,6 +152,13 @@ M.plugins = function(use) }) use({ + "mickael-menu/zk-nvim", + config = function() + require("tobyvin.plugins.zk").setup() + end, + }) + + use({ "hrsh7th/nvim-cmp", requires = { "hrsh7th/cmp-nvim-lsp", @@ -183,7 +207,6 @@ M.plugins = function(use) event = { "BufRead Cargo.toml" }, requires = { "nvim-lua/plenary.nvim", - "jose-elias-alvarez/null-ls.nvim", }, config = function() require("tobyvin.plugins.crates").setup() diff --git a/nvim/.config/nvim/lua/tobyvin/plugins/formatter.lua b/nvim/.config/nvim/lua/tobyvin/plugins/formatter.lua new file mode 100644 index 0000000..3a993cc --- /dev/null +++ b/nvim/.config/nvim/lua/tobyvin/plugins/formatter.lua @@ -0,0 +1,37 @@ +local M = {} + +M.setup = function() + local status_ok, formatter = pcall(require, "formatter") + if not status_ok then + vim.notify("Failed to load module 'formatter'", "error") + return + end + + formatter.setup({ + filetype = { + lua = { + require("formatter.filetypes.lua").stylua, + }, + sh = { + require("formatter.filetypes.sh").shfmt, + }, + javascript = { + require("formatter.filetypes.javascript").prettier, + }, + markdown = { + require("formatter.filetypes.markdown").prettier, + }, + python = { + require("formatter.filetypes.python").black, + }, + ["*"] = { + require("formatter.filetypes.any").remove_trailing_whitespace, + }, + }, + }) + + vim.keymap.set("n", "<leader>lf", ":Format<CR>", { desc = "Format" }) + vim.keymap.set("n", "<leader>lF", ":FormatWrite<CR>", { desc = "Format Write" }) +end + +return M diff --git a/nvim/.config/nvim/lua/tobyvin/plugins/lint.lua b/nvim/.config/nvim/lua/tobyvin/plugins/lint.lua new file mode 100644 index 0000000..3689c5f --- /dev/null +++ b/nvim/.config/nvim/lua/tobyvin/plugins/lint.lua @@ -0,0 +1,22 @@ +local M = {} + +M.setup = function() + local status_ok, lint = pcall(require, "lint") + if not status_ok then + vim.notify("Failed to load module 'lint'", "error") + return + end + + lint.linters_by_ft = { + markdown = { "vale" }, + python = { "pylint" }, + } + + vim.api.nvim_create_autocmd({ "BufWritePost" }, { + callback = function() + lint.try_lint() + end, + }) +end + +return M diff --git a/nvim/.config/nvim/lua/tobyvin/plugins/lspconfig.lua b/nvim/.config/nvim/lua/tobyvin/plugins/lspconfig.lua index 13c7be5..1884627 100644 --- a/nvim/.config/nvim/lua/tobyvin/plugins/lspconfig.lua +++ b/nvim/.config/nvim/lua/tobyvin/plugins/lspconfig.lua @@ -3,8 +3,6 @@ local utils = require("tobyvin.utils") local M = {} M.setup = function() - require("nvim-lsp-installer").setup({}) - local status_ok, lspconfig = pcall(require, "lspconfig") if not status_ok then vim.notify("Failed to load module 'lspconfig'", "error") @@ -99,7 +97,6 @@ M.setup = function() local nmap = utils.create_map_group("n", "<leader>l", { desc = "LSP" }) nmap("i", "<cmd>LspInfo<cr>", { desc = "LSP info" }) - nmap("I", "<cmd>LspInstallInfo<cr>", { desc = "LSP installer info" }) end return M diff --git a/nvim/.config/nvim/lua/tobyvin/plugins/mason-lspconfig.lua b/nvim/.config/nvim/lua/tobyvin/plugins/mason-lspconfig.lua new file mode 100644 index 0000000..3ceb6df --- /dev/null +++ b/nvim/.config/nvim/lua/tobyvin/plugins/mason-lspconfig.lua @@ -0,0 +1,13 @@ +local M = {} + +M.setup = function() + local status_ok, mason_lspconfig = pcall(require, "mason-lspconfig") + if not status_ok then + vim.notify("Failed to load module 'mason-lspconfig'", "error") + return + end + + mason_lspconfig.setup() +end + +return M diff --git a/nvim/.config/nvim/lua/tobyvin/plugins/mason.lua b/nvim/.config/nvim/lua/tobyvin/plugins/mason.lua new file mode 100644 index 0000000..f622855 --- /dev/null +++ b/nvim/.config/nvim/lua/tobyvin/plugins/mason.lua @@ -0,0 +1,24 @@ +local M = {} + +M.setup = function() + local status_ok, mason = pcall(require, "mason") + if not status_ok then + vim.notify("Failed to load module 'mason'", "error") + return + end + + mason.setup({ + ui = { + icons = { + package_installed = "✓", + package_pending = "➜", + package_uninstalled = "✗", + }, + }, + }) + + vim.keymap.set("n", "<leader>i", ":Mason<CR>", { desc = "Mason" }) + vim.keymap.set("n", "<leader>I", ":MasonLog<CR>", { desc = "Mason Log" }) +end + +return M diff --git a/nvim/.config/nvim/lua/tobyvin/plugins/renamer.lua b/nvim/.config/nvim/lua/tobyvin/plugins/renamer.lua deleted file mode 100644 index 89d67d7..0000000 --- a/nvim/.config/nvim/lua/tobyvin/plugins/renamer.lua +++ /dev/null @@ -1,46 +0,0 @@ -local status_ok, renamer = pcall(require, "renamer") -if not status_ok then - return -end - -vim.api.nvim_set_keymap( - "i", - "<F2>", - '<cmd>lua require("renamer").rename({empty = true})<cr>', - { noremap = true, silent = true } -) -vim.api.nvim_set_keymap( - "n", - "<F2>", - '<cmd>lua require("renamer").rename({empty = true})<cr>', - { noremap = true, silent = true } -) -local mappings_utils = require("renamer.mappings.utils") -renamer.setup({ - -- The popup title, shown if `border` is true - title = "Rename", - -- The padding around the popup content - padding = { - top = 0, - left = 0, - bottom = 0, - right = 0, - }, - -- Whether or not to shown a border around the popup - border = true, - -- The characters which make up the border - border_chars = { "─", "│", "─", "│", "╭", "╮", "╯", "╰" }, - -- Whether or not to highlight the current word references through LSP - show_refs = true, - -- The keymaps available while in the `renamer` buffer. The example below - -- overrides the default values, but you can add others as well. - mappings = { - ["<c-i>"] = mappings_utils.set_cursor_to_start, - ["<c-a>"] = mappings_utils.set_cursor_to_end, - ["<c-e>"] = mappings_utils.set_cursor_to_word_end, - ["<c-b>"] = mappings_utils.set_cursor_to_word_start, - ["<c-c>"] = mappings_utils.clear_line, - ["<c-u>"] = mappings_utils.undo, - ["<c-r>"] = mappings_utils.redo, - }, -}) |