diff --git a/.config/nvim/after/plugin/fugitive.lua b/.config/nvim/after/plugin/fugitive.lua index a52437a1..e448b76e 100644 --- a/.config/nvim/after/plugin/fugitive.lua +++ b/.config/nvim/after/plugin/fugitive.lua @@ -10,6 +10,7 @@ vim.keymap.set("n", "gfo", ":G fetch origin") vim.keymap.set("n", "gd", ":Gdiff") vim.keymap.set("n", "ge", ":Gedit") vim.keymap.set("n", "gr", ":Gread") +vim.keymap.set("n", "grb", ":G rebase -i") vim.keymap.set("n", "gw", ":Gwrite") vim.keymap.set("n", "gl", ":silent! Glog:bot copen") vim.keymap.set("n", "gp", ":Ggrep") diff --git a/.config/nvim/after/plugin/git-worktree.lua b/.config/nvim/after/plugin/git-worktree.lua new file mode 100644 index 00000000..9e70aa36 --- /dev/null +++ b/.config/nvim/after/plugin/git-worktree.lua @@ -0,0 +1,22 @@ +local Worktree = require("git-worktree") + +-- op = Operations.Switch, Operations.Create, Operations.Delete +-- metadata = table of useful values (structure dependent on op) +-- Switch +-- path = path you switched to +-- prev_path = previous worktree path +-- Create +-- path = path where worktree created +-- branch = branch name +-- upstream = upstream remote name +-- Delete +-- path = path where worktree deleted + +Worktree.on_tree_change(function(op, metadata) + if op == Worktree.Operations.Switch then + print("Switched from " .. metadata.prev_path .. " to " .. metadata.path) + end +end) + +vim.keymap.set("n", "bw", require("telescope").extensions.git_worktree.git_worktrees, { desc = "[B]rowse Git Worktrees" }) +vim.keymap.set("n", "cw", require("telescope").extensions.git_worktree.create_git_worktree, { desc = "[C]reate Git [W]orktree" }) diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua index 057170e2..13c3766f 100644 --- a/.config/nvim/init.lua +++ b/.config/nvim/init.lua @@ -299,23 +299,24 @@ require('telescope').setup { -- Enable telescope fzf native, if installed pcall(require('telescope').load_extension, 'fzf') +pcall(require('telescope').load_extension, 'git_worktree') -- See `:help telescope.builtin` vim.keymap.set('n', '?', require('telescope.builtin').oldfiles, { desc = '[?] Find recently opened files' }) -vim.keymap.set('n', '', require('telescope.builtin').buffers, { desc = '[ ] Find existing buffers' }) -vim.keymap.set('n', '/', function() - -- You can pass additional configuration to telescope to change theme, layout, etc. - require('telescope.builtin').current_buffer_fuzzy_find(require('telescope.themes').get_dropdown { - winblend = 10, - previewer = false, - }) -end, { desc = '[/] Fuzzily search in current buffer' }) +-- vim.keymap.set('n', '', require('telescope.builtin').buffers, { desc = '[ ] Find existing buffers' }) +-- vim.keymap.set('n', '/', function() +-- -- You can pass additional configuration to telescope to change theme, layout, etc. +-- require('telescope.builtin').current_buffer_fuzzy_find(require('telescope.themes').get_dropdown { +-- winblend = 10, +-- previewer = false, +-- }) +-- end, { desc = '[/] Fuzzily search in current buffer' }) -vim.keymap.set('n', 'gf', require('telescope.builtin').git_files, { desc = 'Search [G]it [F]iles' }) +vim.keymap.set('n', '', require('telescope.builtin').git_files, { desc = 'Search [G]it [F]iles' }) vim.keymap.set('n', 'sf', require('telescope.builtin').find_files, { desc = '[S]earch [F]iles' }) vim.keymap.set('n', 'sh', require('telescope.builtin').help_tags, { desc = '[S]earch [H]elp' }) vim.keymap.set('n', 'sw', require('telescope.builtin').grep_string, { desc = '[S]earch current [W]ord' }) -vim.keymap.set('n', 'sg', require('telescope.builtin').live_grep, { desc = '[S]earch by [G]rep' }) +vim.keymap.set('n', '/', require('telescope.builtin').live_grep, { desc = '[S]earch by [G]rep' }) vim.keymap.set('n', 'sd', require('telescope.builtin').diagnostics, { desc = '[S]earch [D]iagnostics' }) vim.keymap.set('n', 'sr', require('telescope.builtin').resume, { desc = '[S]earch [R]esume' }) diff --git a/.config/nvim/lua/custom/plugins.lua b/.config/nvim/lua/custom/plugins.lua index cd467962..98ba2bac 100644 --- a/.config/nvim/lua/custom/plugins.lua +++ b/.config/nvim/lua/custom/plugins.lua @@ -9,6 +9,9 @@ return { require("refactoring").setup({}) end, }, + { + "ThePrimeagen/git-worktree.nvim", + }, { "folke/tokyonight.nvim", lazy = false, -- make sure we load this during startup if it is your main colorscheme diff --git a/.config/nvim/lua/rahcodes/remap.lua b/.config/nvim/lua/rahcodes/remap.lua index 027dd5dc..59a904e6 100644 --- a/.config/nvim/lua/rahcodes/remap.lua +++ b/.config/nvim/lua/rahcodes/remap.lua @@ -58,8 +58,6 @@ nmap("", ":wa") -- See `:help telescope.builtin` vim.keymap.set("n", "m", require("telescope.builtin").oldfiles, { desc = "[?] Find recently opened files" }) -vim.keymap.set("n", "", require("telescope.builtin").git_files, { desc = "[ ] Find git files" }) - vim.keymap.set("n", "gb", require("telescope.builtin").git_branches, { desc = "[G]it [B]ranches" }) vim.keymap.set("n", "sb", require("telescope.builtin").buffers, { desc = "[ ] Find existing buffers" }) diff --git a/.gitconfig b/.gitconfig index 38ffd9f8..70b9eb4d 100644 --- a/.gitconfig +++ b/.gitconfig @@ -6,5 +6,7 @@ co = checkout ph = push -u origin HEAD ff = pull --ff-only + stashgrep = "!f() { for i in `git stash list --format=\"%gd\"` ; \ + do git stash show -p $i | grep -H --label=\"$i\" \"$@\" ; done ; }; f" [core] excludesFile = ~/.config/git/ignore diff --git a/.tmux.conf b/.tmux.conf index 546a3599..ee74d5de 100644 --- a/.tmux.conf +++ b/.tmux.conf @@ -24,6 +24,7 @@ bind-key -n C-S-Right swap-window -t +1 # forget the find window. That is for chumps bind-key -r f run-shell "tmux neww ~/.local/bin/tmux-sessionizer" bind-key -r i run-shell "tmux neww tmux-cht.sh" +bind-key -r v run-shell "tmux neww nvim ." ## COLORSCHEME: gruvbox dark (medium) diff --git a/.tool-versions b/.tool-versions index 4508388e..7fbb2331 100644 --- a/.tool-versions +++ b/.tool-versions @@ -1,3 +1,3 @@ -nodejs 16.18.1 kubectl 1.23.6 ruby 2.7.6 +nodejs 18.18.1 diff --git a/.zshrc b/.zshrc index 215dc8f5..9a83dd81 100644 --- a/.zshrc +++ b/.zshrc @@ -56,3 +56,4 @@ fi autoload -Uz compinit && compinit [[ /usr/local/bin/kubectl ]] && source <(kubectl completion zsh) +[[ $commands[kubectl] ]] && source <(kubectl completion zsh)