fix: subcommand completion for each extension (#597)
This commit is contained in:
@@ -104,16 +104,17 @@ end
|
|||||||
-- @Summary get extensions sub command
|
-- @Summary get extensions sub command
|
||||||
-- register extensions dap gh etc.
|
-- register extensions dap gh etc.
|
||||||
-- input in command line `Telescope gh <TAB>`
|
-- input in command line `Telescope gh <TAB>`
|
||||||
-- It will show a list that all extensions sub command list
|
-- Returns a list for each extension.
|
||||||
-- ['commands','list_breakpoints','variables','issues','gist','pull_request']
|
|
||||||
function command.get_extensions_subcommand()
|
function command.get_extensions_subcommand()
|
||||||
local exts = require('telescope._extensions').manager
|
local exts = require('telescope._extensions').manager
|
||||||
local complete_ext_table = {}
|
local complete_ext_table = {}
|
||||||
for _,value in pairs(exts) do
|
for cmd,value in pairs(exts) do
|
||||||
if type(value) == "table" then
|
if type(value) == "table" then
|
||||||
|
local subcmds = {}
|
||||||
for key,_ in pairs(value) do
|
for key,_ in pairs(value) do
|
||||||
table.insert(complete_ext_table,key)
|
table.insert(subcmds, key)
|
||||||
end
|
end
|
||||||
|
complete_ext_table[cmd] = subcmds
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
return complete_ext_table
|
return complete_ext_table
|
||||||
|
|||||||
@@ -77,7 +77,7 @@ function! s:telescope_complete(arg,line,pos)
|
|||||||
let l:builtin_list = luaeval('vim.tbl_keys(require("telescope.builtin"))')
|
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:extensions_list = luaeval('vim.tbl_keys(require("telescope._extensions").manager)')
|
||||||
let l:options_list = luaeval('vim.tbl_keys(require("telescope.config").values)')
|
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 list = [extend(l:builtin_list,l:extensions_list),l:options_list]
|
||||||
let l = split(a:line[:a:pos-1], '\%(\%(\%(^\|[^\\]\)\\\)\@<!\s\)\+', 1)
|
let l = split(a:line[:a:pos-1], '\%(\%(\%(^\|[^\\]\)\\\)\@<!\s\)\+', 1)
|
||||||
@@ -89,7 +89,7 @@ function! s:telescope_complete(arg,line,pos)
|
|||||||
|
|
||||||
if n == 1
|
if n == 1
|
||||||
if index(l:extensions_list,l[1]) >= 0
|
if index(l:extensions_list,l[1]) >= 0
|
||||||
return join(l:extensions_subcommand_list,"\n")
|
return join(get(l:extensions_subcommand_dict, l[1], []),"\n")
|
||||||
endif
|
endif
|
||||||
return join(list[1],"\n")
|
return join(list[1],"\n")
|
||||||
endif
|
endif
|
||||||
|
|||||||
Reference in New Issue
Block a user