summary refs log tree commit diff
path: root/.config/nvim/lua/plugins/fzf.lua
diff options
context:
space:
mode:
Diffstat (limited to '.config/nvim/lua/plugins/fzf.lua')
-rw-r--r--.config/nvim/lua/plugins/fzf.lua103
1 files changed, 103 insertions, 0 deletions
diff --git a/.config/nvim/lua/plugins/fzf.lua b/.config/nvim/lua/plugins/fzf.lua
new file mode 100644
index 0000000..efee6ef
--- /dev/null
+++ b/.config/nvim/lua/plugins/fzf.lua
@@ -0,0 +1,103 @@
+return {
+  {
+    enabled = true,
+    'ibhagwan/fzf-lua',
+    lazy = false,
+    dependencies = {
+      'echasnovski/mini.icons',
+    },
+    config = function()
+      local fzf = require('fzf-lua')
+      fzf.register_ui_select()
+      fzf.setup({
+        -- PROFILE
+        { 'default' },
+        -- OPTIONS
+        winopts = {
+          split = 'belowright 20new',
+          border = 'none',
+          preview = {
+            border = 'none',
+          },
+          -- on_create = function() end,
+        },
+        keymap = {
+          fzf = {
+            true,
+            ['ctrl-n'] = 'down',
+            ['ctrl-p'] = 'up',
+          },
+        },
+        -- actions = {
+        --   files = {
+        --     ['ctrl-q'] = { fn = fzf.actions.file_sel_to_qf },
+        --   },
+        -- },
+        fzf_colors = true,
+        -- PICKER CONFIG
+        files = {
+          file_icons = true,
+        },
+        marks = {
+          marks = '[a-zA-Z]',
+        }
+      })
+    end,
+    keys = {
+      { mode = 'n', ';<space>', '<cmd>FzfLua<cr>', desc = 'fzf: select' },
+      { mode = 'n', ';/', '<cmd>FzfLua blines<cr>', desc = 'fzf: current_buffer_fuzzy_find' },
+      { mode = 'n', ';b', '<cmd>FzfLua buffers<cr>', desc = 'fzf: buffers' },
+      { mode = 'n', ';f', '<cmd>FzfLua files<cr>', desc = 'fzf: find_files' },
+      { mode = 'n', ';g', '<cmd>FzfLua live_grep<cr>', desc = 'fzf: live_grep' },
+      { mode = 'n', ';d', '<cmd>FzfLua diagnostics_workspace<cr>', desc = 'fzf: workspace diagnostics' },
+      { mode = 'n', ';D', '<cmd>FzfLua diagnostics_document<cr>', desc = 'fzf: document diagnostics' },
+      { mode = 'n', ';h', '<cmd>FzfLua helptags<cr>', desc = 'fzf: help' },
+      { mode = 'n', ';s', '<cmd>FzfLua lsp_document_symbols<cr>', desc = 'fzf: document symbols' },
+      { mode = 'n', ';w', '<cmd>FzfLua lsp_live_workspace_symbols<cr>', desc = 'fzf: workspace symbols' },
+      { mode = 'n', ';m', '<cmd>FzfLua marks<cr>', desc = 'fzf: marks' },
+      {
+        mode = 'n',
+        ';v',
+        function()
+          require('fzf-lua').files({ cwd = vim.fn.stdpath('config') })
+        end,
+        desc = 'fzf: vim_config',
+      },
+      -- {
+      --   mode = 'n',
+      --   ';;t',
+      --   '<cmd>Telescope<cr>',
+      --   desc = 'telescope: select (interactive)',
+      -- },
+      {
+        mode = 'n',
+        ';;f',
+        function()
+          local dir
+          if vim.opt.filetype:get() == 'oil' then
+            dir = require('oil').get_current_dir()
+          else
+            dir = vim.fn.expand('%:p:h')
+          end
+          -- require('fzf-lua').files({ cwd = dir })
+          _G.feedkeys(':Fzf files cwd=' .. dir)
+        end,
+        desc = 'fzf: files (interactive)',
+      },
+      {
+        mode = 'n',
+        ';;g',
+        function()
+          local dir
+          if vim.opt.filetype:get() == 'oil' then
+            dir = require('oil').get_current_dir()
+          else
+            dir = vim.fn.expand('%:p:h')
+          end
+          _G.feedkeys(':Fzf live_grep cwd=' .. dir)
+        end,
+        desc = 'fzf: grep (interactive)',
+      },
+    },
+  },
+}