Просмотр исходного кода

feat: use telescope to quickly open lunarvim files (#1310)

kylo252 3 лет назад
Родитель
Сommit
fe55935c05
2 измененных файлов с 48 добавлено и 2 удалено
  1. 36 2
      lua/core/telescope.lua
  2. 12 0
      lua/core/which-key.lua

+ 36 - 2
lua/core/telescope.lua

@@ -1,6 +1,6 @@
 local M = {}
 local Log = require "core.log"
-M.config = function()
+function M.config()
   local status_ok, actions = pcall(require, "telescope.actions")
   if not status_ok then
     return
@@ -77,7 +77,41 @@ M.config = function()
   }
 end
 
-M.setup = function()
+function M.find_lunarvim_files(opts)
+  opts = opts or {}
+  local themes = require "telescope.themes"
+  local theme_opts = themes.get_ivy {
+    previewer = false,
+    sorting_strategy = "ascending",
+    layout_strategy = "bottom_pane",
+    layout_config = {
+      height = 5,
+      width = 0.5,
+    },
+    prompt = ">> ",
+    prompt_title = "~ LunarVim files ~",
+    cwd = CONFIG_PATH,
+    find_command = { "git", "ls-files" },
+  }
+  opts = vim.tbl_deep_extend("force", theme_opts, opts)
+  require("telescope.builtin").find_files(opts)
+end
+
+function M.grep_lunarvim_files(opts)
+  opts = opts or {}
+  local themes = require "telescope.themes"
+  local theme_opts = themes.get_ivy {
+    sorting_strategy = "ascending",
+    layout_strategy = "bottom_pane",
+    prompt = ">> ",
+    prompt_title = "~ search LunarVim ~",
+    cwd = CONFIG_PATH,
+  }
+  opts = vim.tbl_deep_extend("force", theme_opts, opts)
+  require("telescope.builtin").live_grep(opts)
+end
+
+function M.setup()
   local status_ok, telescope = pcall(require, "telescope")
   if not status_ok then
     Log:get_default().error "Failed to load telescope"

+ 12 - 0
lua/core/which-key.lua

@@ -169,6 +169,18 @@ M.config = function()
       },
       L = {
         name = "+LunarVim",
+        c = {
+          "<cmd>edit ~/.config/lvim/config.lua<cr>",
+          "Edit config.lua",
+        },
+        f = {
+          "<cmd>lua require('core.telescope').find_lunarvim_files()<cr>",
+          "Find LunarVim files",
+        },
+        g = {
+          "<cmd>lua require('core.telescope').grep_lunarvim_files()<cr>",
+          "Grep LunarVim files",
+        },
         k = { "<cmd>lua require('keymappings').print()<cr>", "View LunarVim's default keymappings" },
         i = {
           "<cmd>lua require('core.info').toggle_popup(vim.bo.filetype)<cr>",