Switch back from fzf to telescope within neovim

As the fzf plugin was slow on large code bases.

This reverts commit cee10964f0.
This commit is contained in:
Daniel Siepmann 2023-10-18 13:28:32 +02:00
parent 652dbf9e39
commit 4ce11817ff
Signed by: Daniel Siepmann
GPG key ID: 33D6629915560EF4
9 changed files with 103 additions and 62 deletions

View file

@ -162,15 +162,14 @@ let
];
};
# Use custom one until nixpkgs updates to that version
fzf-lua = pkgs.vimUtils.buildVimPlugin rec {
pname = "fzf-lua";
version = "44f1ec92b57f15745f5f21cf224e521ce9ba0b66";
telescope-ctags-outline = pkgs.vimUtils.buildVimPlugin rec {
pname = "telescope-ctags-outline";
version = "35b2df9545f72352502703ba06b7ab711fa25e51";
src = pkgs.fetchFromGitHub {
owner = "ibhagwan";
repo = pname;
owner = "fcying";
repo = "${pname}.nvim";
rev = version;
sha256 = "AkZyCzLl4+jxQW07VI3sPRcPcFRKheXmOz0fWWfzWjw=";
sha256 = "e8QcD7H2unmoaLaN1JUxtOGQYBJGAXtfSnj8sW66ff4=";
};
};
@ -226,14 +225,15 @@ in {
}
{
plugin = fzf-lua.overrideAttrs (old: {
patches = (old.patches or []) ++ [
./neovim/patches/fzf-lua-colors.patch
];
});
plugin = telescope-nvim;
type = "lua";
config = builtins.readFile(./neovim/plugins/fzf-lua.lua);
config = builtins.readFile(./neovim/plugins/telescope.lua);
}
{
plugin = telescope-ctags-outline;
type = "lua";
config = builtins.readFile(./neovim/plugins/telescope-ctags-outline.lua);
}
dressing-nvim

View file

@ -0,0 +1,32 @@
local telescope = require('telescope')
local pickers = require('telescope.pickers')
local finders = require('telescope.finders')
local actions = require('telescope.actions')
local action_state = require('telescope.actions.state')
local conf = require('telescope.config').values
local custom_runs = function(opts)
opts = opts or {}
local results = { 'CopyFileName', 'CopyRelativeFilePath', 'CopyFullFilePath' }
pickers.new(opts, {
prompt_title = 'Custom Runs',
finder = finders.new_table {
results = results
},
sorter = conf.generic_sorter(opts),
attach_mappings = function(prompt_bufnr, map)
actions.select_default:replace(function()
actions.close(prompt_bufnr)
local selection = action_state.get_selected_entry()
vim.api.nvim_call_function(selection[1], {})
end)
return true
end,
}):find()
end
return telescope.register_extension({
exports = { custom_runs = custom_runs },
})

View file

@ -113,7 +113,7 @@ function! StartProfiling()
execute(':profile file *')
endfunc
function! FilesInCurrentComposerPackage()
function! TelescopeCurrentComposerPackage()
let l:filePath = split(expand('%:p:h'), '/')
while !filereadable('/' . join(l:filePath + ['composer.json'], '/')) && len(l:filePath)
@ -121,7 +121,7 @@ function! FilesInCurrentComposerPackage()
endwhile
if len(l:filePath)
execute("lua require ('fzf-lua').files({cwd='/" . join(l:filePath, '/') . "'})")
execute(':Telescope find_files cwd=/' . join(l:filePath, '/'))
else
echom 'No composer package detected.'
endif

View file

@ -8,11 +8,12 @@ nnoremap L $
nnoremap <leader>nh :nohlsearch<cr>
" Configure navigation, e.g. go to buffer, file, ...
nnoremap <leader>pp :lua require('fzf-lua').builtin()<CR>
nnoremap <leader>pf :lua require('fzf-lua').git_files()<CR>
nnoremap <leader>pb :lua require('fzf-lua').buffers()<CR>
nnoremap <leader>pt :lua require('fzf-lua').btags()<CR>
nnoremap <silent> <leader>pc :call FilesInCurrentComposerPackage()<cr>
nnoremap <leader>pp :lua require('telescope.builtin').builtin({ include_extensions = true })<cr>
nnoremap <leader>pf :Telescope git_files<cr>
nnoremap <leader>pb :Telescope buffers<cr>
nnoremap <leader>pt :Telescope ctags_outline outline<cr>
nnoremap <leader>pr :Telescope custom_runs<cr>
nnoremap <silent> <leader>pc :call TelescopeCurrentComposerPackage()<cr>
" lca = lsp code action
nnoremap <leader>lca :lua vim.lsp.buf.code_action()<cr>

View file

@ -1,13 +0,0 @@
diff --git a/lua/fzf-lua/make_entry.lua b/lua/fzf-lua/make_entry.lua
index f964766..be136d7 100644
--- a/lua/fzf-lua/make_entry.lua
+++ b/lua/fzf-lua/make_entry.lua
@@ -413,7 +413,7 @@ M.tag = function(x, opts)
return ("%s%s: %s %s"):format(
M.file(file, opts),
not line and "" or ":" .. utils.ansi_codes.green(tostring(line)),
- utils.ansi_codes.magenta(name),
+ utils.ansi_codes.blue(name),
utils.ansi_codes.green(tag)
), line
end

View file

@ -1,19 +0,0 @@
require("fzf-lua").setup({
fzf_bin = "fzf-tmux",
fzf_opts = {
["--border"] = "rounded",
},
fzf_tmux_opts = {
["-p"] = "",
["-y"] = "1",
["-w"] = "95%",
["-h"] = "75%",
},
winopts = {
preview = {
hidden = "hidden", -- I don't like a preview, keep space for selection
},
},
})
require("fzf-lua").register_ui_select()

View file

@ -0,0 +1,18 @@
require('telescope').setup({
extensions = {
ctags_outline = {
ctags = { 'ctags' },
ft_opt = {
css = '--css-types=vcit',
fluid = '--xml-types=si',
markdown = '--Markdown-types=csStT',
rst = '--reStructuredText-types=csSt',
sql = '--SQL-types=tE',
xml = '--xml-types=ci',
yaml = '--Yaml-types=t',
},
},
},
})
require('telescope').load_extension('ctags_outline')

View file

@ -0,0 +1,31 @@
local telescope = require('telescope')
local actions = require('telescope.actions')
local actionsLayout = require('telescope.actions.layout')
telescope.setup({
defaults = {
layout_strategy = 'center',
layout_config = {
width = 0.6,
},
sorting_strategy = 'ascending',
default_mappings = {
i = {
["<C-j>"] = actions.move_selection_next,
["<C-k>"] = actions.move_selection_previous,
["<C-c>"] = actions.close,
["<CR>"] = actions.select_default,
["<C-h>"] = actions.which_key,
["<C-v>"] = actions.select_vertical,
["<C-p>"] = actionsLayout.toggle_preview,
},
},
preview = {
hide_on_startup = true,
},
},
})
telescope.load_extension('custom_runs')

View file

@ -21,14 +21,5 @@
sensibleOnTop = false;
plugins = with pkgs.tmuxPlugins; [
{
plugin = fzf-tmux-url;
extraConfig = ''
set -g @fzf-url-fzf-options '-p -y 1 -w 95% -h 75%'
'';
}
];
extraConfig = builtins.readFile ../files/tmux;
}