From 54ef9d90d5a032906bfb007113930dac0f665f72 Mon Sep 17 00:00:00 2001 From: Raphael Date: Mon, 2 Nov 2020 00:08:54 +0800 Subject: [PATCH] rewrite command of telescope (#197) * rewrite command of telescope * add complete support * add comment * rewrite get builtin list * Update README.md * use vim.tbl_keys function * rewrite complete-list --- README.md | 12 ++++++++++++ plugin/telescope.vim | 42 +++++++++++++++++++++--------------------- 2 files changed, 33 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index 45a505d..3a77aa0 100644 --- a/README.md +++ b/README.md @@ -485,6 +485,18 @@ Picker:new{ As an example, you could pipe your inputs into fzf, and then it can sort them for you. +### Command + +Also you can use the `Telescope` command with options in vim command line. like + +```vim +" Press Tab to get completion list +:Telescope find_files +" Command with options +:Telescope find_files prompt_prefix=🔍 + +``` + ## Other Examples diff --git a/plugin/telescope.vim b/plugin/telescope.vim index 8156f65..6538226 100644 --- a/plugin/telescope.vim +++ b/plugin/telescope.vim @@ -28,25 +28,25 @@ cnoremap (TelescopeFuzzyCommandSearch) e \ default_text = [=[" . escape(getcmdline(), '"') . "]=] \ }" -" Telescope Commands -command! -nargs=0 -bar TelescopeBuiltin lua require'telescope.builtin'.builtin{} -command! -nargs=0 -bar TelescopeFindFile lua require'telescope.builtin'.find_files{} -command! -nargs=0 -bar TelescopeLiveGrep lua require'telescope.builtin'.live_grep{} -command! -nargs=0 -bar TelescopeGrepString lua require'telescope.builtin'.grep_string{} -command! -nargs=0 -bar TelescopeFindGitFile lua require'telescope.builtin'.git_files{} -command! -nargs=0 -bar TelescopeOldFiles lua require'telescope.builtin'.oldfiles{} -command! -nargs=0 -bar TelescopeQuickFix lua require'telescope.builtin'.quickfix{} -command! -nargs=0 -bar TelescopeLocalList lua require'telescope.builtin'.loclist{} -command! -nargs=0 -bar TelescopeCommandHistory lua require'telescope.builtin'.command_history{} -command! -nargs=0 -bar TelescopeBuffers lua require'telescope.builtin'.buffers{} -command! -nargs=0 -bar TelescopeLspReferences lua require'telescope.builtin'.lsp_references{} -command! -nargs=0 -bar TelescopeLspDocumentSymbols lua require'telescope.builtin'.lsp_document_symbols{} -command! -nargs=0 -bar TelescopeLspWorkSpaceSymbols lua require'telescope.builtin'.lsp_workspace_symbols{} -command! -nargs=0 -bar TelescopeLspCodeActions lua require'telescope.builtin'.lsp_code_actions{} -command! -nargs=0 -bar TelescopeTreesitter lua require'telescope.builtin'.treesitter{} -command! -nargs=0 -bar TelescopePlanets lua require'telescope.builtin'.planets{} -command! -nargs=0 -bar TelescopeHelpTags lua require'telescope.builtin'.help_tags{} -command! -nargs=0 -bar TelescopeManPages lua require'telescope.builtin'.man_pages{} -command! -nargs=0 -bar TelescopeColorscheme lua require'telescope.builtin'.colorscheme{} -command! -nargs=0 -bar TelescopeMarks lua require'telescope.builtin'.marks{} +" Telescope builtin lists +function! s:telescope_complete(...) + return luaeval('vim.tbl_keys(require("telescope.builtin"))') +endfunction +" TODO: If the lua datatype contains complex type,It will cause convert to +" viml datatype failed. So current doesn't support config telescope.themes +function! s:load_command(builtin,...) abort + let opts = {} + + " range command args + for arg in a:000 + let opt = split(arg,'=') + let opts[opt[0]] = opt[1] + endfor + + let telescope = v:lua.require('telescope.builtin') + call telescope[a:builtin](opts) +endfunction + +" Telescope Commands with complete +command! -nargs=+ -complete=customlist,s:telescope_complete Telescope call s:load_command()