diff --git a/home/programs/neovim/configuration/lua/telescope/_extensions/custom_functions.lua b/home/programs/neovim/configuration/lua/telescope/_extensions/custom_functions.lua new file mode 100644 index 0000000..fd8f71a --- /dev/null +++ b/home/programs/neovim/configuration/lua/telescope/_extensions/custom_functions.lua @@ -0,0 +1,33 @@ +local telescope = require('telescope') +local pickers = require('telescope.pickers') +local finders = require('telescope.finders') +local actions = require('telescope.actions') +local action_state = require('telescope.actions.state') +local conf = require('telescope.config').values + +local custom_functions = function(opts) + opts = opts or {} + + local results = { 'CopyFileName', 'CopyRelativeFilePath', 'CopyFullFilePath' } + + pickers.new(opts, { + prompt_title = 'Custom Functions', + finder = finders.new_table { + results = results + }, + sorter = conf.generic_sorter(opts), + attach_mappings = function(prompt_bufnr, map) + actions.select_default:replace(function() + actions.close(prompt_bufnr) + local selection = action_state.get_selected_entry() + vim.api.nvim_call_function(selection[1], {}) + end) + return true + end, + }):find() +end + +return telescope.register_extension({ + -- setup = ctags_setup, + exports = { custom_functions = custom_functions }, +}) diff --git a/home/programs/neovim/configuration/plugin/mappings.vim b/home/programs/neovim/configuration/plugin/mappings.vim index 473717c..2cfe61b 100644 --- a/home/programs/neovim/configuration/plugin/mappings.vim +++ b/home/programs/neovim/configuration/plugin/mappings.vim @@ -14,6 +14,7 @@ nnoremap pp :Telescope builtin nnoremap pf :Telescope git_files nnoremap pb :Telescope buffers nnoremap pt :Telescope ctags_outline outline +nnoremap pc :Telescope custom_functions nnoremap pc :call TelescopeCurrentComposerPackage() nnoremap k :NERDTreeToggle diff --git a/home/programs/neovim/plugins/telescope.lua b/home/programs/neovim/plugins/telescope.lua index 306fdcc..429f469 100644 --- a/home/programs/neovim/plugins/telescope.lua +++ b/home/programs/neovim/plugins/telescope.lua @@ -1,4 +1,3 @@ --- TODO: Add custom source (functions) e.g. the copy functions local telescopeActions = require "telescope.actions" local telescopeActionsLayout = require "telescope.actions.layout" require('telescope').setup({ @@ -27,3 +26,5 @@ require('telescope').setup({ }, }, }) + +require('telescope').load_extension('custom_functions')