---@type Flash.Config local conf = { labels = "arstgmneioqwfpbjluyzxcdvkh", jump = { -- inclusive = false, nohlsearch = false, offset = nil, }, label = { uppercase = true, }, highlight = { backdrop = false, }, modes = { char = { jump_labels = false, highlight = { backdrop = false }, keys = { "f", "F", "t", "T" }, char_actions = function(motion) return { [motion:lower()] = "next", [motion:upper()] = "prev" } end, }, }, } local function diagHL() require("flash").jump({ matcher = function(win) ---@param diag Diagnostic return vim.tbl_map(function(diag) return { pos = { diag.lnum + 1, diag.col }, end_pos = { diag.end_lnum + 1, diag.end_col - 1 }, } end, vim.diagnostic.get(vim.api.nvim_win_get_buf(win))) end, action = function(match, state) vim.api.nvim_win_call(match.win, function() vim.api.nvim_win_set_cursor(match.win, match.pos) vim.diagnostic.open_float() end) state:restore() end, }) end return { "folke/flash.nvim", event = "VeryLazy", vscode = true, ---@type Flash.Config opts = conf, keys = { { "s", mode = { "n", "x", "o" }, function() require("flash").jump({ jump = { inclusive = true, -- pos = "end", }, }) end, desc = "Flash Inclusive", }, { "", mode = { "n", "x", "o" }, function() require("flash").jump({ jump = { inclusive = false, -- pos = "end", }, }) end, desc = "Flash Exclusive", }, { "S", mode = { "n", "o", "x" }, function() require("flash").treesitter() end, desc = "Flash Treesitter", }, { "r", mode = "o", function() require("flash").remote() end, desc = "Remote 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", -- }, -- { -- "", -- mode = { "n", "x", "o" }, -- function() -- diagHL() -- end, -- desc = "Toggle Flash Search", -- }, }, }