diff --git a/lua/config/keys.lua b/lua/config/keys.lua index ab74f60..091d934 100644 --- a/lua/config/keys.lua +++ b/lua/config/keys.lua @@ -12,6 +12,70 @@ return { { "h", group = "[H]arpoon" }, { "x", group = "[X] Trouble" }, }, + gitsigns = { + { + "gs", + function() + require("gitsigns").stage_hunk() + end, + desc = "[G]it [S]tage Hunk", + mode = { "n", "v" }, + }, + { + "gr", + function() + require("gitsigns").reset_hunk() + end, + desc = "[G]it [R]eset Hunk", + mode = { "n", "v" }, + }, + { + "gp", + function() + require("gitsigns").preview_hunk() + end, + desc = "[G]it [P]review Hunk", + mode = "n", + }, + { + "gb", + function() + package.loaded.gitsigns.blame_line() + end, + desc = "[G]it [B]lame Line", + mode = "n", + }, + { + "]c", + function() + if vim.wo.diff then + return "]c" + end + vim.schedule(function() + require("gitsigns").next_hunk() + end) + return "" + end, + desc = "Next Hunk", + mode = "n", + expr = true, + }, + { + "[c", + function() + if vim.wo.diff then + return "[c" + end + vim.schedule(function() + require("gitsigns").prev_hunk() + end) + return "" + end, + desc = "Previous Hunk", + mode = "n", + expr = true, + }, + }, harpoon = { { "ha", @@ -151,10 +215,10 @@ return { { "te", vim.cmd.Oil, desc = "[T]ree [E]dit", mode = "n" }, }, overseer = { - { "ob", vim.cmd.OverseerBuild, desc = "[O]verseer [B]uild", mode = "n" }, + { "ob", vim.cmd.OverseerBuild, desc = "[O]verseer [B]uild", mode = "n" }, { "oc", vim.cmd.OverseerRunCmd, desc = "[O]verseer Run [C]ommand", mode = "n" }, - { "or", vim.cmd.OverseerRun, desc = "[O]verseer [R]un", mode = "n" }, - { "ot", vim.cmd.OverseerToggle, desc = "[O]verseer [T]oggle", mode = "n" }, + { "or", vim.cmd.OverseerRun, desc = "[O]verseer [R]un", mode = "n" }, + { "ot", vim.cmd.OverseerToggle, desc = "[O]verseer [T]oggle", mode = "n" }, }, precognition = { { @@ -298,7 +362,7 @@ return { "Trouble todo toggle filter = {tag = {TODO,FIX,FIXME}}", desc = "Todo/Fix/Fixme", }, - { "st", "TodoTelescope", desc = "Todo" }, + { "st", "TodoTelescope", desc = "Todo" }, { "sT", "TodoTelescope keywords=TODO,FIX,FIXME", @@ -312,14 +376,14 @@ return { "Trouble diagnostics toggle filter.buf=0", desc = "Buffer Diagnostics", }, - { "cs", "Trouble symbols toggle", desc = "Symbols" }, + { "cs", "Trouble symbols toggle", desc = "Symbols" }, { "cS", "Trouble lsp toggle", desc = "LSP references/definitions/... (Trouble)", }, { "xL", "Trouble loclist toggle", desc = "Location List" }, - { "xQ", "Trouble qflist toggle", desc = "Quickfix List" }, + { "xQ", "Trouble qflist toggle", desc = "Quickfix List" }, { "[q", function() diff --git a/lua/plugins/ui.lua b/lua/plugins/ui.lua index d668068..e40ff8a 100644 --- a/lua/plugins/ui.lua +++ b/lua/plugins/ui.lua @@ -1,5 +1,5 @@ return { -- UI components and other visual elements are declared here - { -- Theme + { -- Theme "folke/tokyonight.nvim", lazy = false, priority = 1000, @@ -60,26 +60,6 @@ return { -- UI components and other visual elements are declared here require("window-picker").setup() end, }, - { -- Adds git related signs to the gutter, as well as utilities for managing changes - "mhinz/vim-signify", - event = "VimEnter", - config = function() - -- defer config for 5ms. Old vim plugins can be janky in neovim - vim.defer_fn(function() - vim.g.signify_sign_show_count = 0 - vim.g.signify_sign_add = "┃" - vim.g.signify_sign_change = "┃" - vim.g.signify_sign_delete = "_" - vim.g.signify_sign_delete_first_line = "‾" - vim.g.signify_sign_change_delete = "~" - vim.cmd.highlight({ "SignifySignAdd", "guifg=#449dab" }) - vim.cmd.highlight({ "SignifySignChange", "guifg=#6183bb" }) - vim.cmd.highlight({ "SignifySignDelete", "guifg=#914c54" }) - vim.cmd.highlight({ "link", "SignifySignDeleteFirstLine", "SignifySignDelete" }) - vim.cmd.highlight({ "link", "SignifySignChangeDelete", "SignifySignChange" }) - end, 5) - end, - }, -- Modular, configurable status bar { "nvim-lualine/lualine.nvim", diff --git a/lua/plugins/utils.lua b/lua/plugins/utils.lua index bc3effe..fd77fe1 100644 --- a/lua/plugins/utils.lua +++ b/lua/plugins/utils.lua @@ -1,6 +1,6 @@ return { -- General programming utilities go here -- Tools for configuration and plugin development - { "folke/neoconf.nvim", cmd = "Neoconf" }, + { "folke/neoconf.nvim", cmd = "Neoconf" }, { "folke/neodev.nvim", opts = { @@ -8,7 +8,7 @@ return { -- General programming utilities go here if root_dir:find( os.getenv("XDG_CONFIG_HOME") - .. "/nix/home-manager/core/dotfiles/dot_config/nvim/", + .. "/nix/home-manager/core/dotfiles/dot_config/nvim/", 1, true ) == 1 @@ -40,9 +40,24 @@ return { -- General programming utilities go here dependencies = { "nvim-lua/plenary.nvim" }, keys = require("config.keys").todo_comments, }, - "tpope/vim-fugitive", -- Also want to add fugitive, since it's apparently a great git plugin + { + "lewis6991/gitsigns.nvim", + event = "VimEnter", + dependencies = { "nvim-lua/plenary.nvim" }, + config = function() + require("gitsigns").setup({ + signs = { + add = { text = "┃" }, + change = { text = "┃" }, + delete = { text = "_" }, + topdelete = { text = "‾" }, + changedelete = { text = "~" }, + }, + }) + end, + }, "jlfwong/vim-mercenary", -- Mercenary is the mercurial equivalent of fugitive - { -- Oil is a very nice buffer-based filetree editor + { -- Oil is a very nice buffer-based filetree editor "stevearc/oil.nvim", event = "VeryLazy", opts = {},