diff options
author | Karel Kočí <cynerd@email.cz> | 2024-04-07 14:24:58 +0200 |
---|---|---|
committer | Karel Kočí <cynerd@email.cz> | 2024-04-07 14:24:58 +0200 |
commit | e1e143bc63895d96fa9dc86416437d11ba130e16 (patch) | |
tree | 03345eae1a469d1692d33c16b23bd72d9e48304f /config/nvim | |
parent | 7e0877988e4f1104d4f13f1b157ace744302fcc9 (diff) | |
download | myconfigs-e1e143bc63895d96fa9dc86416437d11ba130e16.tar.gz myconfigs-e1e143bc63895d96fa9dc86416437d11ba130e16.tar.bz2 myconfigs-e1e143bc63895d96fa9dc86416437d11ba130e16.zip |
nvim: improve telescope file open
Diffstat (limited to 'config/nvim')
-rw-r--r-- | config/nvim/init.vim | 9 | ||||
-rw-r--r-- | config/nvim/lua/mytelescopefiles.lua | 22 |
2 files changed, 23 insertions, 8 deletions
diff --git a/config/nvim/init.vim b/config/nvim/init.vim index 491ae47..77e572d 100644 --- a/config/nvim/init.vim +++ b/config/nvim/init.vim @@ -136,20 +136,13 @@ let g:UltiSnipsJumpBackwardTrigger='<c-k>' " Telescope nnoremap <c-c><c-c> :Telescope buffers<cr> -nnoremap <c-p> :call TelescopeFiles()<cr> +nnoremap <c-p> :lua require('mytelescopefiles')()<cr> nnoremap <c-s-p> :Telescope lsp_document_symbols<cr> nmap <leader>] :Telescope lsp_definitions<cr> nmap <leader><leader>] :Telescope lsp_type_definitions<cr> nmap <leader>[ :Telescope lsp_implementations<cr> nmap <leader><leader>[ :Telescope lsp_references<cr> nmap <F9> :Telescope diagnostics bufnr=0<cr> -function TelescopeFiles() - if stridx(system('git rev-parse --is-inside-work-tree 2>/dev/null || true'), 'true') != -1 - lua require('telescope.builtin').git_files{use_file_path=true,git_command={"sh","-c","git ls-files -c --recurse-submodules && git ls-files -o --exclude-standard"}} - else - lua require('telescope.builtin').find_files{} - endif -endfunction " Copy line location nmap <leader><leader>c :let @+=expand("%:p") . ":" . line(".")<cr> diff --git a/config/nvim/lua/mytelescopefiles.lua b/config/nvim/lua/mytelescopefiles.lua new file mode 100644 index 0000000..46253eb --- /dev/null +++ b/config/nvim/lua/mytelescopefiles.lua @@ -0,0 +1,22 @@ +local ts = require("telescope.builtin") +local utils = require("telescope.utils") + +return function() + local root, ret = utils.get_os_command_output({ "git", "rev-parse", "--show-toplevel" }, vim.fn.expand("%:h")) + if ret == 0 then + ts.git_files({ + git_command = { + "sh", + "-c", + "git -C " + .. root[1] + .. " ls-files -c --recurse-submodules && git -C " + .. root[1] + .. " ls-files -o --exclude-standard", + }, + }) + else + -- TODO use root if this file is relative to the current one + ts.find_files() + end +end |