Files
nvim/lua/plugins/needful.lua
Thomas Ruoff c7cf762e43 stuff 🤷
2024-04-06 22:07:57 +02:00

71 lines
1.8 KiB
Lua

local opts = {
tasks = {
{
name = 'ripgrep current directory',
cmd = 'rg ${pattern} ${cwd}',
tags = { 'ripgrep', 'cwd', 'search', 'pattern' },
ask = {
['${pattern}'] = {
title = 'Pattern to use',
default = 'error',
},
},
window = {
name = 'Ripgrep',
close = false,
keep_current = true,
},
},
{
name = 'ast-grep current directory',
cmd = 'ast-grep -p "${pattern}" ${cwd}',
tags = { 'ripgrep', 'cwd', 'search', 'pattern' },
ask = {
['${pattern}'] = {
title = 'Pattern to use',
default = '',
},
},
window = {
name = 'ast-grep',
close = false,
},
},
},
edit_mode = 'buffer', -- buffer, tab, split, vsplit
config_file = '.tasks.json', -- name of json config file for project/global config
config_order = { -- default: { project, global, opts }. Order in which
-- tasks are aggregated
'project', -- .task.json in project directory
'global', -- .tasks.json in stdpath('data')
'opts', -- tasks defined in setup opts
},
tag_source = true, -- display #project, #global, or #opt after tags
global_tokens = {
['${cwd}'] = vim.fn.getcwd,
['${do-the-needful}'] = 'please',
['${projectname}'] = function()
return vim.fn.system 'basename $(git rev-parse --show-toplevel)'
end,
},
ask_functions = {
get_cwd = function()
return vim.fn.getcwd()
end,
current_file = function()
return vim.fn.expand '%'
end,
},
}
return {
'catgoose/do-the-needful.nvim',
event = 'BufReadPre',
keys = {
{ '<leader>np', [[<cmd>Telescope do-the-needful please<cr>]], 'n' },
{ '<leader>nn', [[<cmd>Telescope do-the-needful<cr>]], 'n' },
},
dependencies = 'nvim-lua/plenary.nvim',
opts = opts,
}