diff --git a/lazy-lock.json b/lazy-lock.json index b54d5b2..b4eb86c 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -1,34 +1,37 @@ { - "blink.cmp": { "branch": "main", "commit": "49f211fe5d729df53df4c042d7c3464cf47d199e" }, + "blink.cmp": { "branch": "main", "commit": "4f38ce99a472932d5776337f08f7a8180f1f571a" }, "commander.nvim": { "branch": "main", "commit": "84101e8eb1613a72bbdec655b734f891d8a00694" }, "diffview.nvim": { "branch": "main", "commit": "4516612fe98ff56ae0415a259ff6361a89419b0a" }, "flash.nvim": { "branch": "main", "commit": "3c942666f115e2811e959eabbdd361a025db8b63" }, - "friendly-snippets": { "branch": "main", "commit": "efff286dd74c22f731cdec26a70b46e5b203c619" }, - "gitsigns.nvim": { "branch": "main", "commit": "7010000889bfb6c26065e0b0f7f1e6aa9163edd9" }, + "friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" }, + "gitsigns.nvim": { "branch": "main", "commit": "7ce11abbb8b038a9de4fb6f75d8289c58d81aed7" }, "glance.nvim": { "branch": "master", "commit": "cb19b86349cbe634eec0ea768b9a27fdd6d24f34" }, - "hurl.nvim": { "branch": "main", "commit": "bf00b4ee56dc8026dd7cd068236fb2c01bb1e307" }, - "key-analyzer.nvim": { "branch": "main", "commit": "72d301fb8843c19d8e69e16e0a0b42256edc25cc" }, + "hurl.nvim": { "branch": "main", "commit": "2c3f2151c39d9752ccf802db6d1104bdb1a5565d" }, "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, "lsp-lens.nvim": { "branch": "main", "commit": "48bb1a7e271424c15f3d588d54adc9b7c319d977" }, - "lspsaga.nvim": { "branch": "main", "commit": "778d56ff9b387dacd14ae648ed5604394b486f51" }, + "lspsaga.nvim": { "branch": "main", "commit": "920b1253e1a26732e53fac78412f6da7f674671d" }, "mason.nvim": { "branch": "main", "commit": "fc98833b6da5de5a9c5b1446ac541577059555be" }, "mini.files": { "branch": "main", "commit": "01001e0cfc1e79f581d055ae3f70fbac96a2f378" }, "mini.statusline": { "branch": "main", "commit": "1b0edf76fe2af015f8c989385ff949f1db7aade2" }, - "namu.nvim": { "branch": "main", "commit": "fc9632d7deb81c737577ecfa5879aa3bd1fc0433" }, - "neo-tree.nvim": { "branch": "v3.x", "commit": "9b5d67119c46e3262ffe1508fe6d8540b79ad75d" }, - "neogit": { "branch": "master", "commit": "6d1bd94f7fca92a50a892f494920696b5defa8c8" }, - "none-ls-extras.nvim": { "branch": "main", "commit": "1214d729e3408470a7b7a428415a395e5389c13c" }, - "none-ls.nvim": { "branch": "main", "commit": "a117163db44c256d53c3be8717f3e1a2a28e6299" }, - "nui.nvim": { "branch": "main", "commit": "8d3bce9764e627b62b07424e0df77f680d47ffdb" }, - "nvim-autopairs": { "branch": "master", "commit": "6522027785b305269fa17088395dfc0f456cedd2" }, - "nvim-treesitter": { "branch": "master", "commit": "a3315b8c7f0f1ddaa30b24bcc0af0d31024dfb6a" }, - "nvim-treesitter-textobjects": { "branch": "master", "commit": "9937e5e356e5b227ec56d83d0a9d0a0f6bc9cad4" }, - "nvim-web-devicons": { "branch": "master", "commit": "4c3a5848ee0b09ecdea73adcd2a689190aeb728c" }, + "namu.nvim": { "branch": "main", "commit": "dce3d5cb82ee6104babac14b1692e746821722d3" }, + "neo-tree.nvim": { "branch": "v3.x", "commit": "1ef260eb4f54515fe121a2267b477efb054d108a" }, + "neogit": { "branch": "master", "commit": "0b9aebe6a51f88d291cbf972b7aad7ad58ea3998" }, + "none-ls-extras.nvim": { "branch": "main", "commit": "924fe88a9983c7d90dbb31fc4e3129a583ea0a90" }, + "none-ls.nvim": { "branch": "main", "commit": "7c493a266a6b1ed419f8a2e431651bc15b10df27" }, + "nui.nvim": { "branch": "main", "commit": "f535005e6ad1016383f24e39559833759453564e" }, + "nvim-autopairs": { "branch": "master", "commit": "4d74e75913832866aa7de35e4202463ddf6efd1b" }, + "nvim-lspconfig": { "branch": "master", "commit": "4bc481b6f0c0cf3671fc894debd0e00347089a4e" }, + "nvim-treesitter": { "branch": "master", "commit": "94ea4f436d2b59c80f02e293466c374584f03b8c" }, + "nvim-treesitter-textobjects": { "branch": "master", "commit": "ed373482db797bbf71bdff37a15c7555a84dce47" }, + "nvim-ufo": { "branch": "main", "commit": "cac999ec9f6302d2fd4ad8a846bf8f731af6e7cf" }, + "nvim-web-devicons": { "branch": "master", "commit": "2c2b4eafce6cdd0cb165036faa17396eff18f847" }, "output-panel.nvim": { "branch": "main", "commit": "9979f9988acb35fd8e699d8b1fbc7aa17c9d8148" }, + "package-info.nvim": { "branch": "master", "commit": "4f1b8287dde221153ec9f2acd46e8237d2d0881e" }, "plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" }, - "render-markdown.nvim": { "branch": "main", "commit": "e6c8081691881fd63b4d72cb472094ac190ac56e" }, - "schemastore.nvim": { "branch": "main", "commit": "d307d291f38678d064cb987112926df6d9134de3" }, - "snacks.nvim": { "branch": "main", "commit": "bc0630e43be5699bb94dadc302c0d21615421d93" }, + "promise-async": { "branch": "main", "commit": "119e8961014c9bfaf1487bf3c2a393d254f337e2" }, + "render-markdown.nvim": { "branch": "main", "commit": "fa92c30f59afa980708e110824ff0933bc0954e5" }, + "schemastore.nvim": { "branch": "main", "commit": "d521e71f9d5ac1c29a7653528d4e5c66ffe229c5" }, + "snacks.nvim": { "branch": "main", "commit": "51542bb8f43cbd0ca9d2ff3c5ad8a86fd76475a1" }, "telescope.nvim": { "branch": "master", "commit": "a4ed82509cecc56df1c7138920a1aeaf246c0ac5" }, "todo-comments.nvim": { "branch": "main", "commit": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" }, "tokyonight.nvim": { "branch": "main", "commit": "057ef5d260c1931f1dffd0f052c685dcd14100a3" }, diff --git a/lua/config/lazy.lua b/lua/config/lazy.lua index a360577..8667bb8 100644 --- a/lua/config/lazy.lua +++ b/lua/config/lazy.lua @@ -1,24 +1,24 @@ local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" if not (vim.uv or vim.loop).fs_stat(lazypath) then - local lazyrepo = "https://github.com/folke/lazy.nvim.git" - local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath }) - if vim.v.shell_error ~= 0 then - vim.api.nvim_echo({ - { "Failed to clone lazy.nvim:\n", "ErrorMsg" }, - { out, "WarningMsg" }, - { "\nPress any key to exit..." }, - }, true, {}) - vim.fn.getchar() - os.exit(1) - end + local lazyrepo = "https://github.com/folke/lazy.nvim.git" + local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath }) + if vim.v.shell_error ~= 0 then + vim.api.nvim_echo({ + { "Failed to clone lazy.nvim:\n", "ErrorMsg" }, + { out, "WarningMsg" }, + { "\nPress any key to exit..." }, + }, true, {}) + vim.fn.getchar() + os.exit(1) + end end vim.opt.rtp:prepend(lazypath) require("lazy").setup({ - spec = { - { import = "plugins" }, - } + change_detection = { + enabled = false, + }, + spec = { + { import = "plugins" }, + } }) - - - diff --git a/lua/config/settings.lua b/lua/config/settings.lua index a3acfb1..6f2b34a 100644 --- a/lua/config/settings.lua +++ b/lua/config/settings.lua @@ -12,9 +12,14 @@ opt.colorcolumn = "80" opt.clipboard:append({ "unnamed", "unnamedplus" }) opt.expandtab = true opt.exrc = true -opt.foldmethod = "syntax" opt.foldcolumn = "1" -opt.foldlevelstart = 20 +opt.foldlevel = 99 +opt.foldlevelstart = 99 +opt.foldenable = true +opt.fillchars:append({ + foldopen = "", + foldclose = "", +}) opt.ignorecase = true opt.incsearch = true opt.inccommand = "split" diff --git a/lua/lsp/harper_ls.lua b/lua/lsp/harper_ls.lua new file mode 100644 index 0000000..a564707 --- /dev/null +++ b/lua/lsp/harper_ls.lua @@ -0,0 +1 @@ +return {} diff --git a/lua/plugins/commander.lua b/lua/plugins/commander.lua index cdb8961..d039c12 100644 --- a/lua/plugins/commander.lua +++ b/lua/plugins/commander.lua @@ -53,17 +53,25 @@ return { desc = "Git branches", }, { - cmd = ":GV", + cmd = function() + require("neogit").action("log", "log_current", { '--graph', '--decorate', '--color' })() + end, desc = "Git log", }, { - cmd = ":Git blame", + cmd = function() + require("gitsigns").blame() + end, desc = "Git blame", }, { cmd = ":DiffviewOpen", desc = "Diff view", }, + { + desc = "Diffview since develop branch", + cmd = ":DiffviewOpen develop..." + }, { cmd = ":UndotreeToggle", desc = "Undotree", @@ -80,24 +88,16 @@ return { cmd = ":lua Snacks.notifier.show_history()", desc = "Error/notification history", }, + { + cmd = ":lua Snacks.gitbrowse()", + desc = "Show git file in the browser", + }, { cmd = ":lua Snacks.terminal.toggle()", desc = "Terminal", keys = { "n", "t" }, set = false, }, - { - cmd = ":GitConflicts", - desc = "Git conflicts to quickfix", - }, - { - cmd = ":LastCommitToQuickfix", - desc = "Last Commit To quickfix", - }, - { - cmd = ":ForkToQuickfix", - desc = "Branch commits to quickfix", - }, { cmd = ":Trouble diagnostics toggle focus=false filter.buf=0", desc = "Diagnostic window (current buffer)", @@ -119,22 +119,9 @@ return { cmd = ":PackageInfoUpdate", desc = "Update package.json dependency", }, - { - cmd = ":CoAuthor", - desc = "Add Git CoAuthor", - }, - { - cmd = ":TailwindConcealToggle", - desc = "Toggle conceal tailwind classes", - }, { cmd = ":OutputPanel", desc = "Toggle LSP Output Panel" - }, - { - cmd = ":KeyAnalyzer", - desc = - "Show diagram of mapped keys under the first parameter key" } }) diff --git a/lua/plugins/diffview.lua b/lua/plugins/diffview.lua index ca4dc2c..e59c467 100644 --- a/lua/plugins/diffview.lua +++ b/lua/plugins/diffview.lua @@ -6,12 +6,15 @@ return { ["q"] = "DiffviewClose", }, file_panel = { - [""] = "DiffviewOpenSelected", + -- [""] = "DiffviewOpenSelected", ["q"] = "DiffviewClose", }, file_history_panel = { ["q"] = "DiffviewClose", }, }, - } + }, + init = function() + vim.opt.fillchars:append { diff = "╱" } + end } diff --git a/lua/plugins/key-analyzer.nvim.lua b/lua/plugins/key-analyzer.nvim.lua deleted file mode 100644 index d152603..0000000 --- a/lua/plugins/key-analyzer.nvim.lua +++ /dev/null @@ -1,5 +0,0 @@ -return { - "meznaric/key-analyzer.nvim", - - opts = {} -} diff --git a/lua/plugins/lsp-lens.nvim.lua b/lua/plugins/lsp-lens.nvim.lua index 723341b..024ce1d 100644 --- a/lua/plugins/lsp-lens.nvim.lua +++ b/lua/plugins/lsp-lens.nvim.lua @@ -1,5 +1,20 @@ return { 'VidocqH/lsp-lens.nvim', - opts = {} + opts = { + sections = { + definition = function(count) + return "󰀫 Definitions: " .. count + end, + references = function(count) + return "󰈇 References: " .. count + end, + implements = function(count) + return " Implements: " .. count + end, + git_authors = function(latest_author, count) + return " " .. latest_author .. (count - 1 == 0 and "" or (" + " .. count - 1)) + end, + } + } } diff --git a/lua/plugins/lsp.lua b/lua/plugins/lsp.lua index ddff3eb..0061184 100644 --- a/lua/plugins/lsp.lua +++ b/lua/plugins/lsp.lua @@ -55,10 +55,15 @@ return { "neovim/nvim-lspconfig", config = function() local lspconfig = require('lspconfig') + local capabilities = vim.lsp.protocol.make_client_capabilities() + capabilities.textDocument.foldingRange = { + dynamicRegistration = false, + lineFoldingOnly = true + } for _, v in ipairs(vim.api.nvim_get_runtime_file('lua/lsp/*', true)) do local name = vim.fn.fnamemodify(v, ':t:r') local cfg = require("lsp/" .. name) - lspconfig[name].setup(cfg) + lspconfig[name].setup(vim.tbl_deep_extend("force", cfg, { capabilities })) end end }, @@ -70,8 +75,8 @@ return { "lua-language-server", "vtsls", "ruff", "mypy", "black", "pyright", "tailwindcss-language-server", "eslint-lsp", "lemminx", "gopls", "prettierd", "dotenv-linter", - "editorconfig-checker", "proselint", "rust-analyzer", "taplo", - "json-lsp" + "editorconfig-checker", "rust-analyzer", "taplo", + "json-lsp", "harper-ls", "proselint", "alex" } }, config = function(_, opts) @@ -101,7 +106,8 @@ return { null_ls.builtins.diagnostics.dotenv_linter, null_ls.builtins.diagnostics.editorconfig_checker, - null_ls.builtins.diagnostics.proselint + null_ls.builtins.diagnostics.proselint, + null_ls.builtins.diagnostics.alex }, }) end diff --git a/lua/plugins/nvim-ufo.lua b/lua/plugins/nvim-ufo.lua new file mode 100644 index 0000000..cff389d --- /dev/null +++ b/lua/plugins/nvim-ufo.lua @@ -0,0 +1,6 @@ +return { + 'kevinhwang91/nvim-ufo', + dependencies = { 'kevinhwang91/promise-async' }, + + opts = {} +} diff --git a/lua/plugins/package-info.nvim.lua b/lua/plugins/package-info.nvim.lua new file mode 100644 index 0000000..b8e6621 --- /dev/null +++ b/lua/plugins/package-info.nvim.lua @@ -0,0 +1,5 @@ +return { + "vuki656/package-info.nvim", + dependencies = { "MunifTanjim/nui.nvim" }, + opts = {} +} diff --git a/lua/plugins/snacks.nvim.lua b/lua/plugins/snacks.nvim.lua index d0e10a6..40210be 100644 --- a/lua/plugins/snacks.nvim.lua +++ b/lua/plugins/snacks.nvim.lua @@ -6,8 +6,16 @@ return { { opts = { notifier = { enabled = true }, terminal = { enabled = true }, - indent = { enabled = true, only_scope = true, only_current = false }, + indent = { + enabled = true, + only_scope = true, + only_current = false, + chunk = { + enabled = true + } + }, git = { enabled = true }, + gitbrowse = { enabled = true }, bufdelete = { enabled = true }, picker = { enabled = true } }, diff --git a/lua/plugins/tokyonight.lua b/lua/plugins/tokyonight.lua index f4f2ad7..8556e24 100644 --- a/lua/plugins/tokyonight.lua +++ b/lua/plugins/tokyonight.lua @@ -4,7 +4,14 @@ return { priority = 1000, init = function() - require("tokyonight").setup({ transparent = true, dim_inactive = true, lualine_bold = true }) - vim.cmd("colo tokyonight-night") - end + require("tokyonight").setup({ + transparent = false, + dim_inactive = true, + on_highlights = function(highlights) + -- Make delete sections in diff look better + highlights["DiffDelete"]["fg"] = "#3e415b" + end, + }) + vim.cmd.colorscheme "tokyonight-night" + end, } diff --git a/lua/plugins/treesitter.lua b/lua/plugins/treesitter.lua index caf21ff..ae5caa1 100644 --- a/lua/plugins/treesitter.lua +++ b/lua/plugins/treesitter.lua @@ -83,7 +83,7 @@ return { -- * selection_mode: eg 'v' -- and should return true or false include_surrounding_whitespace = true, - }, + } }, }) end diff --git a/lua/plugins/vim-fugitive.lua b/lua/plugins/vim-fugitive.lua deleted file mode 100644 index a292d53..0000000 --- a/lua/plugins/vim-fugitive.lua +++ /dev/null @@ -1,4 +0,0 @@ -return {} --- return { --- "tpope/vim-fugitive" --- } diff --git a/lua/plugins/which-key.nvim.lua b/lua/plugins/which-key.nvim.lua index 606dbd6..019c9a6 100644 --- a/lua/plugins/which-key.nvim.lua +++ b/lua/plugins/which-key.nvim.lua @@ -40,13 +40,49 @@ return { desc = "Project search" }, - -- { - -- "ds", - -- function() - -- require("utils.telescope").search_dotfiles() - -- end, - -- desc = "Search dot files 🔭", - -- }, + { + "ds", + function() + local function pick_cmd_result(picker_opts) + local git_root = Snacks.git.get_root() + local function finder(opts, ctx) + return require("snacks.picker.source.proc").proc({ + opts, + { + cmd = picker_opts.cmd, + args = picker_opts.args, + transform = function(item) + -- item.cwd = picker_opts.cwd or git_root + item.file = item.text + end, + }, + }, ctx) + end + + Snacks.picker.pick { + source = picker_opts.name, + finder = finder, + preview = picker_opts.preview, + title = picker_opts.title, + } + end + + local custom_pickers = {} + + function custom_pickers.nvim() + pick_cmd_result { + cmd = "fd", + args = { ".", vim.fn.stdpath('config'), "--type", "f" }, + name = "nvim config", + title = "Nvim config", + preview = "file", + } + end + + custom_pickers.nvim() + end, + desc = "Search dot files 🔭", + }, { "K", "Lspsaga hover_doc", desc = "Show documentation" }, { "", "Lspsaga hover_doc ++keep", desc = "Show documentation (keep)" }, @@ -138,6 +174,45 @@ return { desc = "Git diff current file", }, + { + "T", + group = "Tabs" + }, + { + "TT", + "tabs", + desc = "Tabs list" + }, + { + "Tn", + "tabnext", + desc = "Next Tab" + }, + { + "Tp", + "tabprevious", + desc = "Previous Tab" + }, + { + "Tf", + "tabfirst", + desc = "First Tab" + }, + { + "Tl", + "tablast", + desc = "Last Tab" + }, + { + "TN", + "tabnew", + desc = "New Tab" + }, + { + "Tc", + "tabclose", + desc = "Close Tab" + }, { "»", "]",