Compare commits
8 Commits
java_with_
...
pickers_re
Author | SHA1 | Date | |
---|---|---|---|
8c3f9fd497 | |||
f608564517 | |||
3b0810c003 | |||
ef0d55e651 | |||
1f97b9d120 | |||
db8e0f7d35 | |||
ff223e7347 | |||
b2b6ff0738 |
@ -142,156 +142,6 @@ return {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
-- Fuzzy finder.
|
|
||||||
-- The default key bindings to find files will use Telescope's
|
|
||||||
-- `find_files` or `git_files` depending on whether the
|
|
||||||
-- directory is a git repo.
|
|
||||||
{
|
|
||||||
"nvim-telescope/telescope.nvim",
|
|
||||||
cmd = "Telescope",
|
|
||||||
version = false, -- telescope did only one release, so use HEAD for now
|
|
||||||
dependencies = {
|
|
||||||
{
|
|
||||||
"nvim-telescope/telescope-fzf-native.nvim",
|
|
||||||
build = have_make and "make"
|
|
||||||
or "cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release && cmake --build build --config Release && cmake --install build --prefix build",
|
|
||||||
enabled = have_make or have_cmake,
|
|
||||||
config = function(plugin)
|
|
||||||
LazyVim.on_load("telescope.nvim", function()
|
|
||||||
local ok, err = pcall(require("telescope").load_extension, "fzf")
|
|
||||||
if not ok then
|
|
||||||
local lib = plugin.dir .. "/build/libfzf." .. (LazyVim.is_win() and "dll" or "so")
|
|
||||||
if not vim.uv.fs_stat(lib) then
|
|
||||||
LazyVim.warn("`telescope-fzf-native.nvim` not built. Rebuilding...")
|
|
||||||
require("lazy").build({ plugins = { plugin }, show = false }):wait(function()
|
|
||||||
LazyVim.info("Rebuilding `telescope-fzf-native.nvim` done.\nPlease restart Neovim.")
|
|
||||||
end)
|
|
||||||
else
|
|
||||||
LazyVim.error("Failed to load `telescope-fzf-native.nvim`:\n" .. err)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
keys = {
|
|
||||||
{
|
|
||||||
"<leader>,",
|
|
||||||
"<cmd>Telescope buffers sort_mru=true sort_lastused=true<cr>",
|
|
||||||
desc = "Switch Buffer",
|
|
||||||
},
|
|
||||||
{ "<leader>/", LazyVim.pick("live_grep"), desc = "Grep (Root Dir)" },
|
|
||||||
{ "<leader>:", "<cmd>Telescope command_history<cr>", desc = "Command History" },
|
|
||||||
{ "<leader><space>", LazyVim.pick("auto"), desc = "Find Files (Root Dir)" },
|
|
||||||
-- find
|
|
||||||
{ "<leader>fb", "<cmd>Telescope buffers sort_mru=true sort_lastused=true<cr>", desc = "Buffers" },
|
|
||||||
{ "<leader>fc", LazyVim.pick.config_files(), desc = "Find Config File" },
|
|
||||||
{ "<leader>ff", LazyVim.pick("auto"), desc = "Find Files (Root Dir)" },
|
|
||||||
{ "<leader>fF", LazyVim.pick("auto", { root = false }), desc = "Find Files (cwd)" },
|
|
||||||
{ "<leader>fg", "<cmd>Telescope git_files<cr>", desc = "Find Files (git-files)" },
|
|
||||||
{ "<leader>fr", "<cmd>Telescope oldfiles<cr>", desc = "Recent" },
|
|
||||||
{ "<leader>fR", LazyVim.pick("oldfiles", { cwd = vim.uv.cwd() }), desc = "Recent (cwd)" },
|
|
||||||
-- git
|
|
||||||
{ "<leader>gc", "<cmd>Telescope git_commits<CR>", desc = "Commits" },
|
|
||||||
{ "<leader>gs", "<cmd>Telescope git_status<CR>", desc = "Status" },
|
|
||||||
-- search
|
|
||||||
{ '<leader>s"', "<cmd>Telescope registers<cr>", desc = "Registers" },
|
|
||||||
{ "<leader>sa", "<cmd>Telescope autocommands<cr>", desc = "Auto Commands" },
|
|
||||||
{ "<leader>sb", "<cmd>Telescope current_buffer_fuzzy_find<cr>", desc = "Buffer" },
|
|
||||||
{ "<leader>sc", "<cmd>Telescope command_history<cr>", desc = "Command History" },
|
|
||||||
{ "<leader>sC", "<cmd>Telescope commands<cr>", desc = "Commands" },
|
|
||||||
{ "<leader>sd", "<cmd>Telescope diagnostics bufnr=0<cr>", desc = "Document Diagnostics" },
|
|
||||||
{ "<leader>sD", "<cmd>Telescope diagnostics<cr>", desc = "Workspace Diagnostics" },
|
|
||||||
{ "<leader>sg", LazyVim.pick("live_grep"), desc = "Grep (Root Dir)" },
|
|
||||||
{ "<leader>sG", LazyVim.pick("live_grep", { root = false }), desc = "Grep (cwd)" },
|
|
||||||
{ "<leader>sh", "<cmd>Telescope help_tags<cr>", desc = "Help Pages" },
|
|
||||||
{ "<leader>sH", "<cmd>Telescope highlights<cr>", desc = "Search Highlight Groups" },
|
|
||||||
{ "<leader>sj", "<cmd>Telescope jumplist<cr>", desc = "Jumplist" },
|
|
||||||
{ "<leader>sk", "<cmd>Telescope keymaps<cr>", desc = "Key Maps" },
|
|
||||||
{ "<leader>sl", "<cmd>Telescope loclist<cr>", desc = "Location List" },
|
|
||||||
{ "<leader>sM", "<cmd>Telescope man_pages<cr>", desc = "Man Pages" },
|
|
||||||
{ "<leader>sm", "<cmd>Telescope marks<cr>", desc = "Jump to Mark" },
|
|
||||||
{ "<leader>so", "<cmd>Telescope vim_options<cr>", desc = "Options" },
|
|
||||||
{ "<leader>sR", "<cmd>Telescope resume<cr>", desc = "Resume" },
|
|
||||||
{ "<leader>sq", "<cmd>Telescope quickfix<cr>", desc = "Quickfix List" },
|
|
||||||
{ "<leader>sw", LazyVim.pick("grep_string", { word_match = "-w" }), desc = "Word (Root Dir)" },
|
|
||||||
{ "<leader>sW", LazyVim.pick("grep_string", { root = false, word_match = "-w" }), desc = "Word (cwd)" },
|
|
||||||
{ "<leader>sw", LazyVim.pick("grep_string"), mode = "v", desc = "Selection (Root Dir)" },
|
|
||||||
{ "<leader>sW", LazyVim.pick("grep_string", { root = false }), mode = "v", desc = "Selection (cwd)" },
|
|
||||||
{ "<leader>uC", LazyVim.pick("colorscheme", { enable_preview = true }), desc = "Colorscheme with Preview" },
|
|
||||||
{
|
|
||||||
"<leader>ss",
|
|
||||||
function()
|
|
||||||
require("telescope.builtin").lsp_document_symbols({
|
|
||||||
symbols = require("lazyvim.config").get_kind_filter(),
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
desc = "Goto Symbol",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"<leader>sS",
|
|
||||||
function()
|
|
||||||
require("telescope.builtin").lsp_dynamic_workspace_symbols({
|
|
||||||
symbols = require("lazyvim.config").get_kind_filter(),
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
desc = "Goto Symbol (Workspace)",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
opts = function()
|
|
||||||
local actions = require("telescope.actions")
|
|
||||||
|
|
||||||
local open_with_trouble = function(...)
|
|
||||||
return require("trouble.sources.telescope").open(...)
|
|
||||||
end
|
|
||||||
local find_files_no_ignore = function()
|
|
||||||
local action_state = require("telescope.actions.state")
|
|
||||||
local line = action_state.get_current_line()
|
|
||||||
LazyVim.pick("find_files", { no_ignore = true, default_text = line })()
|
|
||||||
end
|
|
||||||
local find_files_with_hidden = function()
|
|
||||||
local action_state = require("telescope.actions.state")
|
|
||||||
local line = action_state.get_current_line()
|
|
||||||
LazyVim.pick("find_files", { hidden = true, default_text = line })()
|
|
||||||
end
|
|
||||||
|
|
||||||
return {
|
|
||||||
defaults = {
|
|
||||||
prompt_prefix = " ",
|
|
||||||
selection_caret = " ",
|
|
||||||
-- open files in the first window that is an actual file.
|
|
||||||
-- use the current window if no other window is available.
|
|
||||||
get_selection_window = function()
|
|
||||||
local wins = vim.api.nvim_list_wins()
|
|
||||||
table.insert(wins, 1, vim.api.nvim_get_current_win())
|
|
||||||
for _, win in ipairs(wins) do
|
|
||||||
local buf = vim.api.nvim_win_get_buf(win)
|
|
||||||
if vim.bo[buf].buftype == "" then
|
|
||||||
return win
|
|
||||||
end
|
|
||||||
end
|
|
||||||
return 0
|
|
||||||
end,
|
|
||||||
mappings = {
|
|
||||||
i = {
|
|
||||||
["<c-t>"] = open_with_trouble,
|
|
||||||
["<a-t>"] = open_with_trouble,
|
|
||||||
["<a-i>"] = find_files_no_ignore,
|
|
||||||
["<a-h>"] = find_files_with_hidden,
|
|
||||||
["<C-Down>"] = actions.cycle_history_next,
|
|
||||||
["<C-Up>"] = actions.cycle_history_prev,
|
|
||||||
["<C-f>"] = actions.preview_scrolling_down,
|
|
||||||
["<C-b>"] = actions.preview_scrolling_up,
|
|
||||||
},
|
|
||||||
n = {
|
|
||||||
["q"] = actions.close,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
|
|
||||||
-- Flash enhances the built-in search functionality by showing labels
|
-- Flash enhances the built-in search functionality by showing labels
|
||||||
-- at the end of each match, letting you quickly jump to a specific
|
-- at the end of each match, letting you quickly jump to a specific
|
||||||
-- location.
|
-- location.
|
||||||
@ -311,38 +161,6 @@ return {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
-- Flash Telescope config
|
|
||||||
{
|
|
||||||
"nvim-telescope/telescope.nvim",
|
|
||||||
optional = true,
|
|
||||||
opts = function(_, opts)
|
|
||||||
if not LazyVim.has("flash.nvim") then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
local function flash(prompt_bufnr)
|
|
||||||
require("flash").jump({
|
|
||||||
pattern = "^",
|
|
||||||
label = { after = { 0, 0 } },
|
|
||||||
search = {
|
|
||||||
mode = "search",
|
|
||||||
exclude = {
|
|
||||||
function(win)
|
|
||||||
return vim.bo[vim.api.nvim_win_get_buf(win)].filetype ~= "TelescopeResults"
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
action = function(match)
|
|
||||||
local picker = require("telescope.actions.state").get_current_picker(prompt_bufnr)
|
|
||||||
picker:set_selection(match.pos[1] - 1)
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
end
|
|
||||||
opts.defaults = vim.tbl_deep_extend("force", opts.defaults or {}, {
|
|
||||||
mappings = { n = { s = flash }, i = { ["<c-s>"] = flash } },
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
|
|
||||||
-- which-key helps you remember key bindings by showing a popup
|
-- which-key helps you remember key bindings by showing a popup
|
||||||
-- with the active keybindings of the command you started typing.
|
-- with the active keybindings of the command you started typing.
|
||||||
{
|
{
|
||||||
@ -482,4 +300,17 @@ return {
|
|||||||
{ "<leader>sT", "<cmd>TodoTelescope keywords=TODO,FIX,FIXME<cr>", desc = "Todo/Fix/Fixme" },
|
{ "<leader>sT", "<cmd>TodoTelescope keywords=TODO,FIX,FIXME<cr>", desc = "Todo/Fix/Fixme" },
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
import = "lazyvim.plugins.extras.editor.fzf",
|
||||||
|
enabled = function()
|
||||||
|
return LazyVim.has_extra("editor.fzf")
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
import = "lazyvim.plugins.extras.editor.telescope",
|
||||||
|
enabled = function()
|
||||||
|
return not LazyVim.has_extra("editor.fzf")
|
||||||
|
end,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
@ -11,9 +11,8 @@ return {
|
|||||||
{
|
{
|
||||||
"<leader>p",
|
"<leader>p",
|
||||||
function()
|
function()
|
||||||
local ok, telescope = pcall(require, "telescope")
|
if LazyVim.pick.picker.name == "telescope" then
|
||||||
if ok then
|
require("telescope").extensions.yank_history.yank_history({})
|
||||||
telescope.extensions.yank_history.yank_history({})
|
|
||||||
else
|
else
|
||||||
vim.cmd([[YankyRingHistory]])
|
vim.cmd([[YankyRingHistory]])
|
||||||
end
|
end
|
||||||
|
@ -1,18 +1,25 @@
|
|||||||
---@class FzfLuaOpts: lazyvim.util.pick.Opts
|
---@class FzfLuaOpts: lazyvim.util.pick.Opts
|
||||||
---@field cmd string?
|
---@field cmd string?
|
||||||
|
|
||||||
LazyVim.pick.commands = {
|
---@type LazyPicker
|
||||||
|
local picker = {
|
||||||
|
name = "fzf",
|
||||||
|
commands = {
|
||||||
files = "files",
|
files = "files",
|
||||||
}
|
},
|
||||||
|
|
||||||
---@param command string
|
---@param command string
|
||||||
---@param opts? FzfLuaOpts
|
---@param opts? FzfLuaOpts
|
||||||
LazyVim.pick._open = function(command, opts)
|
open = function(command, opts)
|
||||||
opts = opts or {}
|
opts = opts or {}
|
||||||
if opts.cmd == nil and command == "git_files" and opts.show_untracked then
|
if opts.cmd == nil and command == "git_files" and opts.show_untracked then
|
||||||
opts.cmd = "git ls-files --exclude-standard --cached --others"
|
opts.cmd = "git ls-files --exclude-standard --cached --others"
|
||||||
end
|
end
|
||||||
return require("fzf-lua")[command](opts)
|
return require("fzf-lua")[command](opts)
|
||||||
|
end,
|
||||||
|
}
|
||||||
|
if not LazyVim.pick.register(picker) then
|
||||||
|
return {}
|
||||||
end
|
end
|
||||||
|
|
||||||
local function symbols_filter(entry, ctx)
|
local function symbols_filter(entry, ctx)
|
||||||
@ -26,11 +33,8 @@ local function symbols_filter(entry, ctx)
|
|||||||
end
|
end
|
||||||
|
|
||||||
return {
|
return {
|
||||||
{ "stevearc/dressing.nvim", enabled = false },
|
desc = "Awesome picker for FZF (alternative to Telescope)",
|
||||||
{
|
recommended = true,
|
||||||
"nvim-telescope/telescope.nvim",
|
|
||||||
enabled = false,
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"ibhagwan/fzf-lua",
|
"ibhagwan/fzf-lua",
|
||||||
event = "VeryLazy",
|
event = "VeryLazy",
|
||||||
@ -78,7 +82,8 @@ return {
|
|||||||
["--no-scrollbar"] = true,
|
["--no-scrollbar"] = true,
|
||||||
},
|
},
|
||||||
defaults = {
|
defaults = {
|
||||||
formatter = "path.filename_first",
|
-- formatter = "path.filename_first",
|
||||||
|
formatter = "path.dirname_first",
|
||||||
},
|
},
|
||||||
-- Custom LazyVim option to configure vim.ui.select
|
-- Custom LazyVim option to configure vim.ui.select
|
||||||
ui_select = function(fzf_opts, items)
|
ui_select = function(fzf_opts, items)
|
||||||
|
245
lua/lazyvim/plugins/extras/editor/telescope.lua
Normal file
245
lua/lazyvim/plugins/extras/editor/telescope.lua
Normal file
@ -0,0 +1,245 @@
|
|||||||
|
-- TODO:
|
||||||
|
-- - [ ] remove telescope util
|
||||||
|
-- - [ ] better lsp bindings
|
||||||
|
|
||||||
|
---@type LazyPicker
|
||||||
|
local picker = {
|
||||||
|
name = "telescope",
|
||||||
|
commands = {
|
||||||
|
files = "find_files",
|
||||||
|
},
|
||||||
|
-- this will return a function that calls telescope.
|
||||||
|
-- cwd will default to lazyvim.util.get_root
|
||||||
|
-- for `files`, git_files or find_files will be chosen depending on .git
|
||||||
|
---@param builtin string
|
||||||
|
---@param opts? lazyvim.util.pick.Opts
|
||||||
|
open = function(builtin, opts)
|
||||||
|
opts = opts or {}
|
||||||
|
if opts.cwd and opts.cwd ~= vim.uv.cwd() then
|
||||||
|
local function open_cwd_dir()
|
||||||
|
local action_state = require("telescope.actions.state")
|
||||||
|
local line = action_state.get_current_line()
|
||||||
|
LazyVim.pick.open(
|
||||||
|
builtin,
|
||||||
|
vim.tbl_deep_extend("force", {}, opts or {}, {
|
||||||
|
root = false,
|
||||||
|
default_text = line,
|
||||||
|
})
|
||||||
|
)
|
||||||
|
end
|
||||||
|
---@diagnostic disable-next-line: inject-field
|
||||||
|
opts.attach_mappings = function(_, map)
|
||||||
|
-- opts.desc is overridden by telescope, until it's changed there is this fix
|
||||||
|
map("i", "<a-c>", open_cwd_dir, { desc = "Open cwd Directory" })
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
require("telescope.builtin")[builtin](opts)
|
||||||
|
end,
|
||||||
|
}
|
||||||
|
if not LazyVim.pick.register(picker) then
|
||||||
|
return {}
|
||||||
|
end
|
||||||
|
|
||||||
|
return {
|
||||||
|
-- Fuzzy finder.
|
||||||
|
-- The default key bindings to find files will use Telescope's
|
||||||
|
-- `find_files` or `git_files` depending on whether the
|
||||||
|
-- directory is a git repo.
|
||||||
|
{
|
||||||
|
"nvim-telescope/telescope.nvim",
|
||||||
|
cmd = "Telescope",
|
||||||
|
version = false, -- telescope did only one release, so use HEAD for now
|
||||||
|
dependencies = {
|
||||||
|
{
|
||||||
|
"nvim-telescope/telescope-fzf-native.nvim",
|
||||||
|
build = have_make and "make"
|
||||||
|
or "cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release && cmake --build build --config Release && cmake --install build --prefix build",
|
||||||
|
enabled = have_make or have_cmake,
|
||||||
|
config = function(plugin)
|
||||||
|
LazyVim.on_load("telescope.nvim", function()
|
||||||
|
local ok, err = pcall(require("telescope").load_extension, "fzf")
|
||||||
|
if not ok then
|
||||||
|
local lib = plugin.dir .. "/build/libfzf." .. (LazyVim.is_win() and "dll" or "so")
|
||||||
|
if not vim.uv.fs_stat(lib) then
|
||||||
|
LazyVim.warn("`telescope-fzf-native.nvim` not built. Rebuilding...")
|
||||||
|
require("lazy").build({ plugins = { plugin }, show = false }):wait(function()
|
||||||
|
LazyVim.info("Rebuilding `telescope-fzf-native.nvim` done.\nPlease restart Neovim.")
|
||||||
|
end)
|
||||||
|
else
|
||||||
|
LazyVim.error("Failed to load `telescope-fzf-native.nvim`:\n" .. err)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
keys = {
|
||||||
|
{
|
||||||
|
"<leader>,",
|
||||||
|
"<cmd>Telescope buffers sort_mru=true sort_lastused=true<cr>",
|
||||||
|
desc = "Switch Buffer",
|
||||||
|
},
|
||||||
|
{ "<leader>/", LazyVim.pick("live_grep"), desc = "Grep (Root Dir)" },
|
||||||
|
{ "<leader>:", "<cmd>Telescope command_history<cr>", desc = "Command History" },
|
||||||
|
{ "<leader><space>", LazyVim.pick("auto"), desc = "Find Files (Root Dir)" },
|
||||||
|
-- find
|
||||||
|
{ "<leader>fb", "<cmd>Telescope buffers sort_mru=true sort_lastused=true<cr>", desc = "Buffers" },
|
||||||
|
{ "<leader>fc", LazyVim.pick.config_files(), desc = "Find Config File" },
|
||||||
|
{ "<leader>ff", LazyVim.pick("auto"), desc = "Find Files (Root Dir)" },
|
||||||
|
{ "<leader>fF", LazyVim.pick("auto", { root = false }), desc = "Find Files (cwd)" },
|
||||||
|
{ "<leader>fg", "<cmd>Telescope git_files<cr>", desc = "Find Files (git-files)" },
|
||||||
|
{ "<leader>fr", "<cmd>Telescope oldfiles<cr>", desc = "Recent" },
|
||||||
|
{ "<leader>fR", LazyVim.pick("oldfiles", { cwd = vim.uv.cwd() }), desc = "Recent (cwd)" },
|
||||||
|
-- git
|
||||||
|
{ "<leader>gc", "<cmd>Telescope git_commits<CR>", desc = "Commits" },
|
||||||
|
{ "<leader>gs", "<cmd>Telescope git_status<CR>", desc = "Status" },
|
||||||
|
-- search
|
||||||
|
{ '<leader>s"', "<cmd>Telescope registers<cr>", desc = "Registers" },
|
||||||
|
{ "<leader>sa", "<cmd>Telescope autocommands<cr>", desc = "Auto Commands" },
|
||||||
|
{ "<leader>sb", "<cmd>Telescope current_buffer_fuzzy_find<cr>", desc = "Buffer" },
|
||||||
|
{ "<leader>sc", "<cmd>Telescope command_history<cr>", desc = "Command History" },
|
||||||
|
{ "<leader>sC", "<cmd>Telescope commands<cr>", desc = "Commands" },
|
||||||
|
{ "<leader>sd", "<cmd>Telescope diagnostics bufnr=0<cr>", desc = "Document Diagnostics" },
|
||||||
|
{ "<leader>sD", "<cmd>Telescope diagnostics<cr>", desc = "Workspace Diagnostics" },
|
||||||
|
{ "<leader>sg", LazyVim.pick("live_grep"), desc = "Grep (Root Dir)" },
|
||||||
|
{ "<leader>sG", LazyVim.pick("live_grep", { root = false }), desc = "Grep (cwd)" },
|
||||||
|
{ "<leader>sh", "<cmd>Telescope help_tags<cr>", desc = "Help Pages" },
|
||||||
|
{ "<leader>sH", "<cmd>Telescope highlights<cr>", desc = "Search Highlight Groups" },
|
||||||
|
{ "<leader>sj", "<cmd>Telescope jumplist<cr>", desc = "Jumplist" },
|
||||||
|
{ "<leader>sk", "<cmd>Telescope keymaps<cr>", desc = "Key Maps" },
|
||||||
|
{ "<leader>sl", "<cmd>Telescope loclist<cr>", desc = "Location List" },
|
||||||
|
{ "<leader>sM", "<cmd>Telescope man_pages<cr>", desc = "Man Pages" },
|
||||||
|
{ "<leader>sm", "<cmd>Telescope marks<cr>", desc = "Jump to Mark" },
|
||||||
|
{ "<leader>so", "<cmd>Telescope vim_options<cr>", desc = "Options" },
|
||||||
|
{ "<leader>sR", "<cmd>Telescope resume<cr>", desc = "Resume" },
|
||||||
|
{ "<leader>sq", "<cmd>Telescope quickfix<cr>", desc = "Quickfix List" },
|
||||||
|
{ "<leader>sw", LazyVim.pick("grep_string", { word_match = "-w" }), desc = "Word (Root Dir)" },
|
||||||
|
{ "<leader>sW", LazyVim.pick("grep_string", { root = false, word_match = "-w" }), desc = "Word (cwd)" },
|
||||||
|
{ "<leader>sw", LazyVim.pick("grep_string"), mode = "v", desc = "Selection (Root Dir)" },
|
||||||
|
{ "<leader>sW", LazyVim.pick("grep_string", { root = false }), mode = "v", desc = "Selection (cwd)" },
|
||||||
|
{ "<leader>uC", LazyVim.pick("colorscheme", { enable_preview = true }), desc = "Colorscheme with Preview" },
|
||||||
|
{
|
||||||
|
"<leader>ss",
|
||||||
|
function()
|
||||||
|
require("telescope.builtin").lsp_document_symbols({
|
||||||
|
symbols = require("lazyvim.config").get_kind_filter(),
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
desc = "Goto Symbol",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<leader>sS",
|
||||||
|
function()
|
||||||
|
require("telescope.builtin").lsp_dynamic_workspace_symbols({
|
||||||
|
symbols = require("lazyvim.config").get_kind_filter(),
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
desc = "Goto Symbol (Workspace)",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
opts = function()
|
||||||
|
local actions = require("telescope.actions")
|
||||||
|
|
||||||
|
local open_with_trouble = function(...)
|
||||||
|
return require("trouble.sources.telescope").open(...)
|
||||||
|
end
|
||||||
|
local find_files_no_ignore = function()
|
||||||
|
local action_state = require("telescope.actions.state")
|
||||||
|
local line = action_state.get_current_line()
|
||||||
|
LazyVim.pick("find_files", { no_ignore = true, default_text = line })()
|
||||||
|
end
|
||||||
|
local find_files_with_hidden = function()
|
||||||
|
local action_state = require("telescope.actions.state")
|
||||||
|
local line = action_state.get_current_line()
|
||||||
|
LazyVim.pick("find_files", { hidden = true, default_text = line })()
|
||||||
|
end
|
||||||
|
|
||||||
|
return {
|
||||||
|
defaults = {
|
||||||
|
prompt_prefix = " ",
|
||||||
|
selection_caret = " ",
|
||||||
|
-- open files in the first window that is an actual file.
|
||||||
|
-- use the current window if no other window is available.
|
||||||
|
get_selection_window = function()
|
||||||
|
local wins = vim.api.nvim_list_wins()
|
||||||
|
table.insert(wins, 1, vim.api.nvim_get_current_win())
|
||||||
|
for _, win in ipairs(wins) do
|
||||||
|
local buf = vim.api.nvim_win_get_buf(win)
|
||||||
|
if vim.bo[buf].buftype == "" then
|
||||||
|
return win
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return 0
|
||||||
|
end,
|
||||||
|
mappings = {
|
||||||
|
i = {
|
||||||
|
["<c-t>"] = open_with_trouble,
|
||||||
|
["<a-t>"] = open_with_trouble,
|
||||||
|
["<a-i>"] = find_files_no_ignore,
|
||||||
|
["<a-h>"] = find_files_with_hidden,
|
||||||
|
["<C-Down>"] = actions.cycle_history_next,
|
||||||
|
["<C-Up>"] = actions.cycle_history_prev,
|
||||||
|
["<C-f>"] = actions.preview_scrolling_down,
|
||||||
|
["<C-b>"] = actions.preview_scrolling_up,
|
||||||
|
},
|
||||||
|
n = {
|
||||||
|
["q"] = actions.close,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Flash Telescope config
|
||||||
|
{
|
||||||
|
"nvim-telescope/telescope.nvim",
|
||||||
|
optional = true,
|
||||||
|
opts = function(_, opts)
|
||||||
|
if not LazyVim.has("flash.nvim") then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
local function flash(prompt_bufnr)
|
||||||
|
require("flash").jump({
|
||||||
|
pattern = "^",
|
||||||
|
label = { after = { 0, 0 } },
|
||||||
|
search = {
|
||||||
|
mode = "search",
|
||||||
|
exclude = {
|
||||||
|
function(win)
|
||||||
|
return vim.bo[vim.api.nvim_win_get_buf(win)].filetype ~= "TelescopeResults"
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
action = function(match)
|
||||||
|
local picker = require("telescope.actions.state").get_current_picker(prompt_bufnr)
|
||||||
|
picker:set_selection(match.pos[1] - 1)
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
opts.defaults = vim.tbl_deep_extend("force", opts.defaults or {}, {
|
||||||
|
mappings = { n = { s = flash }, i = { ["<c-s>"] = flash } },
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- better vim.ui with telescope
|
||||||
|
{
|
||||||
|
"stevearc/dressing.nvim",
|
||||||
|
lazy = true,
|
||||||
|
init = function()
|
||||||
|
---@diagnostic disable-next-line: duplicate-set-field
|
||||||
|
vim.ui.select = function(...)
|
||||||
|
require("lazy").load({ plugins = { "dressing.nvim" } })
|
||||||
|
return vim.ui.select(...)
|
||||||
|
end
|
||||||
|
---@diagnostic disable-next-line: duplicate-set-field
|
||||||
|
vim.ui.input = function(...)
|
||||||
|
require("lazy").load({ plugins = { "dressing.nvim" } })
|
||||||
|
return vim.ui.input(...)
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
}
|
@ -57,6 +57,7 @@ return {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nvim-telescope/telescope.nvim",
|
"nvim-telescope/telescope.nvim",
|
||||||
|
optional = true,
|
||||||
dependencies = {
|
dependencies = {
|
||||||
{
|
{
|
||||||
"ANGkeith/telescope-terraform-doc.nvim",
|
"ANGkeith/telescope-terraform-doc.nvim",
|
||||||
|
@ -1,8 +1,7 @@
|
|||||||
local pick = function()
|
local pick = function()
|
||||||
if pcall(require, "telescope") then
|
if LazyVim.pick.picker.name == "telescope" then
|
||||||
return vim.cmd("Telescope projects")
|
return vim.cmd("Telescope projects")
|
||||||
end
|
elseif LazyVim.pick.picker.name == "fzf" then
|
||||||
|
|
||||||
local fzf_lua = require("fzf-lua")
|
local fzf_lua = require("fzf-lua")
|
||||||
local history = require("project_nvim.utils.history")
|
local history = require("project_nvim.utils.history")
|
||||||
local results = history.get_recent_projects()
|
local results = history.get_recent_projects()
|
||||||
@ -15,6 +14,7 @@ local pick = function()
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
@ -34,24 +34,6 @@ return {
|
|||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
|
|
||||||
-- better vim.ui
|
|
||||||
{
|
|
||||||
"stevearc/dressing.nvim",
|
|
||||||
lazy = true,
|
|
||||||
init = function()
|
|
||||||
---@diagnostic disable-next-line: duplicate-set-field
|
|
||||||
vim.ui.select = function(...)
|
|
||||||
require("lazy").load({ plugins = { "dressing.nvim" } })
|
|
||||||
return vim.ui.select(...)
|
|
||||||
end
|
|
||||||
---@diagnostic disable-next-line: duplicate-set-field
|
|
||||||
vim.ui.input = function(...)
|
|
||||||
require("lazy").load({ plugins = { "dressing.nvim" } })
|
|
||||||
return vim.ui.input(...)
|
|
||||||
end
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
|
|
||||||
-- This is what powers LazyVim's fancy-looking
|
-- This is what powers LazyVim's fancy-looking
|
||||||
-- tabs, which include filetype icons and close buttons.
|
-- tabs, which include filetype icons and close buttons.
|
||||||
{
|
{
|
||||||
|
@ -32,6 +32,7 @@ local deprecated = {
|
|||||||
toggle_diagnostics = { "toggle", "diagnostics" },
|
toggle_diagnostics = { "toggle", "diagnostics" },
|
||||||
toggle_number = { "toggle", "number" },
|
toggle_number = { "toggle", "number" },
|
||||||
fg = "ui",
|
fg = "ui",
|
||||||
|
telescope = "pick",
|
||||||
}
|
}
|
||||||
|
|
||||||
setmetatable(M, {
|
setmetatable(M, {
|
||||||
@ -78,8 +79,10 @@ end
|
|||||||
|
|
||||||
---@param extra string
|
---@param extra string
|
||||||
function M.has_extra(extra)
|
function M.has_extra(extra)
|
||||||
|
local Config = require("lazyvim.config")
|
||||||
local modname = "lazyvim.plugins.extras." .. extra
|
local modname = "lazyvim.plugins.extras." .. extra
|
||||||
return vim.tbl_contains(require("lazy.core.config").spec.modules, modname)
|
return vim.tbl_contains(require("lazy.core.config").spec.modules, modname)
|
||||||
|
or vim.tbl_contains(Config.json.data.extras, modname)
|
||||||
end
|
end
|
||||||
|
|
||||||
---@param fn fun()
|
---@param fn fun()
|
||||||
|
@ -12,14 +12,43 @@ local M = setmetatable({}, {
|
|||||||
---@field buf? number
|
---@field buf? number
|
||||||
---@field show_untracked? boolean
|
---@field show_untracked? boolean
|
||||||
|
|
||||||
|
---@class LazyPicker
|
||||||
|
---@field name string
|
||||||
|
---@field open fun(command:string, opts?:lazyvim.util.pick.Opts)
|
||||||
|
---@field commands table<string, string>
|
||||||
|
|
||||||
|
---@type LazyPicker?
|
||||||
|
M.picker = nil
|
||||||
|
|
||||||
---@type table<string, string>
|
---@type table<string, string>
|
||||||
M.commands = {
|
M.commands = {
|
||||||
files = "find_files",
|
files = "find_files",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
---@param picker LazyPicker
|
||||||
|
function M.register(picker)
|
||||||
|
-- this only happens when using :LazyExtras
|
||||||
|
-- so allow to get the full spec
|
||||||
|
if vim.v.vim_did_enter == 1 then
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
if M.picker then
|
||||||
|
LazyVim.warn(
|
||||||
|
"`LazyVim.pick`: picker already set to `" .. M.picker.name .. "`,\nignoring new picker `" .. picker.name .. "`"
|
||||||
|
)
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
M.picker = picker
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
|
||||||
---@param command? string
|
---@param command? string
|
||||||
---@param opts? lazyvim.util.pick.Opts
|
---@param opts? lazyvim.util.pick.Opts
|
||||||
function M.open(command, opts)
|
function M.open(command, opts)
|
||||||
|
if not M.picker then
|
||||||
|
return LazyVim.error("LazyVim.pick: picker not set")
|
||||||
|
end
|
||||||
|
|
||||||
command = command or "auto"
|
command = command or "auto"
|
||||||
opts = opts or {}
|
opts = opts or {}
|
||||||
|
|
||||||
@ -46,8 +75,8 @@ function M.open(command, opts)
|
|||||||
opts.show_untracked = opts.show_untracked ~= false
|
opts.show_untracked = opts.show_untracked ~= false
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
command = M.commands[command] or command
|
command = M.picker.commands[command] or command
|
||||||
M._open(command, opts)
|
M.picker.open(command, opts)
|
||||||
end
|
end
|
||||||
|
|
||||||
---@param command? string
|
---@param command? string
|
||||||
|
@ -1,48 +0,0 @@
|
|||||||
---@class lazyvim.util.telescope
|
|
||||||
---@overload fun(builtin:string, opts?:lazyvim.util.pick.Opts)
|
|
||||||
local M = setmetatable({}, {
|
|
||||||
__call = function(m, ...)
|
|
||||||
return m.telescope(...)
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
|
|
||||||
-- this will return a function that calls telescope.
|
|
||||||
-- cwd will default to lazyvim.util.get_root
|
|
||||||
-- for `files`, git_files or find_files will be chosen depending on .git
|
|
||||||
---@param builtin string
|
|
||||||
---@param opts? lazyvim.util.pick.Opts
|
|
||||||
function M.open(builtin, opts)
|
|
||||||
opts = opts or {}
|
|
||||||
if opts.cwd and opts.cwd ~= vim.uv.cwd() then
|
|
||||||
local function open_cwd_dir()
|
|
||||||
local action_state = require("telescope.actions.state")
|
|
||||||
local line = action_state.get_current_line()
|
|
||||||
LazyVim.pick.open(
|
|
||||||
builtin,
|
|
||||||
vim.tbl_deep_extend("force", {}, opts or {}, {
|
|
||||||
root = false,
|
|
||||||
default_text = line,
|
|
||||||
})
|
|
||||||
)
|
|
||||||
end
|
|
||||||
---@diagnostic disable-next-line: inject-field
|
|
||||||
opts.attach_mappings = function(_, map)
|
|
||||||
-- opts.desc is overridden by telescope, until it's changed there is this fix
|
|
||||||
map("i", "<a-c>", open_cwd_dir, { desc = "Open cwd Directory" })
|
|
||||||
return true
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
require("telescope.builtin")[builtin](opts)
|
|
||||||
end
|
|
||||||
|
|
||||||
M.telescope = function(...)
|
|
||||||
LazyVim.deprecate("LazyVim.telescope", "LazyVim.pick")
|
|
||||||
return LazyVim.pick.wrap(...)
|
|
||||||
end
|
|
||||||
|
|
||||||
function M.config_files()
|
|
||||||
return LazyVim.pick.config_files()
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
Reference in New Issue
Block a user