summaryrefslogtreecommitdiff
path: root/lua
diff options
context:
space:
mode:
authorTimUntersberger <32014449+TimUntersberger@users.noreply.github.com>2020-09-12 23:02:10 +0200
committerGitHub <noreply@github.com>2020-09-12 17:02:10 -0400
commit3a9b25e6bf49e24794cfb06d1a2e2585f8de2ca9 (patch)
treecdda92a88b697e608b28507c54e8e99bd2e1e762 /lua
parent30536f753b72be9ce6806781d19d77f16012b21e (diff)
feat: builtin.commands (#54)
* fix: use correct path separator on windows * fix: add utils.get_separator * asdf * feat: add builtin.commands * change commands sorter * change sorter * change sorter
Diffstat (limited to 'lua')
-rw-r--r--lua/telescope/builtin.lua49
-rw-r--r--lua/telescope/make_entry.lua2
-rw-r--r--lua/telescope/utils.lua4
3 files changed, 54 insertions, 1 deletions
diff --git a/lua/telescope/builtin.lua b/lua/telescope/builtin.lua
index c4b7cb2..1c3c629 100644
--- a/lua/telescope/builtin.lua
+++ b/lua/telescope/builtin.lua
@@ -56,6 +56,55 @@ builtin.git_files = function(opts)
}):find()
end
+builtin.commands = function()
+ pickers.new({}, {
+ prompt = 'Commands',
+ finder = finders.new_table {
+ results = (function()
+ local command_iter = vim.api.nvim_get_commands({})
+ local commands = {}
+
+ for _, cmd in pairs(command_iter) do
+ table.insert(commands, cmd)
+ end
+
+ return commands
+ end)(),
+ entry_maker = function(line)
+ return {
+ valid = line ~= "",
+ entry_type = make_entry.types.GENERIC,
+ value = line,
+ ordinal = line.name,
+ display = line.name
+ }
+ end
+ },
+ sorter = sorters.get_generic_fuzzy_sorter(),
+ attach_mappings = function(prompt_bufnr, map)
+ local run_command = function()
+ local selection = actions.get_selected_entry(prompt_bufnr)
+ actions.close(prompt_bufnr)
+ local val = selection.value
+ local cmd = string.format([[:%s ]], val.name)
+
+ if val.nargs == "0" then
+ vim.cmd(cmd)
+ else
+ vim.cmd [[stopinsert]]
+ vim.fn.feedkeys(cmd)
+ end
+
+ end
+
+ map('i', '<CR>', run_command)
+ map('n', '<CR>', run_command)
+
+ return true
+ end
+ }):find()
+end
+
builtin.live_grep = function(opts)
opts = opts or {}
diff --git a/lua/telescope/make_entry.lua b/lua/telescope/make_entry.lua
index 35fef98..3ae4de5 100644
--- a/lua/telescope/make_entry.lua
+++ b/lua/telescope/make_entry.lua
@@ -70,7 +70,7 @@ function make_entry.gen_from_file(opts)
entry_type = make_entry.types.FILE,
filename = line,
- path = cwd .. '/' .. line,
+ path = cwd .. utils.get_separator() .. line,
}
entry.display = make_display(line)
diff --git a/lua/telescope/utils.lua b/lua/telescope/utils.lua
index 6154889..fb7d48b 100644
--- a/lua/telescope/utils.lua
+++ b/lua/telescope/utils.lua
@@ -138,4 +138,8 @@ function utils.make_default_callable(f, default_opts)
})
end
+function utils.get_separator()
+ return package.config:sub(1, 1)
+end
+
return utils