diff --git a/nvim/init.lua b/nvim/init.lua index 970906f..2528880 100644 --- a/nvim/init.lua +++ b/nvim/init.lua @@ -1177,6 +1177,17 @@ local function makespec_trouble() desc = "Next Trouble/Quickfix Item", }, }, + specs = { + "folke/snacks.nvim", + opts = function(_, opts) + return vim.tbl_deep_extend("force", opts or {}, { + picker = { + actions = require("trouble.sources.snacks").actions, + win = { input = { keys = { [""] = { "trouble_open", mode = { "n", "i" } } } } }, + }, + }) + end, + }, } end local function makespec_todocomments() @@ -1217,6 +1228,12 @@ local function makespec_todocomments() "Trouble todo toggle filter = {tag = {TODO,FIX,FIXME}}", desc = "Todo/Fix/Fixme list", }, + { "st", function() Snacks.picker.todo_comments() end, desc = "Todo" }, + { + "sT", + function() Snacks.picker.todo_comments({ keywords = { "TODO", "FIX", "FIXME" } }) end, + desc = "Todo/Fix/Fixme", + }, }, } end @@ -1292,6 +1309,39 @@ local function makespec_flash() { "R", mode = { "o", "x" }, function() require("flash").treesitter_search() end, desc = "Treesitter Search" }, { "", mode = { "c" }, function() require("flash").toggle() end, desc = "Toggle Flash Search" }, }, + specs = { + { + "folke/snacks.nvim", + opts = { + picker = { + win = { + input = { keys = { [""] = { "flash", mode = { "n", "i" } }, ["s"] = { "flash" } } }, + }, + actions = { + flash = function(picker) + require("flash").jump({ + pattern = "^", + label = { after = { 0, 0 } }, + search = { + mode = "search", + exclude = { + function(win) + return vim.bo[vim.api.nvim_win_get_buf(win)].filetype + ~= "snacks_picker_list" + end, + }, + }, + action = function(match) + local idx = picker.list:row2idx(match.pos[1]) + picker.list:_move(idx, true, true) + end, + }) + end, + }, + }, + }, + }, + }, } end