diff options
author | ngharo <root@ngha.ro> | 2023-12-29 17:46:10 -0600 |
---|---|---|
committer | ngharo <root@ngha.ro> | 2023-12-29 17:46:10 -0600 |
commit | 31474998d6935d48f678988c8a7a4fac7bb2ae72 (patch) | |
tree | c71114c23c31f888c0be1ec1b2efdab0d5ce6ca5 /after/plugin/telescope.lua | |
download | nvim-31474998d6935d48f678988c8a7a4fac7bb2ae72.tar.xz nvim-31474998d6935d48f678988c8a7a4fac7bb2ae72.zip |
Inititial commit
Diffstat (limited to 'after/plugin/telescope.lua')
-rw-r--r-- | after/plugin/telescope.lua | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/after/plugin/telescope.lua b/after/plugin/telescope.lua new file mode 100644 index 0000000..16187c6 --- /dev/null +++ b/after/plugin/telescope.lua @@ -0,0 +1,74 @@ +local builtin = require('telescope.builtin') +local Job = require("plenary.job") + +local vks = function(mode, key, action, desc) + vim.keymap.set(mode, key, action , { noremap = true, desc = desc }) +end + +local function search_emoji() + builtin.symbols({ sources = {'emoji'} }) +end + +local function grep_string() + builtin.grep_string({ search = "", only_sort_text = true }) +end + +-- borrowed from ThePrimeagen/harpoon/utils.lua +local function get_os_command_output(cmd, cwd) + if type(cmd) ~= "table" then + print("Harpoon: [get_os_command_output]: cmd has to be a table") + return {} + end + local command = table.remove(cmd, 1) + local stderr = {} + local stdout, ret = Job + :new({ + command = command, + args = cmd, + cwd = cwd, + on_stderr = function(_, data) + table.insert(stderr, data) + end, + }) + :sync() + return stdout, ret, stderr +end + +local function project_files() + local _, ret, _ = get_os_command_output({ + 'git', 'rev-parse', '--is-inside-wirk-tree', + }) + if ret == 0 then + builtin.git_files({ prompt_title = 'Git Files', prompt_prefix = '>>' }) + else + builtin.find_files() + end +end + +-- direct commands +vks('n', '<leader>b', builtin.buffers, 'Buffers') +vks('n', '<leader>r', builtin.grep_string, 'References') +vks('n', '<leader>p', project_files, 'Paths' ) +-- project_files unifies git_files and find_files +-- vks('n', '<leader>sf', builtin.git_files, 'Git files') +-- vks('n', '<leader>sp', builtin.find_files, 'Paths' ) + +-- search submenu +vks('n', '<leader>sc', builtin.commands, 'Commands') +vks('n', '<leader>s:', builtin.command_history, 'Command history') +vks('n', '<leader>sC', builtin.colorscheme, 'Colorchemes') +vks('n', '<leader>ss', grep_string, 'String (like ag)') -- Emulate fzf's Ag: +vks('n', '<leader>sb', builtin.buffers, 'Buffers') +vks('n', '<leader>se', search_emoji, 'Emojis') +vks('n', '<leader>sg', builtin.live_grep, 'Find/grep' ) +vks('n', '<leader>sh', builtin.help_tags, 'Help') +vks('n', '<leader>sk', builtin.keymaps, 'Key mappings') +vks('n', '<leader>so', builtin.oldfiles, 'Recent Opened files') +vks('n', '<leader>sr', builtin.registers, 'Registers') +vks('n', '<leader>sd', builtin.lsp_document_symbols, 'Symbols - document') +vks('n', '<leader>sw', builtin.lsp_workspace_symbols, 'Symbols - workspace') +vks('n', '<leader>st', builtin.tags, 'Tags') +vks('n', '<leader>s?', builtin.resume, 'Resume previous search') + +-- vim.keymap.set('n', '<leader>/', builtin.current_buffer_fuzzy_find, { desc = '[/] Fuzzily search in current buffer]' }) +-- E5108: Error executing lua: ...r/start/telescope.nvim/lua/telescope/builtin/__files.lua:413: attempt to call method '_get_hl_from_capture' (a nil value) |