diff options
author | Toby Vincent <tobyv13@gmail.com> | 2022-12-22 18:08:19 -0600 |
---|---|---|
committer | Toby Vincent <tobyv13@gmail.com> | 2022-12-22 18:09:23 -0600 |
commit | b99851f43c9abb7395a25590fe003de8be999d2f (patch) | |
tree | dd752a3a2e9abe102d7f109238099abdcc2b6473 /nvim/.config/nvim | |
parent | cf52b8c2dd6a2f4935e105c4b40dfcf5df0c77ac (diff) |
feat(nvim,lazy,wip): start converting plugins to lazyload
Diffstat (limited to 'nvim/.config/nvim')
23 files changed, 288 insertions, 241 deletions
diff --git a/nvim/.config/nvim/lazy-lock.json b/nvim/.config/nvim/lazy-lock.json index b1afe13..7248728 100644 --- a/nvim/.config/nvim/lazy-lock.json +++ b/nvim/.config/nvim/lazy-lock.json @@ -23,21 +23,21 @@ "dressing.nvim": { "branch": "master", "commit": "4436d6f41e2f6b8ada57588acd1a9f8b3d21453c" }, "fidget.nvim": { "branch": "main", "commit": "44585a0c0085765195e6961c15529ba6c5a2a13b" }, "friendly-snippets": { "branch": "main", "commit": "1a6a02350568d6830bcfa167c72f9b6e75e454ae" }, - "fzf": { "branch": "master", "commit": "fd1f7665a77f3bd062586f0f3b54d4ff9863dd4b" }, + "fzf": { "branch": "master", "commit": "73162a4bc3403e3532afa8a95008a3b4a00d554a" }, "git-conflict.nvim": { "branch": "main", "commit": "77faa75c09a6af88e7b54d8d456327e06611f7ea" }, "gitsigns.nvim": { "branch": "main", "commit": "2ab3bdf0a40bab53033048c6be75bda86316b55d" }, "gruvbox.nvim": { "branch": "main", "commit": "c64ec557672c9c8ecc71a438533525482021377f" }, "harpoon": { "branch": "master", "commit": "21d0d1bfa3000e4384740bfaefa0ebc51c773786" }, "indent-blankline.nvim": { "branch": "master", "commit": "c4c203c3e8a595bc333abaf168fcb10c13ed5fb7" }, - "lazy.nvim": { "branch": "main", "commit": "72b38999bc547a96c769d1de964a846570cfe5d1" }, + "lazy.nvim": { "branch": "main", "commit": "e5dcc871491eadc5ed98e633afc519670e71c4a1" }, "lsp_signature.nvim": { "branch": "master", "commit": "600b2729ad8649d0745c76c55f5fd7586713d6dd" }, "lspkind-nvim": { "branch": "master", "commit": "c68b3a003483cf382428a43035079f78474cd11e" }, - "lualine.nvim": { "branch": "master", "commit": "bfa0d99ba6f98d077dd91779841f1c88b7b5c165" }, + "lualine.nvim": { "branch": "master", "commit": "fffbcb829288c3ca366f17cdb8d46aefb5c1d6f3" }, "mason-lspconfig.nvim": { "branch": "main", "commit": "5bea0e851b8f48479d2cb927cd26733b4058b2b3" }, - "mason-null-ls.nvim": { "branch": "main", "commit": "0fcc40394b8d0f525a8be587268cbfac3e70a5bc" }, + "mason-null-ls.nvim": { "branch": "main", "commit": "4480bc59b72866376fc2f83048a932fa598d89a8" }, "mason-nvim-dap.nvim": { "branch": "main", "commit": "d6cb770928b5cb9a6e3880d6bbb58858c1deeb18" }, "mason-update-all": { "branch": "main", "commit": "7cd70d89588ebcdec3d05a1ce820a9c8c5b667b6" }, - "mason.nvim": { "branch": "main", "commit": "ba8f01835cdcf512d5ab1abb1dcedfaf7c07b99e" }, + "mason.nvim": { "branch": "main", "commit": "e6f6f901959d39d112b096d26b909c65723981d3" }, "neodev.nvim": { "branch": "main", "commit": "c5f0a814abf89b5b1e3cfed95322813939bdc0c5" }, "neogit": { "branch": "master", "commit": "0d6002c6af432343937283fb70791fc76fa7227c" }, "neovim-session-manager": { "branch": "master", "commit": "f8c85da390c5d1ad3bfd229ac2ed805c5742263d" }, @@ -50,17 +50,18 @@ "nvim-dap-go": { "branch": "main", "commit": "bd9823da22165ea4aa7ec232e8c3a9b3158e017a" }, "nvim-dap-python": { "branch": "master", "commit": "d4400d075c21ed8fb8e8ac6a5ff56f58f6e93531" }, "nvim-dap-virtual-text": { "branch": "master", "commit": "2971ce3e89b1711cc26e27f73d3f854b559a77d4" }, - "nvim-lspconfig": { "branch": "master", "commit": "5292d60976b3084a987bf5634150f6201830ac18" }, + "nvim-lspconfig": { "branch": "master", "commit": "25f0c65bd8fddadbafd0048a68560bf160ceb98c" }, "nvim-navic": { "branch": "master", "commit": "7a2b823152fe4de65ee7925b0e32d26ed73bc57c" }, "nvim-notify": { "branch": "master", "commit": "b005821516f1f37801a73067afd1cef2dbc4dfe8" }, - "nvim-treesitter": { "branch": "master", "commit": "9efc2dffc3367e0c724b628675ca7cac13357dc6" }, + "nvim-treesitter": { "branch": "master", "commit": "895d4a1202f36df561ba032c93b9deb72e1edee8" }, "nvim-treesitter-context": { "branch": "master", "commit": "d28654b012d4c56beafec630ef7143275dff76f8" }, - "nvim-treesitter-textobjects": { "branch": "master", "commit": "e2ee8fd7259389deaa898d1216fdc6846a26c627" }, + "nvim-treesitter-textobjects": { "branch": "master", "commit": "a2e436d88d1880da6678049316e4c45135901866" }, "nvim-ts-context-commentstring": { "branch": "main", "commit": "32d9627123321db65a4f158b72b757bcaef1a3f4" }, "nvim-ts-hint-textobject": { "branch": "master", "commit": "ad03c877903835a2ca9635accab47bff8be21b18" }, "nvim-web-devicons": { "branch": "master", "commit": "05e1072f63f6c194ac6e867b567e6b437d3d4622" }, "playground": { "branch": "master", "commit": "3421bbbfec25a7c54ee041ffb9cb226b69b2b995" }, "plenary.nvim": { "branch": "master", "commit": "4b7e52044bbb84242158d977a50c4cbcd85070c7" }, + "refactoring.nvim": { "branch": "master", "commit": "7be4a45187cce4fa03e161fb70429d771a241617" }, "ripgrep": { "branch": "master", "commit": "61101289fabc032fd8e90009c41d0b78e6dfc9a2" }, "rust-tools.nvim": { "branch": "master", "commit": "99fd1238c6068d0637df30b6cee9a264334015e9" }, "scope.nvim": { "branch": "main", "commit": "2db6d31de8e3a98d2b41c0f0d1f5dc299ee76875" }, diff --git a/nvim/.config/nvim/lua/tobyvin.lua b/nvim/.config/nvim/lua/tobyvin.lua index 78f0fa7..6a3e2e0 100644 --- a/nvim/.config/nvim/lua/tobyvin.lua +++ b/nvim/.config/nvim/lua/tobyvin.lua @@ -1,8 +1,14 @@ require("tobyvin.options") -require("tobyvin.autocmds") - require("tobyvin.lazy") -require("tobyvin.keymaps") -require("tobyvin.diagnostic") -require("tobyvin.lsp") +vim.cmd([[colorscheme gruvbox]]) + +vim.api.nvim_create_autocmd("User", { + pattern = "VeryLazy", + callback = function() + require("tobyvin.autocmds") + require("tobyvin.keymaps") + require("tobyvin.diagnostic") + require("tobyvin.lsp") + end, +}) diff --git a/nvim/.config/nvim/lua/tobyvin/diagnostic.lua b/nvim/.config/nvim/lua/tobyvin/diagnostic.lua index c3ffa85..1d22f5e 100644 --- a/nvim/.config/nvim/lua/tobyvin/diagnostic.lua +++ b/nvim/.config/nvim/lua/tobyvin/diagnostic.lua @@ -19,15 +19,13 @@ vim.fn.sign_define("DiagnosticSignWarn", utils.diagnostic.signs.warn) vim.fn.sign_define("DiagnosticSignInfo", utils.diagnostic.signs.info) vim.fn.sign_define("DiagnosticSignHint", utils.diagnostic.signs.hint) -vim.api.nvim_create_autocmd("CursorHold", { - callback = function() - vim.diagnostic.open_float(nil, { - focus = false, - }) - end, -}) - vim.keymap.set("n", "]d", utils.diagnostic.goto_next, { desc = "next diagnostic" }) vim.keymap.set("n", "[d", utils.diagnostic.goto_prev, { desc = "prev diagnostic" }) vim.keymap.set("n", "gl", vim.diagnostic.open_float, { desc = "open diagnostic float" }) vim.keymap.set("n", "gL", vim.diagnostic.setqflist, { desc = "qf diagnostic" }) + +vim.api.nvim_create_autocmd("CursorHold", { + callback = function() + vim.diagnostic.open_float() + end, +}) diff --git a/nvim/.config/nvim/lua/tobyvin/lazy.lua b/nvim/.config/nvim/lua/tobyvin/lazy.lua index 33eab4b..89a8c24 100644 --- a/nvim/.config/nvim/lua/tobyvin/lazy.lua +++ b/nvim/.config/nvim/lua/tobyvin/lazy.lua @@ -12,9 +12,24 @@ end vim.opt.runtimepath:prepend(lazypath) require("lazy").setup("tobyvin.plugins", { - dev = { path = "~/src" }, - install = { colorscheme = { "gruvbox" } }, - checker = { enabled = true }, + defaults = { + lazy = false, + }, + dev = { + path = "~/src", + }, + install = { + colorscheme = { + "gruvbox", + "tokyonight", + }, + }, + checker = { + enabled = true, + }, + ui = { + border = "single", + }, }) vim.keymap.set("n", "<leader>p", "<cmd>:Lazy<cr>") diff --git a/nvim/.config/nvim/lua/tobyvin/lsp.lua b/nvim/.config/nvim/lua/tobyvin/lsp.lua index 733c589..d5b398e 100644 --- a/nvim/.config/nvim/lua/tobyvin/lsp.lua +++ b/nvim/.config/nvim/lua/tobyvin/lsp.lua @@ -1,3 +1,5 @@ +local M = {} + vim.api.nvim_create_autocmd("LspAttach", { group = vim.api.nvim_create_augroup("tobyvin_lsp", { clear = true }), desc = "lsp", @@ -11,7 +13,16 @@ require("tobyvin.lsp.handlers") require("tobyvin.lsp.highlighting") require("tobyvin.lsp.formatting") -return { - default_config = {}, - configs = require("tobyvin.lsp.configs"), -} +setmetatable(M, { + __index = function(t, k) + local ok, val = pcall(require, string.format("tobyvin.lsp.%s", k)) + + if ok then + rawset(t, k, val) + end + + return val + end, +}) + +return M diff --git a/nvim/.config/nvim/lua/tobyvin/plugins.lua b/nvim/.config/nvim/lua/tobyvin/plugins.lua index 687b31b..815ba25 100644 --- a/nvim/.config/nvim/lua/tobyvin/plugins.lua +++ b/nvim/.config/nvim/lua/tobyvin/plugins.lua @@ -1,75 +1,43 @@ return { - "lewis6991/impatient.nvim", "nvim-lua/plenary.nvim", "ThePrimeagen/harpoon", "norcalli/nvim-colorizer.lua", "b0o/SchemaStore.nvim", { "nacro90/numb.nvim", - config = function() - require("numb").setup() - end, + config = true, }, { "tiagovla/scope.nvim", - config = function() - require("scope").setup() - end, + config = true, }, { "lukas-reineke/virt-column.nvim", - config = function() - require("virt-column").setup() - end, + config = true, }, { "petertriho/cmp-git", dependencies = { "nvim-lua/plenary.nvim" }, - config = function() - require("cmp_git").setup() - end, + config = true, }, { "David-Kunz/cmp-npm", event = "BufRead package.json", dependencies = { "nvim-lua/plenary.nvim" }, - config = function() - require("cmp-npm").setup() - end, - }, - { - "onsails/lspkind-nvim", - config = function() - require("lspkind").init() - end, + config = true, }, { "nvim-treesitter/nvim-treesitter-context", event = "BufReadPre", - config = function() - require("treesitter-context").setup() - end, - }, - { - "theHamsta/nvim-dap-virtual-text", - dependencies = { - "mfussenegger/nvim-dap", - "nvim-treesitter/nvim-treesitter", - }, - config = function() - require("nvim-dap-virtual-text").setup({}) - end, + config = true, }, { "ur4ltz/surround.nvim", - config = function() - require("surround").setup({}) - end, + config = true, }, { "numToStr/Comment.nvim", - config = function() - require("Comment").setup() - end, + event = "VeryLazy", + config = true, }, } diff --git a/nvim/.config/nvim/lua/tobyvin/plugins/alpha.lua b/nvim/.config/nvim/lua/tobyvin/plugins/alpha.lua index 02adc45..4385fb0 100644 --- a/nvim/.config/nvim/lua/tobyvin/plugins/alpha.lua +++ b/nvim/.config/nvim/lua/tobyvin/plugins/alpha.lua @@ -1,8 +1,23 @@ local M = { "goolord/alpha-nvim", + lazy = false, dependencies = { "kyazdani42/nvim-web-devicons" }, } +function M.init() + vim.api.nvim_create_autocmd("User", { + group = vim.api.nvim_create_augroup("alpha_user", { clear = true }), + pattern = "BDeleteLast", + callback = function(args) + local bufnr = vim.F.if_nil(args.data.buf, args.buf) + if vim.api.nvim_buf_get_option(bufnr, "filetype") ~= "alpha" then + require("alpha").start(false) + end + end, + desc = "Run Alpha when last buffer closed", + }) +end + function M.config() local alpha = require("alpha") local Icons = require("nvim-web-devicons") @@ -145,18 +160,6 @@ function M.config() } alpha.setup(config) - - vim.api.nvim_create_autocmd("User", { - group = vim.api.nvim_create_augroup("alpha_user", { clear = true }), - pattern = "BDeleteLast", - callback = function(args) - local bufnr = vim.F.if_nil(args.data.buf, args.buf) - if vim.api.nvim_buf_get_option(bufnr, "filetype") ~= "alpha" then - alpha.start(false) - end - end, - desc = "Run Alpha when last buffer closed", - }) end return M diff --git a/nvim/.config/nvim/lua/tobyvin/plugins/cmp.lua b/nvim/.config/nvim/lua/tobyvin/plugins/cmp.lua index 6d1acad..1138013 100644 --- a/nvim/.config/nvim/lua/tobyvin/plugins/cmp.lua +++ b/nvim/.config/nvim/lua/tobyvin/plugins/cmp.lua @@ -1,5 +1,6 @@ local M = { "hrsh7th/nvim-cmp", + event = { "InsertEnter", "CmdlineEnter" }, dependencies = { "hrsh7th/cmp-buffer", "hrsh7th/cmp-path", @@ -23,11 +24,9 @@ local M = { function M.config() local cmp = require("cmp") - local lsp = require("tobyvin.lsp") local default = require("cmp.config.default")() local context = require("cmp.config.context") local cmp_dap = require("cmp_dap") - local cmp_nvim_lsp = require("cmp_nvim_lsp") local in_comment = function() return vim.api.nvim_get_mode().mode ~= "c" @@ -138,10 +137,6 @@ function M.config() { name = "crates" }, }, }) - - lsp.default_config = vim.tbl_extend("force", lsp.default_config, { - capabilities = cmp_nvim_lsp.default_capabilities(), - }) end return M diff --git a/nvim/.config/nvim/lua/tobyvin/plugins/dap.lua b/nvim/.config/nvim/lua/tobyvin/plugins/dap.lua index eb131c2..ad6cd04 100644 --- a/nvim/.config/nvim/lua/tobyvin/plugins/dap.lua +++ b/nvim/.config/nvim/lua/tobyvin/plugins/dap.lua @@ -1,27 +1,85 @@ +local telescope_dap = { + "nvim-telescope/telescope-dap.nvim", + dependencies = { + "nvim-telescope/telescope.nvim", + }, + init = function() + vim.keymap.set("n", "<leader>dC", function() + require("telescope").extensions.dap.commands() + end, { desc = "commands" }) + + vim.keymap.set("n", "<leader>dd", function() + require("telescope").extensions.dap.configurations() + end, { desc = "configurations" }) + + vim.keymap.set("n", "<leader>dl", function() + require("telescope").extensions.dap.list_breakpoints() + end, { desc = "breakpoints" }) + + vim.keymap.set("n", "<leader>df", function() + require("telescope").extensions.dap.frames() + end, { desc = "frames" }) + + vim.keymap.set("n", "<leader>dv", function() + require("telescope").extensions.dap.variables() + end, { desc = "variables" }) + end, +} + local M = { "mfussenegger/nvim-dap", dependencies = { - "mfussenegger/nvim-dap-python", - "leoluz/nvim-dap-go", - "nvim-telescope/telescope.nvim", - "nvim-telescope/telescope-dap.nvim", + telescope_dap, + { + "mfussenegger/nvim-dap-python", + config = "", + }, + { + "leoluz/nvim-dap-go", + config = true, + }, + { + "theHamsta/nvim-dap-virtual-text", + dependencies = { "nvim-treesitter/nvim-treesitter" }, + config = true, + }, }, } -function M.config() - local dap = require("dap") +function M.init() + local dap = setmetatable({}, { + __index = function(_, k) + return function() + require("dap")[k]() + end + end, + }) - local utils = require("tobyvin.utils") + vim.keymap.set("n", "<F5>", dap.continue, { desc = "continue" }) + vim.keymap.set("n", "<F10>", dap.step_over, { desc = "step over" }) + vim.keymap.set("n", "<F11>", dap.step_into, { desc = "step into" }) + vim.keymap.set("n", "<F12>", dap.step_out, { desc = "step out" }) + vim.keymap.set("n", "<leader>dc", dap.continue, { desc = "continue" }) + vim.keymap.set("n", "<leader>da", dap.step_over, { desc = "step over" }) + vim.keymap.set("n", "<leader>di", dap.step_into, { desc = "step into" }) + vim.keymap.set("n", "<leader>do", dap.step_out, { desc = "step out" }) + vim.keymap.set("n", "<leader>dq", dap.terminate, { desc = "terminate" }) + vim.keymap.set("n", "<leader>db", dap.toggle_breakpoint, { desc = "toggle breakpoint" }) - local set_custom_breakpoint = function() - vim.ui.input({ prompt = "Condition: " }, function(condition) - vim.ui.input({ prompt = "Hit condition: " }, function(hit_condition) - vim.ui.input({ prompt = "Log point message: " }, function(log_message) - dap.set_breakpoint(condition, hit_condition, log_message) + vim.keymap.set("n", "<leader>dB", function() + vim.ui.input({ prompt = "Condition: " }, function(cond) + vim.ui.input({ prompt = "Hit condition: " }, function(hit) + vim.ui.input({ prompt = "Log point message: " }, function(msg) + require("dap").set_breakpoint(cond, hit, msg) end) end) end) - end + end, { desc = "custom breakpoint" }) +end + +function M.config() + local dap = require("dap") + local utils = require("tobyvin.utils") dap.defaults.fallback.focus_terminal = true dap.defaults.fallback.terminal_win_cmd = "15split new" @@ -36,58 +94,6 @@ function M.config() end end - require("dap-python").setup() - require("dap-go").setup() - - require("nvim-dap-virtual-text").setup({ - -- only_first_definition = false, - -- all_references = true, - virt_text_pos = "right_align", - }) - - require("telescope").load_extension("dap") - local telescope = require("telescope").extensions.dap - - vim.keymap.set("n", "<leader>db", dap.toggle_breakpoint, { desc = "toggle breakpoint" }) - vim.keymap.set("n", "<leader>dB", set_custom_breakpoint, { desc = "custom breakpoint" }) - vim.keymap.set("n", "<leader>dC", telescope.commands, { desc = "commands" }) - vim.keymap.set("n", "<leader>dd", telescope.configurations, { desc = "configurations" }) - vim.keymap.set("n", "<leader>dl", telescope.list_breakpoints, { desc = "list breakpoints" }) - - vim.api.nvim_create_autocmd("User", { - pattern = "DapAttach", - callback = function() - vim.keymap.set("n", "<F5>", dap.continue, { desc = "continue" }) - vim.keymap.set("n", "<F10>", dap.step_over, { desc = "step over" }) - vim.keymap.set("n", "<F11>", dap.step_into, { desc = "step into" }) - vim.keymap.set("n", "<F12>", dap.step_out, { desc = "step out" }) - vim.keymap.set("n", "<leader>dc", dap.continue, { desc = "continue" }) - vim.keymap.set("n", "<leader>da", dap.step_over, { desc = "step over" }) - vim.keymap.set("n", "<leader>di", dap.step_into, { desc = "step into" }) - vim.keymap.set("n", "<leader>do", dap.step_out, { desc = "step out" }) - vim.keymap.set("n", "<leader>dq", dap.terminate, { desc = "terminate" }) - vim.keymap.set("n", "<leader>dv", telescope.variables, { desc = "variables" }) - vim.keymap.set("n", "<leader>df", telescope.frames, { desc = "frames" }) - end, - }) - - vim.api.nvim_create_autocmd("User", { - pattern = "DapDetach", - callback = function() - vim.keymap.del("n", "<leader>dv") - vim.keymap.del("n", "<leader>df") - vim.keymap.del("n", "<leader>dc") - vim.keymap.del("n", "<leader>da") - vim.keymap.del("n", "<leader>di") - vim.keymap.del("n", "<leader>do") - vim.keymap.del("n", "<leader>dq") - vim.keymap.del("n", "<F5>") - vim.keymap.del("n", "<F10>") - vim.keymap.del("n", "<F11>") - vim.keymap.del("n", "<F12>") - end, - }) - vim.fn.sign_define("DapBreakpoint", utils.debug.signs.breakpoint) vim.fn.sign_define("DapBreakpointCondition", utils.debug.signs.condition) vim.fn.sign_define("DapBreakpointRejected", utils.debug.signs.rejected) diff --git a/nvim/.config/nvim/lua/tobyvin/plugins/dressing.lua b/nvim/.config/nvim/lua/tobyvin/plugins/dressing.lua index d0748c8..bf05a5e 100644 --- a/nvim/.config/nvim/lua/tobyvin/plugins/dressing.lua +++ b/nvim/.config/nvim/lua/tobyvin/plugins/dressing.lua @@ -1,5 +1,6 @@ local M = { "stevearc/dressing.nvim", + lazy = true, dependencies = { "nvim-telescope/telescope.nvim", }, @@ -7,7 +8,6 @@ local M = { function M.config() local dressing = require("dressing") - local themes = require("telescope.themes") local format_item_override = { ["rust-tools/debuggables"] = function(item) @@ -24,7 +24,7 @@ function M.config() local config_overrides = { select = { ["Ring history"] = { - telescope = themes.get_dropdown({ preview = true }), + telescope = require("telescope.themes").get_dropdown({ preview = true }), }, }, input = { diff --git a/nvim/.config/nvim/lua/tobyvin/plugins/gruvbox.lua b/nvim/.config/nvim/lua/tobyvin/plugins/gruvbox.lua index fad7ad4..bef1a33 100644 --- a/nvim/.config/nvim/lua/tobyvin/plugins/gruvbox.lua +++ b/nvim/.config/nvim/lua/tobyvin/plugins/gruvbox.lua @@ -38,8 +38,6 @@ function M.config() markdownError = { link = "Normal" }, }, }) - - vim.cmd([[colorscheme gruvbox]]) end return M diff --git a/nvim/.config/nvim/lua/tobyvin/plugins/indent_blankline.lua b/nvim/.config/nvim/lua/tobyvin/plugins/indent_blankline.lua index fb299b3..afc5178 100644 --- a/nvim/.config/nvim/lua/tobyvin/plugins/indent_blankline.lua +++ b/nvim/.config/nvim/lua/tobyvin/plugins/indent_blankline.lua @@ -1,16 +1,19 @@ local M = { "lukas-reineke/indent-blankline.nvim", + event = "BufReadPre", } -function M.config() - local indent_blankline = require("indent_blankline") - +function M.init() vim.api.nvim_set_hl(0, "IndentBlanklineIndent1", { fg = "#E06C75", nocombine = true }) vim.api.nvim_set_hl(0, "IndentBlanklineIndent2", { fg = "#E5C07B", nocombine = true }) vim.api.nvim_set_hl(0, "IndentBlanklineIndent3", { fg = "#98C379", nocombine = true }) vim.api.nvim_set_hl(0, "IndentBlanklineIndent4", { fg = "#56B6C2", nocombine = true }) vim.api.nvim_set_hl(0, "IndentBlanklineIndent5", { fg = "#61AFEF", nocombine = true }) vim.api.nvim_set_hl(0, "IndentBlanklineIndent6", { fg = "#C678DD", nocombine = true }) +end + +function M.config() + local indent_blankline = require("indent_blankline") indent_blankline.setup({ context_highlight_list = { diff --git a/nvim/.config/nvim/lua/tobyvin/plugins/lspconfig.lua b/nvim/.config/nvim/lua/tobyvin/plugins/lspconfig.lua index 3edd973..8df2f6b 100644 --- a/nvim/.config/nvim/lua/tobyvin/plugins/lspconfig.lua +++ b/nvim/.config/nvim/lua/tobyvin/plugins/lspconfig.lua @@ -12,7 +12,9 @@ function M.config() require("lspconfig.ui.windows").default_options.border = "single" - lspconfig.util.default_config = vim.tbl_extend("force", lspconfig.util.default_config, lsp.default_config) + lspconfig.util.default_config = vim.tbl_extend("force", lspconfig.util.default_config, { + capabilities = require("cmp_nvim_lsp").default_capabilities(), + }) local available = lspconfig.util.available_servers() for name, config in pairs(lsp.configs) do diff --git a/nvim/.config/nvim/lua/tobyvin/plugins/lualine.lua b/nvim/.config/nvim/lua/tobyvin/plugins/lualine.lua index 44adc0a..ef23f03 100644 --- a/nvim/.config/nvim/lua/tobyvin/plugins/lualine.lua +++ b/nvim/.config/nvim/lua/tobyvin/plugins/lualine.lua @@ -1,5 +1,6 @@ local M = { "nvim-lualine/lualine.nvim", + event = "VeryLazy", dependencies = { "kyazdani42/nvim-web-devicons", "SmiteshP/nvim-navic", diff --git a/nvim/.config/nvim/lua/tobyvin/plugins/neodev.lua b/nvim/.config/nvim/lua/tobyvin/plugins/neodev.lua index d70f005..874a5b8 100644 --- a/nvim/.config/nvim/lua/tobyvin/plugins/neodev.lua +++ b/nvim/.config/nvim/lua/tobyvin/plugins/neodev.lua @@ -3,22 +3,14 @@ local M = { } function M.config() - local neodev = require("neodev") - - neodev.setup({ - library = { - enabled = true, - runtime = true, - types = true, - plugins = { "nvim-treesitter", "plenary.nvim", "telescope.nvim" }, + require("neodev").setup({ + experimental = { + pathStrict = true, }, override = function(root_dir, library) local lua_dev_utils = require("lua-dev.util") if lua_dev_utils.has_file(root_dir, lua_dev_utils.fqn("~/.dotfiles/nvim/.config/nvim")) then library.enabled = true - library.runtime = true - library.types = true - library.plugins = { "nvim-treesitter", "plenary.nvim", "telescope.nvim" } end end, }) diff --git a/nvim/.config/nvim/lua/tobyvin/plugins/notify.lua b/nvim/.config/nvim/lua/tobyvin/plugins/notify.lua index 56506f4..4bfdd77 100644 --- a/nvim/.config/nvim/lua/tobyvin/plugins/notify.lua +++ b/nvim/.config/nvim/lua/tobyvin/plugins/notify.lua @@ -1,7 +1,8 @@ local M = { "rcarriga/nvim-notify", + event = "VeryLazy", dependencies = { - "nvim-telescope/telescope.nvim", + { "nvim-telescope/telescope.nvim" }, }, } @@ -26,9 +27,9 @@ function M.config() vim.api.nvim_set_hl(0, "NotifyBackground", { link = "WinBar" }) - local telescope = require("telescope") - telescope.load_extension("notify") - vim.keymap.set("n", "<leader>fn", telescope.extensions.notify.notify, { desc = "notifications" }) + vim.keymap.set("n", "<leader>fn", function() + require("telescope").extensions.notify.notify() + end, { desc = "notifications" }) end return M diff --git a/nvim/.config/nvim/lua/tobyvin/plugins/nvim-navic.lua b/nvim/.config/nvim/lua/tobyvin/plugins/nvim-navic.lua index c5ff794..137a129 100644 --- a/nvim/.config/nvim/lua/tobyvin/plugins/nvim-navic.lua +++ b/nvim/.config/nvim/lua/tobyvin/plugins/nvim-navic.lua @@ -11,6 +11,8 @@ function M.config() icons[i] = icons[i] .. " " end + vim.g.navic_silence = true + nvim_navic.setup({ icons = icons, }) @@ -21,10 +23,7 @@ function M.config() callback = function(args) local bufnr = args.buf local client = vim.lsp.get_client_by_id(args.data.client_id) - - if client.name ~= "cssls" and client.server_capabilities.documentSymbolProvider then - require("nvim-navic").attach(client, bufnr) - end + require("nvim-navic").attach(client, bufnr) end, }) end diff --git a/nvim/.config/nvim/lua/tobyvin/plugins/refactoring.lua b/nvim/.config/nvim/lua/tobyvin/plugins/refactoring.lua new file mode 100644 index 0000000..f68e6d0 --- /dev/null +++ b/nvim/.config/nvim/lua/tobyvin/plugins/refactoring.lua @@ -0,0 +1,15 @@ +local M = { + "ThePrimeagen/refactoring.nvim", +} + +function M.init() + vim.keymap.set("v", "<leader>r", function() + require("refactoring").select_refactor() + end, { desc = "refactor" }) +end + +function M.config() + require("refactoring").setup({}) +end + +return M diff --git a/nvim/.config/nvim/lua/tobyvin/plugins/rust-tools.lua b/nvim/.config/nvim/lua/tobyvin/plugins/rust-tools.lua index 2e32d6e..998901b 100644 --- a/nvim/.config/nvim/lua/tobyvin/plugins/rust-tools.lua +++ b/nvim/.config/nvim/lua/tobyvin/plugins/rust-tools.lua @@ -1,5 +1,6 @@ local M = { "simrat39/rust-tools.nvim", + ft = "rust", dependencies = { "neovim/nvim-lspconfig", "nvim-lua/plenary.nvim", @@ -7,22 +8,7 @@ local M = { }, } -function M.config() - local rust_tools = require("rust-tools") - local utils = require("tobyvin.utils") - local lsp = require("tobyvin.lsp") - local adapters = require("tobyvin.plugins.dap.adapters") - - rust_tools.setup({ - tools = { - hover_actions = { - border = "single", - }, - }, - server = lsp.configs.rust_analyzer, - dap = { adapter = adapters.codelldb }, - }) - +function M.init() vim.api.nvim_create_autocmd("LspAttach", { group = vim.api.nvim_create_augroup("tobyvin_rust-tools", { clear = true }), desc = "setup rust-tools", @@ -33,22 +19,35 @@ function M.config() return end - local runnables = rust_tools.runnables.runnables - local debuggables = rust_tools.debuggables.debuggables - local open_cargo_toml = rust_tools.open_cargo_toml.open_cargo_toml - local external_docs = rust_tools.external_docs.open_external_docs - local expand_macro = rust_tools.expand_macro.expand_macro - local hover_actions = rust_tools.hover_actions.hover_actions + local runnables = require("rust-tools").runnables.runnables + local debuggables = require("rust-tools").debuggables.debuggables + local open_cargo_toml = require("rust-tools").open_cargo_toml.open_cargo_toml + local external_docs = require("rust-tools").external_docs.open_external_docs + local expand_macro = require("rust-tools").expand_macro.expand_macro + local hover_actions = require("rust-tools").hover_actions.hover_actions vim.keymap.set("n", "<leader>dd", debuggables, { desc = "debug", buffer = bufnr }) vim.keymap.set("n", "<leader>tt", runnables, { desc = "test", buffer = bufnr }) vim.keymap.set("n", "<leader>lo", open_cargo_toml, { desc = "open Cargo.toml", buffer = bufnr }) vim.keymap.set("n", "<leader>le", expand_macro, { desc = "expand macro", buffer = bufnr }) + local utils = require("tobyvin.utils") utils.documentation.register("rust", external_docs) utils.hover.register(hover_actions, { desc = "rust-tools hover actions", buffer = bufnr, priority = 10 }) end, }) end +function M.config() + require("rust-tools").setup({ + tools = { + hover_actions = { + border = "single", + }, + }, + server = require("tobyvin.lsp.configs").rust_analyzer, + dap = { adapter = require("tobyvin.plugins.dap.adapters").codelldb }, + }) +end + return M diff --git a/nvim/.config/nvim/lua/tobyvin/plugins/session_manager.lua b/nvim/.config/nvim/lua/tobyvin/plugins/session_manager.lua index 7d63342..1421781 100644 --- a/nvim/.config/nvim/lua/tobyvin/plugins/session_manager.lua +++ b/nvim/.config/nvim/lua/tobyvin/plugins/session_manager.lua @@ -1,5 +1,6 @@ local M = { "Shatur/neovim-session-manager", + lazy = false, } function M.config() diff --git a/nvim/.config/nvim/lua/tobyvin/plugins/telescope.lua b/nvim/.config/nvim/lua/tobyvin/plugins/telescope.lua index fec3bad..9fa9737 100644 --- a/nvim/.config/nvim/lua/tobyvin/plugins/telescope.lua +++ b/nvim/.config/nvim/lua/tobyvin/plugins/telescope.lua @@ -10,6 +10,55 @@ local M = { }, } +function M.init() + local builtin = setmetatable({}, { + __index = function(_, k) + return function() + require("telescope.builtin")[k]() + end + end, + }) + + vim.keymap.set("n", "<leader>fa", builtin.autocommands, { desc = "autocommands" }) + vim.keymap.set("n", "<leader>fb", builtin.buffers, { desc = "buffers" }) + vim.keymap.set("n", "<leader>fc", builtin.commands, { desc = "commands" }) + vim.keymap.set("n", "<leader>fC", builtin.command_history, { desc = "command history" }) + vim.keymap.set("n", "<leader>fe", builtin.diagnostics, { desc = "diagnostics" }) + vim.keymap.set("n", "<leader>ff", builtin.find_files, { desc = "find files" }) + vim.keymap.set("n", "<leader>fF", builtin.filetypes, { desc = "filetypes" }) + vim.keymap.set("n", "<leader>fh", builtin.help_tags, { desc = "help" }) + vim.keymap.set("n", "<leader>fH", builtin.highlights, { desc = "highlights" }) + vim.keymap.set("n", "<leader>fj", builtin.jumplist, { desc = "jumplist" }) + vim.keymap.set("n", "<leader>fk", builtin.keymaps, { desc = "keymaps" }) + vim.keymap.set("n", "<leader>fl", builtin.loclist, { desc = "loclist" }) + vim.keymap.set("n", "<leader>fm", builtin.marks, { desc = "marks" }) + vim.keymap.set("n", "<leader>fM", builtin.man_pages, { desc = "man pages" }) + vim.keymap.set("n", "<leader>fo", builtin.oldfiles, { desc = "old files" }) + vim.keymap.set("n", "<leader>fp", builtin.pickers, { desc = "pickers" }) + vim.keymap.set("n", "<leader>fr", builtin.resume, { desc = "resume" }) + vim.keymap.set("n", "<leader>fR", builtin.reloader, { desc = "reloader" }) + vim.keymap.set("n", "<leader>fs", builtin.spell_suggest, { desc = "spell suggest" }) + vim.keymap.set("n", "<leader>fS", builtin.search_history, { desc = "search history" }) + vim.keymap.set("n", "<leader>ft", builtin.tags, { desc = "tags" }) + vim.keymap.set("n", "<leader>ft", builtin.colorscheme, { desc = "colorscheme" }) + vim.keymap.set("n", "<leader>fv", builtin.vim_options, { desc = "vim options" }) + vim.keymap.set("n", "<leader>f'", builtin.registers, { desc = "registers" }) + vim.keymap.set("n", "<leader>gb", builtin.git_branches, { desc = "branches" }) + vim.keymap.set("n", "<leader>gc", builtin.git_bcommits, { desc = "bcommits" }) + vim.keymap.set("n", "<leader>gC", builtin.git_commits, { desc = "commits" }) + vim.keymap.set("n", "<leader>gf", builtin.git_files, { desc = "files" }) + vim.keymap.set("n", "<leader>gt", builtin.git_status, { desc = "status" }) + vim.keymap.set("n", "<leader>gT", builtin.git_stash, { desc = "stash" }) + + vim.keymap.set("n", "<leader>fd", function() + require("telescope").extensions.file_browser.file_browser() + end, { desc = "file browser" }) + + vim.keymap.set("n", "<leader>fg", function() + require("telescope").extensions.live_grep_args.live_grep_args() + end, { desc = "live grep" }) +end + function M.config() local telescope = require("telescope") @@ -63,44 +112,6 @@ function M.config() -- Extensions telescope.load_extension("fzf") - telescope.load_extension("file_browser") - telescope.load_extension("live_grep_args") - - local builtins = require("telescope.builtin") - local extensions = telescope.extensions - - vim.keymap.set("n", "<leader>fa", builtins.autocommands, { desc = "autocommands" }) - vim.keymap.set("n", "<leader>fb", builtins.buffers, { desc = "buffers" }) - vim.keymap.set("n", "<leader>fc", builtins.commands, { desc = "commands" }) - vim.keymap.set("n", "<leader>fC", builtins.command_history, { desc = "command history" }) - vim.keymap.set("n", "<leader>fd", extensions.file_browser.file_browser, { desc = "file browser" }) - vim.keymap.set("n", "<leader>fe", builtins.diagnostics, { desc = "diagnostics" }) - vim.keymap.set("n", "<leader>ff", builtins.find_files, { desc = "find files" }) - vim.keymap.set("n", "<leader>fF", builtins.filetypes, { desc = "filetypes" }) - vim.keymap.set("n", "<leader>fg", extensions.live_grep_args.live_grep_args, { desc = "live grep" }) - vim.keymap.set("n", "<leader>fh", builtins.help_tags, { desc = "help" }) - vim.keymap.set("n", "<leader>fH", builtins.highlights, { desc = "highlights" }) - vim.keymap.set("n", "<leader>fj", builtins.jumplist, { desc = "jumplist" }) - vim.keymap.set("n", "<leader>fk", builtins.keymaps, { desc = "keymaps" }) - vim.keymap.set("n", "<leader>fl", builtins.loclist, { desc = "loclist" }) - vim.keymap.set("n", "<leader>fm", builtins.marks, { desc = "marks" }) - vim.keymap.set("n", "<leader>fM", builtins.man_pages, { desc = "man pages" }) - vim.keymap.set("n", "<leader>fo", builtins.oldfiles, { desc = "old files" }) - vim.keymap.set("n", "<leader>fp", builtins.pickers, { desc = "pickers" }) - vim.keymap.set("n", "<leader>fr", builtins.resume, { desc = "resume" }) - vim.keymap.set("n", "<leader>fR", builtins.reloader, { desc = "reloader" }) - vim.keymap.set("n", "<leader>fs", builtins.spell_suggest, { desc = "spell suggest" }) - vim.keymap.set("n", "<leader>fS", builtins.search_history, { desc = "search history" }) - vim.keymap.set("n", "<leader>ft", builtins.tags, { desc = "tags" }) - vim.keymap.set("n", "<leader>ft", builtins.colorscheme, { desc = "colorscheme" }) - vim.keymap.set("n", "<leader>fv", builtins.vim_options, { desc = "vim options" }) - vim.keymap.set("n", "<leader>f'", builtins.registers, { desc = "registers" }) - vim.keymap.set("n", "<leader>gb", builtins.git_branches, { desc = "branches" }) - vim.keymap.set("n", "<leader>gc", builtins.git_bcommits, { desc = "bcommits" }) - vim.keymap.set("n", "<leader>gC", builtins.git_commits, { desc = "commits" }) - vim.keymap.set("n", "<leader>gf", builtins.git_files, { desc = "files" }) - vim.keymap.set("n", "<leader>gt", builtins.git_status, { desc = "status" }) - vim.keymap.set("n", "<leader>gT", builtins.git_stash, { desc = "stash" }) end return M diff --git a/nvim/.config/nvim/lua/tobyvin/utils.lua b/nvim/.config/nvim/lua/tobyvin/utils.lua index 45772fb..5f02f9e 100644 --- a/nvim/.config/nvim/lua/tobyvin/utils.lua +++ b/nvim/.config/nvim/lua/tobyvin/utils.lua @@ -1,5 +1,27 @@ -- Lazy load -local M = setmetatable({}, { +local M = {} + +function M.require(mod) + local ok, ret = M.try(require, mod) + return ok and ret +end + +function M.try(fn, ...) + local args = { ... } + + return xpcall(function() + return fn(unpack(args)) + end, function(err) + local lines = {} + table.insert(lines, err) + table.insert(lines, debug.traceback("", 3)) + + M.error(table.concat(lines, "\n")) + return err + end) +end + +setmetatable(M, { __index = function(t, k) local ok, val = pcall(require, string.format("tobyvin.utils.%s", k)) diff --git a/nvim/.config/nvim/lua/tobyvin/utils/hover.lua b/nvim/.config/nvim/lua/tobyvin/utils/hover.lua index e6de71c..3b967eb 100644 --- a/nvim/.config/nvim/lua/tobyvin/utils/hover.lua +++ b/nvim/.config/nvim/lua/tobyvin/utils/hover.lua @@ -109,7 +109,7 @@ end ---@param buffer number? M.open = function(buffer) - buffer = vim.F.if_nil(buffer, vim.api.nvim_get_current_buf()) + buffer = buffer or vim.api.nvim_get_current_buf() local providers = M.buf_providers(buffer) for _, provider in ipairs(providers) do if provider.opts.enabled and provider.opts.enabled() and not provider.handler() then |