summaryrefslogtreecommitdiff
path: root/lua/lvim/core/illuminate.lua
diff options
context:
space:
mode:
authorChristian Chiarulli <[email protected]>2022-09-19 13:12:52 -0400
committerGitHub <[email protected]>2022-09-19 13:12:52 -0400
commit352147158bb696e4b8fcb236d2cb477955b26dcf (patch)
treecf787c1d9ada73fe047368addccc493d9cf2cde5 /lua/lvim/core/illuminate.lua
parentd44da34e92f92bbe59d2fca5965aa9c35c64374c (diff)
feat(document highlight): use illuminate rather than autocommand to avoid flashing (#3029)
Diffstat (limited to 'lua/lvim/core/illuminate.lua')
-rw-r--r--lua/lvim/core/illuminate.lua53
1 files changed, 53 insertions, 0 deletions
diff --git a/lua/lvim/core/illuminate.lua b/lua/lvim/core/illuminate.lua
new file mode 100644
index 00000000..e29b091a
--- /dev/null
+++ b/lua/lvim/core/illuminate.lua
@@ -0,0 +1,53 @@
+local M = {}
+
+M.config = function()
+ local status_ok, illuminate = pcall(require, "illuminate")
+ if not status_ok then
+ return
+ end
+ -- default configuration
+ illuminate.configure {
+ -- providers: provider used to get references in the buffer, ordered by priority
+ providers = {
+ "lsp",
+ "treesitter",
+ "regex",
+ },
+ -- delay: delay in milliseconds
+ delay = 120,
+ -- filetypes_denylist: filetypes to not illuminate, this overrides filetypes_allowlist
+ filetypes_denylist = {
+ "dirvish",
+ "fugitive",
+ "alpha",
+ "NvimTree",
+ "packer",
+ "neogitstatus",
+ "Trouble",
+ "lir",
+ "Outline",
+ "spectre_panel",
+ "toggleterm",
+ "DressingSelect",
+ "TelescopePrompt",
+ },
+ -- filetypes_allowlist: filetypes to illuminate, this is overriden by filetypes_denylist
+ filetypes_allowlist = {},
+ -- modes_denylist: modes to not illuminate, this overrides modes_allowlist
+ modes_denylist = {},
+ -- modes_allowlist: modes to illuminate, this is overriden by modes_denylist
+ modes_allowlist = {},
+ -- providers_regex_syntax_denylist: syntax to not illuminate, this overrides providers_regex_syntax_allowlist
+ -- Only applies to the 'regex' provider
+ -- Use :echom synIDattr(synIDtrans(synID(line('.'), col('.'), 1)), 'name')
+ providers_regex_syntax_denylist = {},
+ -- providers_regex_syntax_allowlist: syntax to illuminate, this is overriden by providers_regex_syntax_denylist
+ -- Only applies to the 'regex' provider
+ -- Use :echom synIDattr(synIDtrans(synID(line('.'), col('.'), 1)), 'name')
+ providers_regex_syntax_allowlist = {},
+ -- under_cursor: whether or not to illuminate under the cursor
+ under_cursor = true,
+ }
+end
+
+return M