From 0613f29757b688b55b74027063d35dcebc23b10a Mon Sep 17 00:00:00 2001 From: Sam Nystrom Date: Mon, 10 Jul 2023 14:05:55 -0400 Subject: nvim: stuff --- .config/nvim/lazy-lock.json | 33 ++++++++++++---------- .config/nvim/lua/plugins/catppuccin.lua | 3 ++ .config/nvim/lua/plugins/dap.lua | 9 +++++- .config/nvim/lua/plugins/dressing.lua | 17 ++++++++++++ .config/nvim/lua/plugins/editor.lua | 47 ++++++++------------------------ .config/nvim/lua/plugins/illuminate.lua | 15 ++++++++++ .config/nvim/lua/plugins/lsp.lua | 18 +++++++++++- .config/nvim/lua/plugins/lualine.lua | 1 + .config/nvim/lua/plugins/neotest.lua | 13 +++++++++ .config/nvim/lua/plugins/textobjects.lua | 17 ++++++++++++ .config/nvim/lua/plugins/treesitter.lua | 27 +++++++++--------- 11 files changed, 136 insertions(+), 64 deletions(-) create mode 100644 .config/nvim/lua/plugins/dressing.lua create mode 100644 .config/nvim/lua/plugins/illuminate.lua create mode 100644 .config/nvim/lua/plugins/textobjects.lua (limited to '.config') diff --git a/.config/nvim/lazy-lock.json b/.config/nvim/lazy-lock.json index 7c35e27..8099aee 100644 --- a/.config/nvim/lazy-lock.json +++ b/.config/nvim/lazy-lock.json @@ -1,8 +1,8 @@ { "FixCursorHold.nvim": { "branch": "master", "commit": "1900f89dc17c603eec29960f57c00bd9ae696495" }, - "LuaSnip": { "branch": "master", "commit": "db0aba4a39b28ff5564def07c25bb4bd06a78fdc" }, + "LuaSnip": { "branch": "master", "commit": "a658ae2906344a1d2b9c507738e585cf68e685c7" }, "bufferline.nvim": { "branch": "main", "commit": "2f391fde91b9c3876eee359ee24cc352050e5e48" }, - "catppuccin": { "branch": "main", "commit": "c75562cbc954136f279ced91661251543b6f2a20" }, + "catppuccin": { "branch": "main", "commit": "cc8d3abc944d78cb6bf2a4cc88871ab383c4da62" }, "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, "cmp-cmdline": { "branch": "main", "commit": "8ee981b4a91f536f52add291594e89fb6645e451" }, "cmp-conjure": { "branch": "master", "commit": "d97816d5007be2b060f3a4e09f5b144d97d96fe8" }, @@ -14,23 +14,26 @@ "comment.nvim": { "branch": "master", "commit": "176e85eeb63f1a5970d6b88f1725039d85ca0055" }, "conjure": { "branch": "master", "commit": "31a1626273e2bab479b6b8416a137f9edaba7daa" }, "dashboard-nvim": { "branch": "master", "commit": "ab84915f7cfd7bc7a5bfe7409c3eccf8d09c162a" }, - "diffview.nvim": { "branch": "main", "commit": "766a4f210e67e522659302dc6bd8a8d3b8c08c54" }, + "diffview.nvim": { "branch": "main", "commit": "94f5f40543e393d9028bae9ce2fedf6da3af701a" }, "dressing.nvim": { "branch": "master", "commit": "e6eff7a5a950a853c3903d906dbcea03f778db5f" }, + "fidget.nvim": { "branch": "main", "commit": "0ba1e16d07627532b6cae915cc992ecac249fb97" }, "flit.nvim": { "branch": "main", "commit": "5c9a78b97f7f4301473ea5e37501b5b1d4da167b" }, - "friendly-snippets": { "branch": "main", "commit": "17245edcd1195ad88d60ae13fb1e90d1df9b2fc9" }, + "friendly-snippets": { "branch": "main", "commit": "a94db1ee6ddfd238e725b0f90163fdd65d382464" }, "gitsigns.nvim": { "branch": "main", "commit": "dc2962f7fce953a2a98e7c6d3d7fc4c1d1f66758" }, "hlsearch.nvim": { "branch": "main", "commit": "eea3f8010e739c7694ceafe800d60caba0f896c6" }, - "indent-blankline.nvim": { "branch": "master", "commit": "b7aa0aed55887edfaece23f7b46ab22232fc8741" }, - "lazy.nvim": { "branch": "main", "commit": "f8611632d0f9c6818e8eb54f9bcd1dad122b5a7f" }, + "indent-blankline.nvim": { "branch": "master", "commit": "73640233cca0da8e01aced8c1f9e63fd892128b7" }, + "lazy.nvim": { "branch": "main", "commit": "5af331ea65418dc9361769891921fdee4bcc837a" }, "leap.nvim": { "branch": "main", "commit": "8facf2eb6a378fd7691dce8c8a7b2726823e2408" }, "lualine.nvim": { "branch": "master", "commit": "05d78e9fd0cdfb4545974a5aa14b1be95a86e9c9" }, "markdown-preview.nvim": { "branch": "master", "commit": "02cc3874738bc0f86e4b91f09b8a0ac88aef8e96" }, "mini.ai": { "branch": "main", "commit": "5218ea75e635df78a807bc9d5a7162594fb76d02" }, - "neodev.nvim": { "branch": "main", "commit": "a2b1d8fb9fa4daa35d3fd9123bccccccbd4a3520" }, - "neogit": { "branch": "master", "commit": "06113a4eec1a60553b7112934883982fef603aae" }, + "neodev.nvim": { "branch": "main", "commit": "0705c72c281626f45c78d0916151d3e2bfb53fae" }, + "neogit": { "branch": "master", "commit": "72824006f2dcf775cc498cc4a046ddd2c99d20a3" }, "neotest": { "branch": "master", "commit": "e46eae5739c470aa011ee43108ea8a730736174e" }, + "neotest-go": { "branch": "main", "commit": "05535cb2cfe3ce5c960f65784896d40109572f89" }, "neotest-python": { "branch": "master", "commit": "054f22129405e747adfc2cbeddfcc59537df50ba" }, - "null-ls.nvim": { "branch": "main", "commit": "07897774c3b2f14d71b2ca51f3014d1055da9657" }, + "neotest-rust": { "branch": "main", "commit": "6dce8963e5395adf079bf22e931dfce65d3fed25" }, + "null-ls.nvim": { "branch": "main", "commit": "db09b6c691def0038c456551e4e2772186449f35" }, "nvim-autopairs": { "branch": "master", "commit": "e8f7dd7a72de3e7b6626c050a802000e69d53ff0" }, "nvim-cmp": { "branch": "main", "commit": "2743dd989e9b932e1b4813a4927d7b84272a14e2" }, "nvim-colorizer.lua": { "branch": "master", "commit": "dde3084106a70b9a79d48f426f6d6fec6fd203f7" }, @@ -39,17 +42,19 @@ "nvim-dap-python": { "branch": "master", "commit": "37b4cba02e337a95cb62ad1609b3d1dccb2e5d42" }, "nvim-dap-ui": { "branch": "master", "commit": "c020f660b02772f9f3d11f599fefad3268628a9e" }, "nvim-dap-virtual-text": { "branch": "master", "commit": "57f1dbd0458dd84a286b27768c142e1567f3ce3b" }, - "nvim-lspconfig": { "branch": "master", "commit": "2187f222c37cb5fd7cf96f242e5c8a4a340f2596" }, + "nvim-lspconfig": { "branch": "master", "commit": "a7ecaff3245ba4b9e5ed784ebefbedba54e7f0ad" }, + "nvim-navic": { "branch": "master", "commit": "e3b9d8a974bec71b88d5640f1c87bf5b4a7e4113" }, "nvim-notify": { "branch": "master", "commit": "ea9c8ce7a37f2238f934e087c255758659948e0f" }, "nvim-spectre": { "branch": "master", "commit": "dc3f0bd41e09148924ef04a4746cb708539d08db" }, "nvim-surround": { "branch": "main", "commit": "10b20ca7d9da1ac8df8339e140ffef94f9ab3b18" }, - "nvim-treesitter": { "branch": "master", "commit": "0b81ed9f18333949a74586a1ea0497ae4cbb7cd4" }, + "nvim-treesitter": { "branch": "master", "commit": "e1ab5391e5c4820dd1ffc2566d29b01573ab52a9" }, "nvim-treesitter-textobjects": { "branch": "master", "commit": "52f1f3280d9092bfaee5c45be5962fabee3d9654" }, "nvim-web-devicons": { "branch": "master", "commit": "9ab9b0b894b2388a9dbcdee5f00ce72e25d85bf9" }, - "plenary.nvim": { "branch": "master", "commit": "102c02903c74b93c705406bf362049383abc87c8" }, - "rainbow-delimiters.nvim": { "branch": "master", "commit": "792e247993b0f8768d23ef302103f6945b92290b" }, + "plenary.nvim": { "branch": "master", "commit": "bda256fab0eb66a15e8190937e417e6a14ee5d72" }, + "rainbow-delimiters.nvim": { "branch": "master", "commit": "5801463f9c67582529e3a10b5b18ad0c581a8dcf" }, + "rust-tools.nvim": { "branch": "master", "commit": "71d2cf67b5ed120a0e31b2c8adb210dd2834242f" }, "telescope-file-browser.nvim": { "branch": "master", "commit": "e03ff55962417b69c85ef41424079bb0580546ba" }, - "telescope.nvim": { "branch": "master", "commit": "0e0600908d1ad5ac4992fa0ab578e23e9d9d6f37" }, + "telescope.nvim": { "branch": "master", "commit": "276362a8020c6e94c7a76d49aa00d4923b0c02f3" }, "todo-comments.nvim": { "branch": "main", "commit": "09b0b17d824d2d56f02ff15967e8a2499a89c731" }, "toggleterm.nvim": { "branch": "main", "commit": "2249e974faed67e795ffc2ca2be13b93c5d51938" }, "trouble.nvim": { "branch": "main", "commit": "d99e2abd10808ef91738ce98a5c767e6a51df449" }, diff --git a/.config/nvim/lua/plugins/catppuccin.lua b/.config/nvim/lua/plugins/catppuccin.lua index f4c1987..bddf31a 100644 --- a/.config/nvim/lua/plugins/catppuccin.lua +++ b/.config/nvim/lua/plugins/catppuccin.lua @@ -11,6 +11,9 @@ return { neogit = true, notify = true, neotest = true, + which_key = true, + fidget = true, + navic = { enabled = true }, }, }) vim.cmd.colorscheme("catppuccin") diff --git a/.config/nvim/lua/plugins/dap.lua b/.config/nvim/lua/plugins/dap.lua index 040511c..25a7c05 100644 --- a/.config/nvim/lua/plugins/dap.lua +++ b/.config/nvim/lua/plugins/dap.lua @@ -20,7 +20,7 @@ return { config = function() local dapui = require("dapui") dapui.setup() - + local dap = require("dap") dap.listeners.after.event_initialized["dapui_config"] = dapui.open dap.listeners.before.event_terminated["dapui_config"] = dapui.close @@ -46,6 +46,13 @@ return { { "dt", function() require("dap").terminate() end, desc = "Terminate" }, { "dw", function() require("dap.ui.widgets").hover() end, desc = "Widgets" }, }, + config = function() + require("dap") + local sign = vim.fn.sign_define + sign("DapBreakpoint", { text = "●", texthl = "DapBreakpoint", linehl = "", numhl = ""}) + sign("DapBreakpointCondition", { text = "●", texthl = "DapBreakpointCondition", linehl = "", numhl = ""}) + sign("DapLogPoint", { text = "◆", texthl = "DapLogPoint", linehl = "", numhl = ""}) + end, }, } diff --git a/.config/nvim/lua/plugins/dressing.lua b/.config/nvim/lua/plugins/dressing.lua new file mode 100644 index 0000000..763aee8 --- /dev/null +++ b/.config/nvim/lua/plugins/dressing.lua @@ -0,0 +1,17 @@ +return { + { + "stevearc/dressing.nvim", + lazy = true, + init = function() + vim.ui.select = function(...) + require("lazy").load({ plugins = { "dressing.nvim" } }) + return vim.ui.select(...) + end + vim.ui.input = function(...) + require("lazy").load({ plugins = { "dressing.nvim" } }) + return vim.ui.input(...) + end + end, + }, +} + diff --git a/.config/nvim/lua/plugins/editor.lua b/.config/nvim/lua/plugins/editor.lua index 7cc48ea..99c4647 100644 --- a/.config/nvim/lua/plugins/editor.lua +++ b/.config/nvim/lua/plugins/editor.lua @@ -1,4 +1,15 @@ return { + { "nvimdev/hlsearch.nvim", event = { "BufReadPre", "BufNewFile" }, opts = {} }, + { "folke/todo-comments.nvim", event = { "BufReadPre", "BufNewFile" }, opts = {} }, + { "kylechui/nvim-surround", event = "VeryLazy", opts = {} }, + { "numtostr/comment.nvim", event = "VeryLazy", opts = {} }, + { "folke/neodev.nvim", ft = "lua", opts = {} }, + { "simrat39/rust-tools.nvim", ft = "rust", opts = {} }, + { + "iamcco/markdown-preview.nvim", + build = "cd app && npm install", + cmd = { "MarkdownPreview", "MarkdownPreviewStop", "MarkdownPreviewToggle" }, + }, { "Olical/conjure", ft = { @@ -15,43 +26,9 @@ return { "lua", "python", }, - }, - { "nvimdev/hlsearch.nvim", event = { "BufReadPre", "BufNewFile" }, opts = {} }, - { "folke/todo-comments.nvim", event = { "BufReadPre", "BufNewFile" }, opts = {} }, - { "stevearc/dressing.nvim", event = "VeryLazy", opts = {} }, - { "kylechui/nvim-surround", event = "VeryLazy", opts = {} }, - { "numtostr/comment.nvim", event = "VeryLazy", opts = {} }, - { "folke/neodev.nvim", ft = "lua", opts = {} }, - { - "iamcco/markdown-preview.nvim", - build = "cd app && npm install", - cmd = { "MarkdownPreview", "MarkdownPreviewStop", "MarkdownPreviewToggle" }, - }, - { - "RRethy/vim-illuminate", - event = { "BufReadPre", "BufNewFile" }, config = function() - require("illuminate").configure({ - providers = { "lsp", "treesitter" }, - }) - vim.api.nvim_set_hl(0, "IlluminatedWordText", { link = "illuminatedWord" }) - vim.api.nvim_set_hl(0, "IlluminatedWordRead", { link = "illuminatedWord" }) - vim.api.nvim_set_hl(0, "IlluminatedWordWrite", { link = "illuminatedWord" }) + vim.g.conjure = { mapping = { doc_word = false } } end, }, - { - "echasnovski/mini.ai", - event = "VeryLazy", - config = function() - local ai = require("mini.ai") - ai.setup({ - n_lines = 200, - custom_textobjects = { - F = ai.gen_spec.treesitter({ a = "@function.outer", i = "@function.inner" }), - c = ai.gen_spec.treesitter({ a = "@class.outer", i = "@class.inner" }), - }, - }) - end - }, } diff --git a/.config/nvim/lua/plugins/illuminate.lua b/.config/nvim/lua/plugins/illuminate.lua new file mode 100644 index 0000000..125f6d8 --- /dev/null +++ b/.config/nvim/lua/plugins/illuminate.lua @@ -0,0 +1,15 @@ +return { + { + "RRethy/vim-illuminate", + event = { "BufReadPre", "BufNewFile" }, + config = function() + require("illuminate").configure({ + providers = { "lsp", "treesitter" }, + }) + vim.api.nvim_set_hl(0, "IlluminatedWordText", { link = "illuminatedWord" }) + vim.api.nvim_set_hl(0, "IlluminatedWordRead", { link = "illuminatedWord" }) + vim.api.nvim_set_hl(0, "IlluminatedWordWrite", { link = "illuminatedWord" }) + end, + }, +} + diff --git a/.config/nvim/lua/plugins/lsp.lua b/.config/nvim/lua/plugins/lsp.lua index cb4511d..4d169c1 100644 --- a/.config/nvim/lua/plugins/lsp.lua +++ b/.config/nvim/lua/plugins/lsp.lua @@ -4,6 +4,12 @@ return { dependencies = { "hrsh7th/cmp-nvim-lsp", "jose-elias-alvarez/null-ls.nvim", + { + "SmiteshP/nvim-navic", + opts = { + highlight = true, + }, + }, }, event = { "BufReadPre", "BufNewFile" }, config = function() @@ -11,10 +17,14 @@ return { local capabilities = require("cmp_nvim_lsp").default_capabilities() local common = { capabilities = capabilities, + on_attach = function(client, bufnr) + if client.server_capabilities.documentSymbolProvider then + require("nvim-navic").attach(client, bufnr) + end + end, } local lsps = { - "rust_analyzer", "gopls", "lua_ls", "pylsp", @@ -75,4 +85,10 @@ return { }) end, }, + { + "j-hui/fidget.nvim", + tag = "legacy", + event = "LspAttach", + opts = {}, + }, } diff --git a/.config/nvim/lua/plugins/lualine.lua b/.config/nvim/lua/plugins/lualine.lua index 21881b9..ffd1e9a 100644 --- a/.config/nvim/lua/plugins/lualine.lua +++ b/.config/nvim/lua/plugins/lualine.lua @@ -2,6 +2,7 @@ return { { "nvim-lualine/lualine.nvim", dependencies = { "nvim-tree/nvim-web-devicons" }, + event = "VeryLazy", opts = { options = { theme = "catppuccin", diff --git a/.config/nvim/lua/plugins/neotest.lua b/.config/nvim/lua/plugins/neotest.lua index 74817a5..5e22696 100644 --- a/.config/nvim/lua/plugins/neotest.lua +++ b/.config/nvim/lua/plugins/neotest.lua @@ -7,6 +7,8 @@ return { "antoinemadec/FixCursorHold.nvim", "nvim-neotest/neotest-python", + "rouge8/neotest-rust", + "nvim-neotest/neotest-go", }, keys = { { "tt", function() require("neotest").run.run(vim.fn.expand("%")) end, desc = "Run buffer" }, @@ -23,9 +25,20 @@ return { { "tws", function() require("neotest").watch.stop() end, desc = "Stop watching" }, }, config = function() + local neotest_ns = vim.api.nvim_create_namespace("neotest") + vim.diagnostic.config({ + virtual_text = { + format = function(diagnostic) + return diagnostic.message:gsub("\n", " "):gsub("\t", " "):gsub("%s+", " "):gsub("^%s+", "") + end, + }, + }, neotest_ns) + require("neotest").setup({ adapters = { require("neotest-python"), + require("neotest-rust"), + require("neotest-go"), }, }) end, diff --git a/.config/nvim/lua/plugins/textobjects.lua b/.config/nvim/lua/plugins/textobjects.lua new file mode 100644 index 0000000..909ece4 --- /dev/null +++ b/.config/nvim/lua/plugins/textobjects.lua @@ -0,0 +1,17 @@ +return { + { + "echasnovski/mini.ai", + event = "VeryLazy", + config = function() + local ai = require("mini.ai") + ai.setup({ + n_lines = 200, + custom_textobjects = { + F = ai.gen_spec.treesitter({ a = "@function.outer", i = "@function.inner" }), + c = ai.gen_spec.treesitter({ a = "@class.outer", i = "@class.inner" }), + }, + }) + end + }, +} + diff --git a/.config/nvim/lua/plugins/treesitter.lua b/.config/nvim/lua/plugins/treesitter.lua index ba45ada..e07c895 100644 --- a/.config/nvim/lua/plugins/treesitter.lua +++ b/.config/nvim/lua/plugins/treesitter.lua @@ -7,24 +7,25 @@ return { require("nvim-treesitter.configs").setup({ auto_install = true, ensure_installed = { - "lua", - "python", - "rust", "bash", - "regex", - "json", - "toml", - "yaml", - "ini", - "markdown", - "html", + "clojure", "css", + "html", + "ini", "javascript", - "typescript", - "tsx", + "json", + "kotlin", + "lua", + "markdown", + "python", + "regex", + "rust", "scss", - "clojure", "sql", + "toml", + "tsx", + "typescript", + "yaml", }, highlight = { enable = true }, }) -- cgit v1.2.3