diff --git a/home/programs/neovim.nix b/home/programs/neovim.nix index b109113..8354863 100644 --- a/home/programs/neovim.nix +++ b/home/programs/neovim.nix @@ -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 ]; } diff --git a/home/programs/neovim/config/functions.vim b/home/programs/neovim/config/functions.vim index fea577b..2276b94 100644 --- a/home/programs/neovim/config/functions.vim +++ b/home/programs/neovim/config/functions.vim @@ -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 diff --git a/home/programs/neovim/config/mappings.vim b/home/programs/neovim/config/mappings.vim index 7b7ad7d..2371717 100644 --- a/home/programs/neovim/config/mappings.vim +++ b/home/programs/neovim/config/mappings.vim @@ -10,11 +10,11 @@ nnoremap v :set paste! nnoremap nh :nohlsearch " Configure navigation, e.g. go to buffer, file, ... -nnoremap pp :LeaderfSelf -nnoremap pf :LeaderfFile -nnoremap pb :LeaderfBuffer -nnoremap pt :LeaderfBufTag -nnoremap pc :call LeaderfCurrentComposerPackage() +nnoremap pp :Telescope builtin +nnoremap pf :Telescope find_files +nnoremap pb :Telescope buffers +nnoremap pt :Telescope ctags_outline outline +nnoremap pc :call TelescopeCurrentComposerPackage() nnoremap k :NERDTreeToggle nnoremap f :NERDTreeFind diff --git a/home/programs/neovim/plugins/leaderf.vim b/home/programs/neovim/plugins/leaderf.vim deleted file mode 100644 index 7643ebf..0000000 --- a/home/programs/neovim/plugins/leaderf.vim +++ /dev/null @@ -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', - \ }, - \ } - \ } diff --git a/home/programs/neovim/plugins/telescope-ctags-outline.lua b/home/programs/neovim/plugins/telescope-ctags-outline.lua new file mode 100644 index 0000000..6607fe1 --- /dev/null +++ b/home/programs/neovim/plugins/telescope-ctags-outline.lua @@ -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') diff --git a/home/programs/neovim/plugins/telescope.lua b/home/programs/neovim/plugins/telescope.lua new file mode 100644 index 0000000..8ee149e --- /dev/null +++ b/home/programs/neovim/plugins/telescope.lua @@ -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 = { + [""] = telescopeActions.move_selection_next, + [""] = telescopeActions.move_selection_previous, + [""] = telescopeActions.close, + + [""] = telescopeActions.select_default, + [""] = telescopeActions.which_key, + [""] = telescopeActions.select_vertical, + + [""] = telescopeActionsLayout.toggle_preview, + }, + }, + + preview = { + hide_on_startup = true, + }, + }, +})