diff --git a/gitignore b/gitignore index 296a2de..6e29b87 100644 --- a/gitignore +++ b/gitignore @@ -10,4 +10,4 @@ .bundle/ m~ tags - +.worktrees diff --git a/nvim/after/plugin/git-worktree.lua b/nvim/after/plugin/git-worktree.lua new file mode 100644 index 0000000..0a338a8 --- /dev/null +++ b/nvim/after/plugin/git-worktree.lua @@ -0,0 +1,9 @@ +-- git-worktree.nvim – https://github.com/ThePrimeagen/git-worktree.nvim +local cmp_status_ok, worktree = pcall(require, "git-worktree") +if not cmp_status_ok then + return +end + +vim.g.git_worktree_log_level = "error" + +worktree.setup() diff --git a/nvim/after/plugin/project.lua b/nvim/after/plugin/project.lua index 16ec963..6e852c0 100644 --- a/nvim/after/plugin/project.lua +++ b/nvim/after/plugin/project.lua @@ -13,13 +13,10 @@ project.setup({ }, patterns = { ".git", - "_darcs", - ".hg", - ".bzr", - ".svn", "Makefile", ".gitignore", "package.json", + "!node_modules", }, show_hidden = false, silent_chdir = true, diff --git a/nvim/after/plugin/telescope.lua b/nvim/after/plugin/telescope.lua index eebdefb..af2bab2 100644 --- a/nvim/after/plugin/telescope.lua +++ b/nvim/after/plugin/telescope.lua @@ -15,11 +15,12 @@ telescope.load_extension("node_modules") telescope.load_extension("file_browser") telescope.load_extension("frecency") telescope.load_extension("lsp_handlers") -telescope.load_extension("fzf") +telescope.load_extension("fzy_native") telescope.load_extension("harpoon") telescope.load_extension("projects") telescope.load_extension("heading") telescope.load_extension("gh") +telescope.load_extension("git_worktree") -- Keymaps keymap("n", "", [[Telescope find_files]], opts) @@ -34,6 +35,8 @@ keymap("n", "fa", [[Telescope find_files hidden=true]], opts) keymap("n", "fb", [[Telescope file_browser]], opts) keymap("n", "gb", [[Telescope git_branches]], opts) keymap("n", "gs", [[Telescope git_status]], opts) +keymap("n", "gwc", [[Telescope git_worktree create_git_worktree]], opts) +keymap("n", "gww", [[Telescope git_worktree git_worktrees]], opts) keymap("n", "ht", [[Telescope help_tags]], opts) keymap("n", "km", [[Telescope keymaps]], opts) keymap("n", "m", [[Telescope marks]], opts) @@ -129,6 +132,12 @@ telescope.setup({ }, }, extensions = { + fzy_native = { + fuzzy = true, + override_generic_sorter = true, + override_file_sorter = true, + case_mode = "smart_case", + }, fzf = { fuzzy = true, override_generic_sorter = true, diff --git a/nvim/lua/kogakure/plugins.lua b/nvim/lua/kogakure/plugins.lua index 4c2e8d2..1e0d1fc 100644 --- a/nvim/lua/kogakure/plugins.lua +++ b/nvim/lua/kogakure/plugins.lua @@ -92,7 +92,7 @@ return packer.startup(function(use) use("nvim-telescope/telescope-node-modules.nvim") -- node_modules packages use("gbrlsnchs/telescope-lsp-handlers.nvim") -- LSP handlers use("crispgm/telescope-heading.nvim") -- Jump between headings - use({ "nvim-telescope/telescope-fzf-native.nvim", run = "make" }) + use("nvim-telescope/telescope-fzy-native.nvim") -- FZY style sorter that is compiled use({ "nvim-telescope/telescope-frecency.nvim", requires = { "tami5/sqlite.lua" } }) -- Frequency and recency use("nvim-telescope/telescope-github.nvim") -- GitHub CLI use("nvim-telescope/telescope-symbols.nvim") -- Symbols @@ -105,6 +105,7 @@ return packer.startup(function(use) -- File/Window Management use("ThePrimeagen/harpoon") -- Getting you where you want + use("ThePrimeagen/git-worktree.nvim") -- Git Worktree use("lewis6991/gitsigns.nvim") -- Git decorations use("kyazdani42/nvim-web-devicons") -- Icons and colors for file types use("kyazdani42/nvim-tree.lua") -- A File Explorer diff --git a/zshrc b/zshrc index 2ce722b..602bc9a 100644 --- a/zshrc +++ b/zshrc @@ -391,6 +391,10 @@ alias gu='git up' alias gw='git whatchanged' alias gwp='git whatchanged -p' alias lg='lazygit' +alias gw='git worktree' +alias gwl='git worktree list' +alias gwa='git worktree add' # +alias gwr='git worktree remove' # # Vim alias v='vim'