Migrate Leaderf to Telescope

Written in Lua.
Very flexible.
Clean documentation.
Easy to extend and configure.
Can do everything I wanted with a good feeling.
This commit is contained in:
Daniel Siepmann 2022-03-16 14:44:49 +01:00
parent e29ceb3b66
commit 0d4f5463d1
Signed by: Daniel Siepmann
GPG key ID: 33D6629915560EF4
6 changed files with 71 additions and 218 deletions

View file

@ -163,6 +163,16 @@ let
];
};
telescope-ctags-outline = pkgs.vimUtils.buildVimPlugin {
name = "telescope-ctags-outline";
src = pkgs.fetchFromGitHub {
owner = "fcying";
repo = "telescope-ctags-outline.nvim";
rev = "35b2df9545f72352502703ba06b7ab711fa25e51";
sha256 = "e8QcD7H2unmoaLaN1JUxtOGQYBJGAXtfSnj8sW66ff4=";
};
};
in {
enable = true;
@ -238,8 +248,15 @@ in {
}
{
plugin = LeaderF;
config = pkgs.lib.fileContents ./neovim/plugins/leaderf.vim;
plugin = telescope-nvim;
type = "lua";
config = pkgs.lib.fileContents ./neovim/plugins/telescope.lua;
}
{
plugin = telescope-ctags-outline;
type = "lua";
config = pkgs.lib.fileContents ./neovim/plugins/telescope-ctags-outline.lua;
}
# Syntax
@ -308,5 +325,6 @@ in {
vim-addon-mw-utils
vim-textobj-user
plenary-nvim
];
}

View file

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

View file

@ -10,11 +10,11 @@ nnoremap <leader>v :set paste!<cr>
nnoremap <leader>nh :nohlsearch<cr>
" Configure navigation, e.g. go to buffer, file, ...
nnoremap <leader>pp :LeaderfSelf<cr>
nnoremap <leader>pf :LeaderfFile<cr>
nnoremap <leader>pb :LeaderfBuffer<cr>
nnoremap <leader>pt :LeaderfBufTag<cr>
nnoremap <silent> <leader>pc :call LeaderfCurrentComposerPackage()<cr>
nnoremap <leader>pp :Telescope builtin<cr>
nnoremap <leader>pf :Telescope find_files<cr>
nnoremap <leader>pb :Telescope buffers<cr>
nnoremap <leader>pt :Telescope ctags_outline outline<cr>
nnoremap <silent> <leader>pc :call TelescopeCurrentComposerPackage()<cr>
nnoremap <leader>k :NERDTreeToggle<cr>
nnoremap <leader>f :NERDTreeFind<cr>

View file

@ -1,209 +0,0 @@
let g:Lf_WorkingDirectoryMode = 'c'
let g:Lf_FollowLinks = 1
let g:Lf_ShowHidden = 1
let g:Lf_WindowPosition = 'popup'
let g:Lf_HideHelp = 1
let g:Lf_GtagsAutoUpdate = 0
let g:Lf_IgnoreCurrentBufferName = 1
let g:Lf_ShowDevIcons = 0
let g:Lf_PreviewInPopup = 0
let g:Lf_PreviewCode = 0
let g:Lf_CursorBlink = 1
" TODO: Try to port to existing colorscheme, does it work with load order?
let g:Lf_PopupPalette = {
\ 'dark': {
\ 'Lf_hl_popup_inputText': {
\ 'cterm': 'none',
\ 'ctermfg': 'blue',
\ 'ctermbg': '238',
\ },
\ 'Lf_hl_popup_window': {
\ 'cterm': 'none',
\ 'ctermfg': 'none',
\ 'ctermbg': '238',
\ },
\ 'Lf_hl_popup_blank': {
\ 'cterm': 'none',
\ 'ctermfg': 'none',
\ 'ctermbg': '238',
\ },
\ 'Lf_hl_popup_cursor': {
\ 'cterm': 'none',
\ 'ctermfg': 'none',
\ 'ctermbg': '235',
\ },
\ 'Lf_hl_popup_prompt': {
\ 'cterm': 'none',
\ 'ctermfg': 'none',
\ 'ctermbg': '238',
\ },
\ 'Lf_hl_popup_spin': {
\ 'cterm': 'none',
\ 'ctermfg': 'none',
\ 'ctermbg': '238',
\ },
\ 'Lf_hl_popup_normalMode': {
\ 'cterm': 'none',
\ 'ctermfg': 'none',
\ 'ctermbg': '238',
\ },
\ 'Lf_hl_popup_inputMode': {
\ 'cterm': 'none',
\ 'ctermfg': 'none',
\ 'ctermbg': '238',
\ },
\ 'Lf_hl_popup_category': {
\ 'cterm': 'none',
\ 'ctermfg': 'none',
\ 'ctermbg': '238',
\ },
\ 'Lf_hl_popup_nameOnlyMode': {
\ 'cterm': 'none',
\ 'ctermfg': 'none',
\ 'ctermbg': '238',
\ },
\ 'Lf_hl_popup_fullPathMode': {
\ 'cterm': 'none',
\ 'ctermfg': 'none',
\ 'ctermbg': '238',
\ },
\ 'Lf_hl_popup_fuzzyMode': {
\ 'cterm': 'none',
\ 'ctermfg': 'none',
\ 'ctermbg': '238',
\ },
\ 'Lf_hl_popup_regexMode': {
\ 'cterm': 'none',
\ 'ctermfg': 'none',
\ 'ctermbg': '238',
\ },
\ 'Lf_hl_popup_cwd': {
\ 'cterm': 'none',
\ 'ctermfg': 'none',
\ 'ctermbg': '238',
\ },
\ 'Lf_hl_popup_lineInfo': {
\ 'cterm': 'none',
\ 'ctermfg': 'none',
\ 'ctermbg': '238',
\ },
\ 'Lf_hl_popup_total': {
\ 'cterm': 'none',
\ 'ctermfg': 'none',
\ 'ctermbg': '238',
\ },
\ 'Lf_hl_cursorline': {
\ 'cterm': 'none',
\ 'ctermfg': 'none',
\ 'ctermbg': '235',
\ },
\ 'Lf_hl_selection': {
\ 'cterm': 'none',
\ 'ctermfg': 'none',
\ 'ctermbg': '238',
\ },
\ 'Lf_hl_match0': {
\ 'cterm': 'none',
\ 'ctermfg': 'blue',
\ 'ctermbg': '238',
\ },
\ 'Lf_hl_match1': {
\ 'cterm': 'none',
\ 'ctermfg': 'blue',
\ 'ctermbg': '238',
\ },
\ 'Lf_hl_match2': {
\ 'cterm': 'none',
\ 'ctermfg': 'blue',
\ 'ctermbg': '238',
\ },
\ 'Lf_hl_match3': {
\ 'cterm': 'none',
\ 'ctermfg': 'blue',
\ 'ctermbg': '238',
\ },
\ 'Lf_hl_match4': {
\ 'cterm': 'none',
\ 'ctermfg': 'blue',
\ 'ctermbg': '238',
\ },
\ 'Lf_hl_match': {
\ 'cterm': 'none',
\ 'ctermfg': 'blue',
\ 'ctermbg': '238',
\ },
\ 'Lf_hl_lineLocation': {
\ 'cterm': 'none',
\ 'ctermfg': 'none',
\ 'ctermbg': '238',
\ },
\ 'Lf_hl_previewTitle': {
\ 'cterm': 'none',
\ 'ctermfg': 'none',
\ 'ctermbg': '238',
\ },
\ 'Lf_hl_winNumber': {
\ 'cterm': 'none',
\ 'ctermfg': 'none',
\ 'ctermbg': '238',
\ },
\ 'Lf_hl_winIndicators': {
\ 'cterm': 'none',
\ 'ctermfg': 'none',
\ 'ctermbg': '238',
\ },
\ 'Lf_hl_winModified': {
\ 'cterm': 'none',
\ 'ctermfg': 'none',
\ 'ctermbg': '238',
\ },
\ 'Lf_hl_winNomodifiable': {
\ 'cterm': 'none',
\ 'ctermfg': 'none',
\ 'ctermbg': '238',
\ },
\ 'Lf_hl_winDirname': {
\ 'cterm': 'none',
\ 'ctermfg': 'none',
\ 'ctermbg': '238',
\ },
\ 'Lf_hl_quickfixFileName': {
\ 'cterm': 'none',
\ 'ctermfg': 'none',
\ 'ctermbg': '238',
\ },
\ 'Lf_hl_quickfixLineNumber': {
\ 'cterm': 'none',
\ 'ctermfg': 'none',
\ 'ctermbg': '238',
\ },
\ 'Lf_hl_quickfixColumnNumber': {
\ 'cterm': 'none',
\ 'ctermfg': 'none',
\ 'ctermbg': '238',
\ },
\ 'Lf_hl_loclistFileName': {
\ 'cterm': 'none',
\ 'ctermfg': 'none',
\ 'ctermbg': '238',
\ },
\ 'Lf_hl_loclistLineNumber': {
\ 'cterm': 'none',
\ 'ctermfg': 'none',
\ 'ctermbg': '238',
\ },
\ 'Lf_hl_loclistColumnNumber': {
\ 'cterm': 'none',
\ 'ctermfg': 'none',
\ 'ctermbg': '238',
\ },
\ }
\ }

View file

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

View file

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