mirror of
https://github.com/HiPhish/rainbow-delimiters.nvim.git
synced 2024-09-16 14:24:05 +02:00
Add highlight priority setting
This commit is contained in:
parent
a2da59bdac
commit
fdd507455a
9 changed files with 117 additions and 3 deletions
|
@ -15,6 +15,7 @@ Unreleased
|
||||||
Added
|
Added
|
||||||
=====
|
=====
|
||||||
|
|
||||||
|
- Ability to set highlight priority
|
||||||
- Cue support
|
- Cue support
|
||||||
- Luadoc support
|
- Luadoc support
|
||||||
- Nim support
|
- Nim support
|
||||||
|
@ -30,6 +31,12 @@ Fixed
|
||||||
- Missing `switch_body` pattern for Javascript and Typescript
|
- Missing `switch_body` pattern for Javascript and Typescript
|
||||||
- Missing `rec_attrset_expression` and `inherit_from` patterns for Nix
|
- Missing `rec_attrset_expression` and `inherit_from` patterns for Nix
|
||||||
|
|
||||||
|
Changed
|
||||||
|
=======
|
||||||
|
|
||||||
|
- Default highlight priority is 110 instead of 210, which is between
|
||||||
|
Tree-sitter and LSP semantic tokens
|
||||||
|
|
||||||
|
|
||||||
[0.1.0] - 2023-11-12
|
[0.1.0] - 2023-11-12
|
||||||
####################
|
####################
|
||||||
|
|
|
@ -34,4 +34,5 @@ for a new language. You will need to update:
|
||||||
|
|
||||||
- `@class rainbow_delimiters.config.strategies`
|
- `@class rainbow_delimiters.config.strategies`
|
||||||
- `@class rainbow_delimiters.config.queries`
|
- `@class rainbow_delimiters.config.queries`
|
||||||
|
- `@class rainbow_delimiters.config.priorities`
|
||||||
- `@alias rainbow_delimiters.language`
|
- `@alias rainbow_delimiters.language`
|
||||||
|
|
13
README.rst
13
README.rst
|
@ -28,8 +28,9 @@ for each language you want to use rainbow delimiters with.
|
||||||
Setup
|
Setup
|
||||||
=====
|
=====
|
||||||
|
|
||||||
Configuration is done by setting entries in the Vim script dictionary
|
No configuration is needed to get started, this plugin has reasonable defaults
|
||||||
`g:rainbow_delimiters`. Here is an example configuration:
|
which you can override. Configuration is done by setting entries in the Vim
|
||||||
|
script dictionary `g:rainbow_delimiters`. Here is an example configuration:
|
||||||
|
|
||||||
.. code:: vim
|
.. code:: vim
|
||||||
|
|
||||||
|
@ -42,6 +43,10 @@ Configuration is done by setting entries in the Vim script dictionary
|
||||||
\ '': 'rainbow-delimiters',
|
\ '': 'rainbow-delimiters',
|
||||||
\ 'lua': 'rainbow-blocks',
|
\ 'lua': 'rainbow-blocks',
|
||||||
\ },
|
\ },
|
||||||
|
\ 'priority': {
|
||||||
|
\ '': 110,
|
||||||
|
\ 'lua': 210,
|
||||||
|
\ },
|
||||||
\ 'highlight': [
|
\ 'highlight': [
|
||||||
\ 'RainbowDelimiterRed',
|
\ 'RainbowDelimiterRed',
|
||||||
\ 'RainbowDelimiterYellow',
|
\ 'RainbowDelimiterYellow',
|
||||||
|
@ -70,6 +75,10 @@ The equivalent code in Lua:
|
||||||
[''] = 'rainbow-delimiters',
|
[''] = 'rainbow-delimiters',
|
||||||
lua = 'rainbow-blocks',
|
lua = 'rainbow-blocks',
|
||||||
},
|
},
|
||||||
|
priority = {
|
||||||
|
[''] = 110,
|
||||||
|
lua = 210,
|
||||||
|
},
|
||||||
highlight = {
|
highlight = {
|
||||||
'RainbowDelimiterRed',
|
'RainbowDelimiterRed',
|
||||||
'RainbowDelimiterYellow',
|
'RainbowDelimiterYellow',
|
||||||
|
|
|
@ -58,6 +58,12 @@ keys are recognized:
|
||||||
is the key for the default query. See |rb-delimiters-query| for more
|
is the key for the default query. See |rb-delimiters-query| for more
|
||||||
information about queries.
|
information about queries.
|
||||||
|
|
||||||
|
`priority`
|
||||||
|
Dictionary mapping Tree-sitter language names to highlight priority values.
|
||||||
|
The empty string is the key for the default priority. See
|
||||||
|
|vim.highlight.priorities| and |treesitter-highlight-priority| for more
|
||||||
|
information on priorities.
|
||||||
|
|
||||||
`highlight`
|
`highlight`
|
||||||
List of names of the highlight groups to use for highlighting, for more
|
List of names of the highlight groups to use for highlighting, for more
|
||||||
information see |rb-delimiters-colors|.
|
information see |rb-delimiters-colors|.
|
||||||
|
@ -90,6 +96,10 @@ Here is an example configuration:
|
||||||
\ '': 'rainbow-delimiters',
|
\ '': 'rainbow-delimiters',
|
||||||
\ 'lua': 'rainbow-blocks',
|
\ 'lua': 'rainbow-blocks',
|
||||||
\ },
|
\ },
|
||||||
|
\ 'priority': {
|
||||||
|
\ '': 110,
|
||||||
|
\ 'lua': 210,
|
||||||
|
\ },
|
||||||
\ 'highlight': [
|
\ 'highlight': [
|
||||||
\ 'RainbowDelimiterRed',
|
\ 'RainbowDelimiterRed',
|
||||||
\ 'RainbowDelimiterYellow',
|
\ 'RainbowDelimiterYellow',
|
||||||
|
@ -118,6 +128,10 @@ Alternatively, the same configuration in Lua:
|
||||||
[''] = 'rainbow-delimiters',
|
[''] = 'rainbow-delimiters',
|
||||||
lua = 'rainbow-blocks',
|
lua = 'rainbow-blocks',
|
||||||
},
|
},
|
||||||
|
priority = {
|
||||||
|
[''] = 110,
|
||||||
|
lua = 210,
|
||||||
|
},
|
||||||
highlight = {
|
highlight = {
|
||||||
'RainbowDelimiterRed',
|
'RainbowDelimiterRed',
|
||||||
'RainbowDelimiterYellow',
|
'RainbowDelimiterYellow',
|
||||||
|
|
|
@ -27,6 +27,8 @@
|
||||||
---@field strategy rainbow_delimiters.config.strategies?
|
---@field strategy rainbow_delimiters.config.strategies?
|
||||||
---Query to use for highlighting
|
---Query to use for highlighting
|
||||||
---@field query rainbow_delimiters.config.queries?
|
---@field query rainbow_delimiters.config.queries?
|
||||||
|
---Highlight priority of rainbow delimiters
|
||||||
|
---@field priority rainbow_delimiters.config.priorities?
|
||||||
---Highlight colors
|
---Highlight colors
|
||||||
---@field highlight string[]?
|
---@field highlight string[]?
|
||||||
---Whitelist for languages to highlight
|
---Whitelist for languages to highlight
|
||||||
|
@ -162,6 +164,70 @@
|
||||||
---User defined language, not part of rainbow_delimiters support
|
---User defined language, not part of rainbow_delimiters support
|
||||||
---@field [string] string?
|
---@field [string] string?
|
||||||
|
|
||||||
|
---@class rainbow_delimiters.config.priorities
|
||||||
|
---@field [''] (integer | fun(): integer?)?
|
||||||
|
---@field astro (integer | fun(): integer?)?
|
||||||
|
---@field bash (integer | fun(): integer?)?
|
||||||
|
---@field c (integer | fun(): integer?)?
|
||||||
|
---@field c_sharp (integer | fun(): integer?)?
|
||||||
|
---@field clojure (integer | fun(): integer?)?
|
||||||
|
---@field commonlisp (integer | fun(): integer?)?
|
||||||
|
---@field cpp (integer | fun(): integer?)?
|
||||||
|
---@field css (integer | fun(): integer?)?
|
||||||
|
---@field cuda (integer | fun(): integer?)?
|
||||||
|
---@field cue (integer | fun(): integer?)?
|
||||||
|
---@field dart (integer | fun(): integer?)?
|
||||||
|
---@field elixir (integer | fun(): integer?)?
|
||||||
|
---@field elm (integer | fun(): integer?)?
|
||||||
|
---@field fennel (integer | fun(): integer?)?
|
||||||
|
---@field fish (integer | fun(): integer?)?
|
||||||
|
---@field go (integer | fun(): integer?)?
|
||||||
|
---@field haskell (integer | fun(): integer?)?
|
||||||
|
---@field hcl (integer | fun(): integer?)?
|
||||||
|
---@field html (integer | fun(): integer?)?
|
||||||
|
---@field janet_simple (integer | fun(): integer?)?
|
||||||
|
---@field java (integer | fun(): integer?)?
|
||||||
|
---@field javascript (integer | fun(): integer?)?
|
||||||
|
---@field json (integer | fun(): integer?)?
|
||||||
|
---@field json5 (integer | fun(): integer?)?
|
||||||
|
---@field jsonc (integer | fun(): integer?)?
|
||||||
|
---@field jsonnet (integer | fun(): integer?)?
|
||||||
|
---@field julia (integer | fun(): integer?)?
|
||||||
|
---@field kotlin (integer | fun(): integer?)?
|
||||||
|
---@field latex (integer | fun(): integer?)?
|
||||||
|
---@field lua (integer | fun(): integer?)?
|
||||||
|
---@field luadoc (integer | fun(): integer?)?
|
||||||
|
---@field make (integer | fun(): integer?)?
|
||||||
|
---@field markdown (integer | fun(): integer?)?
|
||||||
|
---@field nim (integer | fun(): integer?)?
|
||||||
|
---@field nix (integer | fun(): integer?)?
|
||||||
|
---@field perl (integer | fun(): integer?)?
|
||||||
|
---@field php (integer | fun(): integer?)?
|
||||||
|
---@field python (integer | fun(): integer?)?
|
||||||
|
---@field query (integer | fun(): integer?)?
|
||||||
|
---@field r (integer | fun(): integer?)?
|
||||||
|
---@field racket (integer | fun(): integer?)?
|
||||||
|
---@field regex (integer | fun(): integer?)?
|
||||||
|
---@field rst (integer | fun(): integer?)?
|
||||||
|
---@field ruby (integer | fun(): integer?)?
|
||||||
|
---@field rust (integer | fun(): integer?)?
|
||||||
|
---@field scheme (integer | fun(): integer?)?
|
||||||
|
---@field scss (integer | fun(): integer?)?
|
||||||
|
---@field sql (integer | fun(): integer?)?
|
||||||
|
---@field templ (integer | fun(): integer?)?
|
||||||
|
---@field toml (integer | fun(): integer?)?
|
||||||
|
---@field tsx (integer | fun(): integer?)?
|
||||||
|
---@field typescript (integer | fun(): integer?)?
|
||||||
|
---@field verilog (integer | fun(): integer?)?
|
||||||
|
---@field vim (integer | fun(): integer?)?
|
||||||
|
---@field vimdoc (integer | fun(): integer?)?
|
||||||
|
---@field vue (integer | fun(): integer?)?
|
||||||
|
---@field yaml (integer | fun(): integer?)?
|
||||||
|
---@field zig (integer | fun(): integer?)?
|
||||||
|
---User defined language, not part of rainbow_delimiters support
|
||||||
|
---@field [integer] (integer | fun(): integer?)?
|
||||||
|
|
||||||
|
|
||||||
---@alias rainbow_delimiters.language
|
---@alias rainbow_delimiters.language
|
||||||
---| 'astro'
|
---| 'astro'
|
||||||
---| 'bash'
|
---| 'bash'
|
||||||
|
|
|
@ -52,6 +52,11 @@ local M = {
|
||||||
return get_nested(table, 'strategy', key)
|
return get_nested(table, 'strategy', key)
|
||||||
end
|
end
|
||||||
}),
|
}),
|
||||||
|
priority = setmetatable({}, {
|
||||||
|
__index = function(table, key)
|
||||||
|
return get_nested(table, 'priority', key)
|
||||||
|
end
|
||||||
|
}),
|
||||||
log = setmetatable({}, {
|
log = setmetatable({}, {
|
||||||
__index = function(table, key)
|
__index = function(table, key)
|
||||||
return get_nested(table, 'log', key)
|
return get_nested(table, 'log', key)
|
||||||
|
|
|
@ -26,6 +26,9 @@ local M = {
|
||||||
strategy = {
|
strategy = {
|
||||||
[''] = require 'rainbow-delimiters.strategy.global',
|
[''] = require 'rainbow-delimiters.strategy.global',
|
||||||
},
|
},
|
||||||
|
priority = {
|
||||||
|
[''] = 110,
|
||||||
|
},
|
||||||
---Event logging settings
|
---Event logging settings
|
||||||
log = {
|
log = {
|
||||||
---Log level of the module, see `:h log_levels`.
|
---Log level of the module, see `:h log_levels`.
|
||||||
|
@ -61,6 +64,11 @@ setmetatable(M.strategy, {
|
||||||
__index = get_with_fallback,
|
__index = get_with_fallback,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
setmetatable(M.priority, {
|
||||||
|
__index = get_with_fallback,
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
return M
|
return M
|
||||||
|
|
||||||
-- vim:tw=79:ts=4:sw=4:noet:
|
-- vim:tw=79:ts=4:sw=4:noet:
|
||||||
|
|
|
@ -91,7 +91,7 @@ function M.highlight(bufnr, lang, node, hlgroup)
|
||||||
local opts = {
|
local opts = {
|
||||||
regtype = 'c',
|
regtype = 'c',
|
||||||
inclusive = true,
|
inclusive = true,
|
||||||
priority = 210,
|
priority = config.priority[lang],
|
||||||
}
|
}
|
||||||
|
|
||||||
local nsid = M.nsids[lang]
|
local nsid = M.nsids[lang]
|
||||||
|
|
|
@ -52,5 +52,9 @@ int main(int argc, char *argv[]) {
|
||||||
printf("The sum of %d and %d is %d", ((((a)))), b, result);
|
printf("The sum of %d and %d is %d", ((((a)))), b, result);
|
||||||
int indices[] = {0, };
|
int indices[] = {0, };
|
||||||
int i = indices[indices[indices[indices[indices[indices[0]]]]]];
|
int i = indices[indices[indices[indices[indices[indices[0]]]]]];
|
||||||
|
#if 0
|
||||||
|
/* A language server may mark this block semantically as a comment */
|
||||||
|
printf("The sum of %d and %d is %d", ((((a)))), b, result);
|
||||||
|
#endif
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue