From 20984fc5cdb69497b0c523236ee3f9160e22df30 Mon Sep 17 00:00:00 2001 From: tamago324 Date: Wed, 3 Mar 2021 22:16:15 +0900 Subject: [PATCH] fix: subcommand completion for each extension (#597) --- lua/telescope/command.lua | 9 +++++---- plugin/telescope.vim | 4 ++-- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/lua/telescope/command.lua b/lua/telescope/command.lua index 3034164..978d5be 100644 --- a/lua/telescope/command.lua +++ b/lua/telescope/command.lua @@ -104,16 +104,17 @@ end -- @Summary get extensions sub command -- register extensions dap gh etc. -- input in command line `Telescope gh ` --- It will show a list that all extensions sub command list --- ['commands','list_breakpoints','variables','issues','gist','pull_request'] +-- Returns a list for each extension. function command.get_extensions_subcommand() local exts = require('telescope._extensions').manager local complete_ext_table = {} - for _,value in pairs(exts) do + for cmd,value in pairs(exts) do if type(value) == "table" then + local subcmds = {} for key,_ in pairs(value) do - table.insert(complete_ext_table,key) + table.insert(subcmds, key) end + complete_ext_table[cmd] = subcmds end end return complete_ext_table diff --git a/plugin/telescope.vim b/plugin/telescope.vim index 2ced08b..751358c 100644 --- a/plugin/telescope.vim +++ b/plugin/telescope.vim @@ -77,7 +77,7 @@ function! s:telescope_complete(arg,line,pos) let l:builtin_list = luaeval('vim.tbl_keys(require("telescope.builtin"))') let l:extensions_list = luaeval('vim.tbl_keys(require("telescope._extensions").manager)') let l:options_list = luaeval('vim.tbl_keys(require("telescope.config").values)') - let l:extensions_subcommand_list = luaeval('require("telescope.command").get_extensions_subcommand()') + let l:extensions_subcommand_dict = luaeval('require("telescope.command").get_extensions_subcommand()') let list = [extend(l:builtin_list,l:extensions_list),l:options_list] let l = split(a:line[:a:pos-1], '\%(\%(\%(^\|[^\\]\)\\\)\@= 0 - return join(l:extensions_subcommand_list,"\n") + return join(get(l:extensions_subcommand_dict, l[1], []),"\n") endif return join(list[1],"\n") endif