Ported config from nixvim.
Made some changes to taste along the way, though there are some still to come.
This commit is contained in:
		
							parent
							
								
									9a78fd2d53
								
							
						
					
					
						commit
						3bd72ab98f
					
				
					 13 changed files with 601 additions and 740 deletions
				
			
		| 
						 | 
				
			
			@ -6,20 +6,21 @@ end
 | 
			
		|||
return {
 | 
			
		||||
  {
 | 
			
		||||
    "cmp-cmdline",
 | 
			
		||||
    for_cat = "general.blink",
 | 
			
		||||
    for_cat = "completion",
 | 
			
		||||
    on_plugin = { "blink.cmp" },
 | 
			
		||||
    load = load_w_after,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "blink.compat",
 | 
			
		||||
    for_cat = "general.blink",
 | 
			
		||||
    for_cat = "completion",
 | 
			
		||||
    dep_of = { "cmp-cmdline" },
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "luasnip",
 | 
			
		||||
    for_cat = "general.blink",
 | 
			
		||||
    for_cat = "completion",
 | 
			
		||||
    dep_of = { "blink.cmp" },
 | 
			
		||||
    after = function (_)
 | 
			
		||||
    after = function(_)
 | 
			
		||||
      vim.cmd.packadd("friendly-snippets")
 | 
			
		||||
      local luasnip = require 'luasnip'
 | 
			
		||||
      require('luasnip.loaders.from_vscode').lazy_load()
 | 
			
		||||
      luasnip.config.setup {}
 | 
			
		||||
| 
						 | 
				
			
			@ -27,31 +28,39 @@ return {
 | 
			
		|||
      local ls = require('luasnip')
 | 
			
		||||
 | 
			
		||||
      vim.keymap.set({ "i", "s" }, "<M-n>", function()
 | 
			
		||||
          if ls.choice_active() then
 | 
			
		||||
              ls.change_choice(1)
 | 
			
		||||
          end
 | 
			
		||||
        if ls.choice_active() then
 | 
			
		||||
          ls.change_choice(1)
 | 
			
		||||
        end
 | 
			
		||||
      end)
 | 
			
		||||
    end,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "colorful-menu.nvim",
 | 
			
		||||
    for_cat = "general.blink",
 | 
			
		||||
    for_cat = "completion",
 | 
			
		||||
    on_plugin = { "blink.cmp" },
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "blink.cmp",
 | 
			
		||||
    for_cat = "general.blink",
 | 
			
		||||
    for_cat = "completion",
 | 
			
		||||
    event = "DeferredUIEnter",
 | 
			
		||||
    after = function (_)
 | 
			
		||||
    after = function(_)
 | 
			
		||||
      require("blink.cmp").setup({
 | 
			
		||||
        -- 'default' (recommended) for mappings similar to built-in completions (C-y to accept)
 | 
			
		||||
        -- See :h blink-cmp-config-keymap for configuring keymaps
 | 
			
		||||
        keymap =  {
 | 
			
		||||
          preset = 'default',
 | 
			
		||||
        keymap = {
 | 
			
		||||
          preset = "enter",
 | 
			
		||||
          ["<Tab>"] = { "select_next", "fallback" },
 | 
			
		||||
          ["<S-Tab>"] = { "select_prev", "fallback" },
 | 
			
		||||
        },
 | 
			
		||||
        cmdline = {
 | 
			
		||||
          enabled = true,
 | 
			
		||||
          completion = {
 | 
			
		||||
            list = {
 | 
			
		||||
              selection = {
 | 
			
		||||
                preselect = false,
 | 
			
		||||
                -- auto_insert = false,
 | 
			
		||||
              },
 | 
			
		||||
            },
 | 
			
		||||
            menu = {
 | 
			
		||||
              auto_show = true,
 | 
			
		||||
            },
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,6 @@
 | 
			
		|||
local colorschemeName = nixCats('colorscheme')
 | 
			
		||||
if not require('nixCatsUtils').isNixCats then
 | 
			
		||||
  colorschemeName = 'onedark'
 | 
			
		||||
  colorschemeName = 'gruvbox'
 | 
			
		||||
end
 | 
			
		||||
-- Could I lazy load on colorscheme with lze?
 | 
			
		||||
-- sure. But I was going to call vim.cmd.colorscheme() during startup anyway
 | 
			
		||||
| 
						 | 
				
			
			@ -16,12 +16,12 @@ if ok then
 | 
			
		|||
  })
 | 
			
		||||
  vim.notify = notify
 | 
			
		||||
  vim.keymap.set("n", "<Esc>", function()
 | 
			
		||||
      notify.dismiss({ silent = true, })
 | 
			
		||||
    notify.dismiss({ silent = true, })
 | 
			
		||||
  end, { desc = "dismiss notify popup and clear hlsearch" })
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
-- NOTE: you can check if you included the category with the thing wherever you want.
 | 
			
		||||
if nixCats('general.extra') then
 | 
			
		||||
if nixCats('always') then
 | 
			
		||||
  -- I didnt want to bother with lazy loading this.
 | 
			
		||||
  -- I could put it in opt and put it in a spec anyway
 | 
			
		||||
  -- and then not set any handlers and it would load at startup,
 | 
			
		||||
| 
						 | 
				
			
			@ -74,56 +74,45 @@ require('lze').load {
 | 
			
		|||
    -- it is defined in luaUtils template in lua/nixCatsUtils/lzUtils.lua
 | 
			
		||||
    -- you could replace this with enabled = nixCats('cat.name') == true
 | 
			
		||||
    -- if you didnt care to set a different default for when not using nix than the default you already set
 | 
			
		||||
    for_cat = 'general.markdown',
 | 
			
		||||
    for_cat = 'markdown',
 | 
			
		||||
    cmd = { "MarkdownPreview", "MarkdownPreviewStop", "MarkdownPreviewToggle", },
 | 
			
		||||
    ft = "markdown",
 | 
			
		||||
    keys = {
 | 
			
		||||
      {"<leader>mp", "<cmd>MarkdownPreview <CR>", mode = {"n"}, noremap = true, desc = "markdown preview"},
 | 
			
		||||
      {"<leader>ms", "<cmd>MarkdownPreviewStop <CR>", mode = {"n"}, noremap = true, desc = "markdown preview stop"},
 | 
			
		||||
      {"<leader>mt", "<cmd>MarkdownPreviewToggle <CR>", mode = {"n"}, noremap = true, desc = "markdown preview toggle"},
 | 
			
		||||
      { "<leader>mp", "<cmd>MarkdownPreview <CR>",       mode = { "n" }, noremap = true, desc = "markdown preview" },
 | 
			
		||||
      { "<leader>ms", "<cmd>MarkdownPreviewStop <CR>",   mode = { "n" }, noremap = true, desc = "markdown preview stop" },
 | 
			
		||||
      { "<leader>mt", "<cmd>MarkdownPreviewToggle <CR>", mode = { "n" }, noremap = true, desc = "markdown preview toggle" },
 | 
			
		||||
    },
 | 
			
		||||
    before = function(plugin)
 | 
			
		||||
      vim.g.mkdp_auto_close = 0
 | 
			
		||||
    end,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "undotree",
 | 
			
		||||
    for_cat = 'general.extra',
 | 
			
		||||
    cmd = { "UndotreeToggle", "UndotreeHide", "UndotreeShow", "UndotreeFocus", "UndotreePersistUndo", },
 | 
			
		||||
    keys = { { "<leader>U", "<cmd>UndotreeToggle<CR>", mode = { "n" }, desc = "Undo Tree" }, },
 | 
			
		||||
    before = function(_)
 | 
			
		||||
      vim.g.undotree_WindowLayout = 1
 | 
			
		||||
      vim.g.undotree_SplitWidth = 40
 | 
			
		||||
    end,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "comment.nvim",
 | 
			
		||||
    for_cat = 'general.extra',
 | 
			
		||||
    "leap.nvim",
 | 
			
		||||
    for_cat = 'always',
 | 
			
		||||
    event = "DeferredUIEnter",
 | 
			
		||||
    after = function(plugin)
 | 
			
		||||
      require('Comment').setup()
 | 
			
		||||
    end,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "indent-blankline.nvim",
 | 
			
		||||
    for_cat = 'general.extra',
 | 
			
		||||
    event = "DeferredUIEnter",
 | 
			
		||||
    after = function(plugin)
 | 
			
		||||
      require("ibl").setup()
 | 
			
		||||
      require('leap').set_default_mappings()
 | 
			
		||||
    end,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "nvim-surround",
 | 
			
		||||
    for_cat = 'general.always',
 | 
			
		||||
    for_cat = 'always',
 | 
			
		||||
    event = "DeferredUIEnter",
 | 
			
		||||
    -- keys = "",
 | 
			
		||||
    after = function(plugin)
 | 
			
		||||
      require('nvim-surround').setup()
 | 
			
		||||
    end,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "marks.nvim",
 | 
			
		||||
    for_cat = "always",
 | 
			
		||||
    after = function(plugin)
 | 
			
		||||
      require('marks').setup({})
 | 
			
		||||
    end
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "vim-startuptime",
 | 
			
		||||
    for_cat = 'general.extra',
 | 
			
		||||
    for_cat = 'extra',
 | 
			
		||||
    cmd = { "StartupTime" },
 | 
			
		||||
    before = function(_)
 | 
			
		||||
      vim.g.startuptime_event_width = 0
 | 
			
		||||
| 
						 | 
				
			
			@ -133,77 +122,92 @@ require('lze').load {
 | 
			
		|||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "fidget.nvim",
 | 
			
		||||
    for_cat = 'general.extra',
 | 
			
		||||
    for_cat = 'always',
 | 
			
		||||
    event = "DeferredUIEnter",
 | 
			
		||||
    -- keys = "",
 | 
			
		||||
    after = function(plugin)
 | 
			
		||||
      require('fidget').setup({})
 | 
			
		||||
    end,
 | 
			
		||||
  },
 | 
			
		||||
  -- {
 | 
			
		||||
  --   "hlargs",
 | 
			
		||||
  --   for_cat = 'general.extra',
 | 
			
		||||
  --   event = "DeferredUIEnter",
 | 
			
		||||
  --   -- keys = "",
 | 
			
		||||
  --   dep_of = { "nvim-lspconfig" },
 | 
			
		||||
  --   after = function(plugin)
 | 
			
		||||
  --     require('hlargs').setup {
 | 
			
		||||
  --       color = '#32a88f',
 | 
			
		||||
  --     }
 | 
			
		||||
  --     vim.cmd([[hi clear @lsp.type.parameter]])
 | 
			
		||||
  --     vim.cmd([[hi link @lsp.type.parameter Hlargs]])
 | 
			
		||||
  --   end,
 | 
			
		||||
  -- },
 | 
			
		||||
  {
 | 
			
		||||
    "toggleterm.nvim",
 | 
			
		||||
    for_cat = "always",
 | 
			
		||||
    after = function(plugin)
 | 
			
		||||
      require("toggleterm").setup({
 | 
			
		||||
        direction = "horizontal",
 | 
			
		||||
        insert_mappings = false,
 | 
			
		||||
        open_mapping = [[<c-\>]],
 | 
			
		||||
        terminal_mappings = false,
 | 
			
		||||
      })
 | 
			
		||||
 | 
			
		||||
      local Terminal = require("toggleterm.terminal").Terminal
 | 
			
		||||
      Floatingterm = Terminal:new({
 | 
			
		||||
        hidden = true,
 | 
			
		||||
        direction = "float",
 | 
			
		||||
      })
 | 
			
		||||
 | 
			
		||||
      vim.keymap.set(
 | 
			
		||||
        "n",
 | 
			
		||||
        "<leader>s",
 | 
			
		||||
        function()
 | 
			
		||||
          Floatingterm:toggle()
 | 
			
		||||
        end,
 | 
			
		||||
        { desc = "toggle [S]cratch terminal", }
 | 
			
		||||
      )
 | 
			
		||||
    end
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "lualine.nvim",
 | 
			
		||||
    for_cat = 'general.always',
 | 
			
		||||
    for_cat = 'always',
 | 
			
		||||
    -- cmd = { "" },
 | 
			
		||||
    event = "DeferredUIEnter",
 | 
			
		||||
    -- ft = "",
 | 
			
		||||
    -- keys = "",
 | 
			
		||||
    -- colorscheme = "",
 | 
			
		||||
    after = function (plugin)
 | 
			
		||||
 | 
			
		||||
    after = function(plugin)
 | 
			
		||||
      require('lualine').setup({
 | 
			
		||||
        options = {
 | 
			
		||||
          icons_enabled = false,
 | 
			
		||||
          theme = colorschemeName,
 | 
			
		||||
          component_separators = '|',
 | 
			
		||||
          section_separators = '',
 | 
			
		||||
        },
 | 
			
		||||
        sections = {
 | 
			
		||||
          lualine_c = {
 | 
			
		||||
            {
 | 
			
		||||
              'filename', path = 1, status = true,
 | 
			
		||||
            },
 | 
			
		||||
          },
 | 
			
		||||
          alwaysDivideMiddle = true,
 | 
			
		||||
          icons_enabled = true,
 | 
			
		||||
          component_separators = { left = '', right = '' },
 | 
			
		||||
          section_separators = { left = '', right = '' },
 | 
			
		||||
        },
 | 
			
		||||
        inactive_sections = {
 | 
			
		||||
          lualine_b = {
 | 
			
		||||
            {
 | 
			
		||||
              'filename', path = 3, status = true,
 | 
			
		||||
            },
 | 
			
		||||
          },
 | 
			
		||||
          lualine_x = {'filetype'},
 | 
			
		||||
          lualine_a = {},
 | 
			
		||||
          lualine_b = {},
 | 
			
		||||
          lualine_c = { "filename" },
 | 
			
		||||
          lualine_x = { "filetype" },
 | 
			
		||||
          lualine_y = {},
 | 
			
		||||
          lualine_z = {},
 | 
			
		||||
        },
 | 
			
		||||
        sections = {
 | 
			
		||||
          lualine_a = { "mode" },
 | 
			
		||||
          lualine_b = { "branch", "diff", "diagnostics" },
 | 
			
		||||
          lualine_c = { { "filename", path = 1 } },
 | 
			
		||||
          lualine_x = { "encoding", "fileformat", "filetype" },
 | 
			
		||||
          lualine_y = { "progress" },
 | 
			
		||||
          lualine_z = { "location" },
 | 
			
		||||
        },
 | 
			
		||||
        tabline = {
 | 
			
		||||
          lualine_a = { 'buffers' },
 | 
			
		||||
          -- if you use lualine-lsp-progress, I have mine here instead of fidget
 | 
			
		||||
          -- lualine_b = { 'lsp_progress', },
 | 
			
		||||
          lualine_z = { 'tabs' }
 | 
			
		||||
          lualine_a = { { "buffers", mode = 4 } },
 | 
			
		||||
          lualine_b = {},
 | 
			
		||||
          lualine_c = {},
 | 
			
		||||
          lualine_x = {},
 | 
			
		||||
          lualine_y = {},
 | 
			
		||||
          lualine_z = { { "tabs", mode = 2 } }
 | 
			
		||||
        },
 | 
			
		||||
      })
 | 
			
		||||
    end,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "gitsigns.nvim",
 | 
			
		||||
    for_cat = 'general.always',
 | 
			
		||||
    for_cat = 'always',
 | 
			
		||||
    event = "DeferredUIEnter",
 | 
			
		||||
    -- cmd = { "" },
 | 
			
		||||
    -- ft = "",
 | 
			
		||||
    -- keys = "",
 | 
			
		||||
    -- colorscheme = "",
 | 
			
		||||
    after = function (plugin)
 | 
			
		||||
    after = function(plugin)
 | 
			
		||||
      require('gitsigns').setup({
 | 
			
		||||
        -- See `:help gitsigns.txt`
 | 
			
		||||
        signs = {
 | 
			
		||||
| 
						 | 
				
			
			@ -281,35 +285,80 @@ require('lze').load {
 | 
			
		|||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "which-key.nvim",
 | 
			
		||||
    for_cat = 'general.extra',
 | 
			
		||||
    -- cmd = { "" },
 | 
			
		||||
    event = "DeferredUIEnter",
 | 
			
		||||
    -- ft = "",
 | 
			
		||||
    -- keys = "",
 | 
			
		||||
    -- colorscheme = "",
 | 
			
		||||
    after = function (plugin)
 | 
			
		||||
    for_cat = 'always',
 | 
			
		||||
    after = function(plugin)
 | 
			
		||||
      require('which-key').setup({
 | 
			
		||||
      })
 | 
			
		||||
      require('which-key').add {
 | 
			
		||||
        { "<leader><leader>", group = "buffer commands" },
 | 
			
		||||
        { "<leader><leader>_", hidden = true },
 | 
			
		||||
        { "<leader>c", group = "[c]ode" },
 | 
			
		||||
        { "<leader>c_", hidden = true },
 | 
			
		||||
        { "<leader>d", group = "[d]ocument" },
 | 
			
		||||
        { "<leader>d_", hidden = true },
 | 
			
		||||
        { "<leader>g", group = "[g]it" },
 | 
			
		||||
        { "<leader>g_", hidden = true },
 | 
			
		||||
        { "<leader>gt", group = "[t]oggle" },
 | 
			
		||||
        { "<leader>m", group = "[m]arkdown" },
 | 
			
		||||
        { "<leader>m_", hidden = true },
 | 
			
		||||
        { "<leader>r", group = "[r]ename" },
 | 
			
		||||
        { "<leader>r_", hidden = true },
 | 
			
		||||
        { "<leader>s", group = "[s]earch" },
 | 
			
		||||
        { "<leader>s_", hidden = true },
 | 
			
		||||
        { "<leader>t", group = "[t]oggles" },
 | 
			
		||||
        { "<leader>t_", hidden = true },
 | 
			
		||||
        { "<leader>w", group = "[w]orkspace" },
 | 
			
		||||
        { "<leader>w_", hidden = true },
 | 
			
		||||
        { "<leader>f", group = "[f]ind" },
 | 
			
		||||
        { "<leader>t", group = "[t]ree" },
 | 
			
		||||
        { "<leader>c", group = "[c]heck" },
 | 
			
		||||
        { "<leader>l", group = "[l]sp" },
 | 
			
		||||
        { "<leader>lw", group = "[l]sp [w]orkspace" },
 | 
			
		||||
      }
 | 
			
		||||
    end,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "nvim-tree.lua",
 | 
			
		||||
    for_cat = "tree",
 | 
			
		||||
    keys = {
 | 
			
		||||
      { "<leader>t", "<cmd>NvimTreeToggle<CR>", desc = "Toggle file tree", },
 | 
			
		||||
    },
 | 
			
		||||
    after = function(plugin)
 | 
			
		||||
      require("nvim-tree").setup()
 | 
			
		||||
    end
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    -- TODO: Replace toggle term and nvim-tree with snacks equivilants?
 | 
			
		||||
    -- Potentially checkout the lazygit module. Might even be able to replace
 | 
			
		||||
    -- telescope?
 | 
			
		||||
    -- if you do replace telescope, the picker module has a *ton* of interesting pickers, such as an undotree.
 | 
			
		||||
    "snacks.nvim",
 | 
			
		||||
    for_cat = "always",
 | 
			
		||||
    priority = 10,
 | 
			
		||||
    after = function()
 | 
			
		||||
      local Snacks = require("snacks")
 | 
			
		||||
      Snacks.setup({
 | 
			
		||||
        input = {},
 | 
			
		||||
        image = {},
 | 
			
		||||
        notifier = {},
 | 
			
		||||
        scroll = {},
 | 
			
		||||
        picker = {
 | 
			
		||||
          enabled = true,
 | 
			
		||||
          ui_select = true,
 | 
			
		||||
        },
 | 
			
		||||
        terminal = {},
 | 
			
		||||
        indent = {
 | 
			
		||||
          animate = { enabled = true },
 | 
			
		||||
          scope = { enabled = true },
 | 
			
		||||
          chunk = { enabled = true },
 | 
			
		||||
        },
 | 
			
		||||
      })
 | 
			
		||||
      -- setup rename autocmds
 | 
			
		||||
      local prev = { new_name = "", old_name = "" } -- Prevents duplicate events
 | 
			
		||||
      vim.api.nvim_create_autocmd("User", {
 | 
			
		||||
        pattern = "NvimTreeSetup",
 | 
			
		||||
        callback = function()
 | 
			
		||||
          local events = require("nvim-tree.api").events
 | 
			
		||||
          events.subscribe(events.Event.NodeRenamed, function(data)
 | 
			
		||||
            if prev.new_name ~= data.new_name or prev.old_name ~= data.old_name then
 | 
			
		||||
              data = data
 | 
			
		||||
              Snacks.rename.on_rename_file(data.old_name, data.new_name)
 | 
			
		||||
            end
 | 
			
		||||
          end)
 | 
			
		||||
        end,
 | 
			
		||||
      })
 | 
			
		||||
      vim.api.nvim_create_autocmd("User", {
 | 
			
		||||
        pattern = "OilActionsPost",
 | 
			
		||||
        callback = function(event)
 | 
			
		||||
          if event.data.actions.type == "move" then
 | 
			
		||||
            Snacks.rename.on_rename_file(event.data.actions.src_url, event.data.actions.dest_url)
 | 
			
		||||
          end
 | 
			
		||||
        end,
 | 
			
		||||
      })
 | 
			
		||||
    end
 | 
			
		||||
  },
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -57,7 +57,7 @@ end
 | 
			
		|||
return {
 | 
			
		||||
  {
 | 
			
		||||
    "telescope.nvim",
 | 
			
		||||
    for_cat = 'general.telescope',
 | 
			
		||||
    for_cat = 'telescope',
 | 
			
		||||
    cmd = { "Telescope", "LiveGrepGitRoot" },
 | 
			
		||||
    -- NOTE: our on attach function defines keybinds that call telescope.
 | 
			
		||||
    -- so, the on_require handler will load telescope when we use those.
 | 
			
		||||
| 
						 | 
				
			
			@ -65,49 +65,37 @@ return {
 | 
			
		|||
    -- event = "",
 | 
			
		||||
    -- ft = "",
 | 
			
		||||
    keys = {
 | 
			
		||||
      { "<leader>sM", '<cmd>Telescope notify<CR>', mode = {"n"}, desc = '[S]earch [M]essage', },
 | 
			
		||||
      { "<leader>sp",live_grep_git_root, mode = {"n"}, desc = '[S]earch git [P]roject root', },
 | 
			
		||||
      { "<leader>/", function()
 | 
			
		||||
        -- Slightly advanced example of overriding default behavior and theme
 | 
			
		||||
        -- 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, mode = {"n"}, desc = '[/] Fuzzily search in current buffer', },
 | 
			
		||||
      { "<leader>s/", function()
 | 
			
		||||
      { "<leader>fM", '<cmd>Telescope notify<CR>', mode = {"n"}, desc = '[F]ind [M]essage', },
 | 
			
		||||
      { "<leader>fp",live_grep_git_root, mode = {"n"}, desc = '[F]ind git [P]roject root', },
 | 
			
		||||
      { "<leader>f/", function()
 | 
			
		||||
        require('telescope.builtin').live_grep {
 | 
			
		||||
          grep_open_files = true,
 | 
			
		||||
          prompt_title = 'Live Grep in Open Files',
 | 
			
		||||
        }
 | 
			
		||||
      end, mode = {"n"}, desc = '[S]earch [/] in Open Files' },
 | 
			
		||||
      { "<leader><leader>s", function() return require('telescope.builtin').buffers() end, mode = {"n"}, desc = '[ ] Find existing buffers', },
 | 
			
		||||
      { "<leader>s.", function() return require('telescope.builtin').oldfiles() end, mode = {"n"}, desc = '[S]earch Recent Files ("." for repeat)', },
 | 
			
		||||
      { "<leader>sr", function() return require('telescope.builtin').resume() end, mode = {"n"}, desc = '[S]earch [R]esume', },
 | 
			
		||||
      { "<leader>sd", function() return require('telescope.builtin').diagnostics() end, mode = {"n"}, desc = '[S]earch [D]iagnostics', },
 | 
			
		||||
      { "<leader>sg", function() return require('telescope.builtin').live_grep() end, mode = {"n"}, desc = '[S]earch by [G]rep', },
 | 
			
		||||
      { "<leader>sw", function() return require('telescope.builtin').grep_string() end, mode = {"n"}, desc = '[S]earch current [W]ord', },
 | 
			
		||||
      { "<leader>ss", function() return require('telescope.builtin').builtin() end, mode = {"n"}, desc = '[S]earch [S]elect Telescope', },
 | 
			
		||||
      { "<leader>sf", function() return require('telescope.builtin').find_files() end, mode = {"n"}, desc = '[S]earch [F]iles', },
 | 
			
		||||
      { "<leader>sk", function() return require('telescope.builtin').keymaps() end, mode = {"n"}, desc = '[S]earch [K]eymaps', },
 | 
			
		||||
      { "<leader>sh", function() return require('telescope.builtin').help_tags() end, mode = {"n"}, desc = '[S]earch [H]elp', },
 | 
			
		||||
      end, mode = {"n"}, desc = '[F]ind [/] in Open Files' },
 | 
			
		||||
      { "<leader>fb", function() return require('telescope.builtin').buffers() end, mode = {"n"}, desc = '[F]ind [B]uffers', },
 | 
			
		||||
      { "<leader>fr", function() return require('telescope.builtin').resume() end, mode = {"n"}, desc = '[F]ind [R]esume', },
 | 
			
		||||
      { "<leader>fd", function() return require('telescope.builtin').diagnostics() end, mode = {"n"}, desc = '[F]ind [D]iagnostics', },
 | 
			
		||||
      { "<leader>fg", function() return require('telescope.builtin').live_grep() end, mode = {"n"}, desc = '[F]ind by [G]rep', },
 | 
			
		||||
      { "<leader>fs", function() return require('telescope.builtin').builtin() end, mode = {"n"}, desc = '[F]ind [S]elect Telescope', },
 | 
			
		||||
      { "<leader>ff", function() return require('telescope.builtin').find_files() end, mode = {"n"}, desc = '[F]ind [F]iles', },
 | 
			
		||||
      { "<leader>fk", function() return require('telescope.builtin').keymaps() end, mode = {"n"}, desc = '[F]ind [K]eymaps', },
 | 
			
		||||
      { "<leader>fh", function() return require('telescope.builtin').help_tags() end, mode = {"n"}, desc = '[F]ind [H]elp', },
 | 
			
		||||
      { "<leader>fz", function() require("telescope").extensions.zoxide.list() end, mode = {"n"}, desc = '[F]ind [Z]oxide',},
 | 
			
		||||
      { "<leader>fi", function() require("telescope").extensions.file_browser.file_browser() end, mode={"n"}, desc = '[F]ind [I]nteractive file browser',},
 | 
			
		||||
    },
 | 
			
		||||
    -- colorscheme = "",
 | 
			
		||||
    load = function (name)
 | 
			
		||||
        vim.cmd.packadd(name)
 | 
			
		||||
        vim.cmd.packadd("telescope-fzf-native.nvim")
 | 
			
		||||
        vim.cmd.packadd("telescope-ui-select.nvim")
 | 
			
		||||
        vim.cmd.packadd("telescope-file-browser.nvim")
 | 
			
		||||
        vim.cmd.packadd("telescope-zoxide")
 | 
			
		||||
    end,
 | 
			
		||||
    after = function (plugin)
 | 
			
		||||
      require('telescope').setup {
 | 
			
		||||
      local telescope = require("telescope")
 | 
			
		||||
      telescope.setup {
 | 
			
		||||
        -- You can put your default mappings / updates / etc. in here
 | 
			
		||||
        --  All the info you're looking for is in `:help telescope.setup()`
 | 
			
		||||
        --
 | 
			
		||||
        defaults = {
 | 
			
		||||
          mappings = {
 | 
			
		||||
            i = { ['<c-enter>'] = 'to_fuzzy_refine' },
 | 
			
		||||
          },
 | 
			
		||||
        },
 | 
			
		||||
        -- pickers = {}
 | 
			
		||||
        extensions = {
 | 
			
		||||
          ['ui-select'] = {
 | 
			
		||||
| 
						 | 
				
			
			@ -117,8 +105,9 @@ return {
 | 
			
		|||
      }
 | 
			
		||||
 | 
			
		||||
      -- Enable telescope extensions, if they are installed
 | 
			
		||||
      pcall(require('telescope').load_extension, 'fzf')
 | 
			
		||||
      pcall(require('telescope').load_extension, 'ui-select')
 | 
			
		||||
      telescope.load_extension('ui-select')
 | 
			
		||||
      telescope.load_extension('zoxide')
 | 
			
		||||
      telescope.load_extension('file_browser')
 | 
			
		||||
 | 
			
		||||
      vim.api.nvim_create_user_command('LiveGrepGitRoot', live_grep_git_root, {})
 | 
			
		||||
    end,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,17 +3,17 @@
 | 
			
		|||
return {
 | 
			
		||||
  {
 | 
			
		||||
    "nvim-treesitter",
 | 
			
		||||
    for_cat = 'general.treesitter',
 | 
			
		||||
    for_cat = 'treesitter',
 | 
			
		||||
    -- cmd = { "" },
 | 
			
		||||
    event = "DeferredUIEnter",
 | 
			
		||||
    -- ft = "",
 | 
			
		||||
    -- keys = "",
 | 
			
		||||
    -- colorscheme = "",
 | 
			
		||||
    load = function (name)
 | 
			
		||||
        vim.cmd.packadd(name)
 | 
			
		||||
        vim.cmd.packadd("nvim-treesitter-textobjects")
 | 
			
		||||
    load = function(name)
 | 
			
		||||
      vim.cmd.packadd(name)
 | 
			
		||||
      vim.cmd.packadd("rainbow-delimiters.nvim")
 | 
			
		||||
    end,
 | 
			
		||||
    after = function (plugin)
 | 
			
		||||
    after = function(plugin)
 | 
			
		||||
      -- [[ Configure Treesitter ]]
 | 
			
		||||
      -- See `:help nvim-treesitter`
 | 
			
		||||
      require('nvim-treesitter.configs').setup {
 | 
			
		||||
| 
						 | 
				
			
			@ -28,51 +28,29 @@ return {
 | 
			
		|||
            node_decremental = '<M-space>',
 | 
			
		||||
          },
 | 
			
		||||
        },
 | 
			
		||||
        textobjects = {
 | 
			
		||||
          select = {
 | 
			
		||||
            enable = true,
 | 
			
		||||
            lookahead = true, -- Automatically jump forward to textobj, similar to targets.vim
 | 
			
		||||
            keymaps = {
 | 
			
		||||
              -- You can use the capture groups defined in textobjects.scm
 | 
			
		||||
              ['aa'] = '@parameter.outer',
 | 
			
		||||
              ['ia'] = '@parameter.inner',
 | 
			
		||||
              ['af'] = '@function.outer',
 | 
			
		||||
              ['if'] = '@function.inner',
 | 
			
		||||
              ['ac'] = '@class.outer',
 | 
			
		||||
              ['ic'] = '@class.inner',
 | 
			
		||||
            },
 | 
			
		||||
          },
 | 
			
		||||
          move = {
 | 
			
		||||
            enable = true,
 | 
			
		||||
            set_jumps = true, -- whether to set jumps in the jumplist
 | 
			
		||||
            goto_next_start = {
 | 
			
		||||
              [']m'] = '@function.outer',
 | 
			
		||||
              [']]'] = '@class.outer',
 | 
			
		||||
            },
 | 
			
		||||
            goto_next_end = {
 | 
			
		||||
              [']M'] = '@function.outer',
 | 
			
		||||
              [']['] = '@class.outer',
 | 
			
		||||
            },
 | 
			
		||||
            goto_previous_start = {
 | 
			
		||||
              ['[m'] = '@function.outer',
 | 
			
		||||
              ['[['] = '@class.outer',
 | 
			
		||||
            },
 | 
			
		||||
            goto_previous_end = {
 | 
			
		||||
              ['[M'] = '@function.outer',
 | 
			
		||||
              ['[]'] = '@class.outer',
 | 
			
		||||
            },
 | 
			
		||||
          },
 | 
			
		||||
          swap = {
 | 
			
		||||
            enable = true,
 | 
			
		||||
            swap_next = {
 | 
			
		||||
              ['<leader>a'] = '@parameter.inner',
 | 
			
		||||
            },
 | 
			
		||||
            swap_previous = {
 | 
			
		||||
              ['<leader>A'] = '@parameter.inner',
 | 
			
		||||
            },
 | 
			
		||||
          },
 | 
			
		||||
        },
 | 
			
		||||
      }
 | 
			
		||||
    end,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "comment.nvim",
 | 
			
		||||
    for_cat = 'telescope',
 | 
			
		||||
    after = function(plugin)
 | 
			
		||||
      require('Comment').setup()
 | 
			
		||||
    end,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "nvim-treesitter-context",
 | 
			
		||||
    for_cat = 'treesitter',
 | 
			
		||||
    keys = { { "<leader>x", "<cmd>TsContext toggle<CR>", mode = { "n" }, desc = "Toggle Context" }, },
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "treesj",
 | 
			
		||||
    for_cat = 'treesitter',
 | 
			
		||||
    keys = { { "<leader>j", "<cmd>TSJToggle<CR>", mode = { "n" }, desc = "Treesitter join" }, },
 | 
			
		||||
    after = function(_)
 | 
			
		||||
      require("treesj").setup({
 | 
			
		||||
        use_default_keymaps = false
 | 
			
		||||
      })
 | 
			
		||||
    end
 | 
			
		||||
  },
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue