local M = { "RRethy/vim-illuminate", event = "VeryLazy", } M.opts = { delay = 200, large_file_cutoff = 2000, large_file_overrides = { providers = { "lsp" }, }, filetypes_denylist = { "mason", "harpoon", "DressingInput", "NeogitCommitMessage", "qf", "dirvish", "oil", "minifiles", "fugitive", "alpha", "NvimTree", "lazy", "NeogitStatus", "Trouble", "netrw", "lir", "DiffviewFiles", "Outline", "Jaq", "spectre_panel", "toggleterm", "DressingSelect", "TelescopePrompt", }, } function M.config(_, opts) require("illuminate").configure(opts) local function map(key, dir, buffer) vim.keymap.set("n", key, function() require("illuminate")["goto_" .. dir .. "_reference"](false) end, { desc = dir:sub(1, 1):upper() .. dir:sub(2) .. " Reference", buffer = buffer }) end map("]]", "next") map("[[", "prev") -- also set it after loading ftplugins, since a lot overwrite [[ and ]] vim.api.nvim_create_autocmd("FileType", { callback = function() local buffer = vim.api.nvim_get_current_buf() map("]]", "next", buffer) map("[[", "prev", buffer) end, }) end M.keys = { { "]]", desc = "Next Reference" }, { "[[", desc = "Prev Reference" }, } return M