summaryrefslogtreecommitdiff
path: root/.config
diff options
context:
space:
mode:
Diffstat (limited to '.config')
-rw-r--r--.config/nvim/lua/autocmds.lua44
-rw-r--r--.config/nvim/queries/comment/highlights.scm60
2 files changed, 29 insertions, 75 deletions
diff --git a/.config/nvim/lua/autocmds.lua b/.config/nvim/lua/autocmds.lua
index f7440ef..34bcbea 100644
--- a/.config/nvim/lua/autocmds.lua
+++ b/.config/nvim/lua/autocmds.lua
@@ -220,24 +220,38 @@ function RenderTodoHighlights(bufnr)
-- 1) highlight keyword
vim.api.nvim_buf_add_highlight(bufnr, ns, cfg.hl, i - 1, s - 1, e - 1)
- -- 2) highlight (...) parts only if a keyword was found
- local start = 1
- local s, e = line:find('%b()', start)
- if not s then
- break
+ local next_char = line:sub(e, e)
+
+ -- 2) highlight (...) if it directly follows keyword
+ if next_char == '(' then
+ local ps = e
+ local pe = nil
+ for j = e + 1, math.min(#line, e + 100) do
+ if line:sub(j, j) == ')' then
+ pe = j
+ break
+ end
+ end
+
+ if pe then
+ vim.api.nvim_buf_add_highlight(bufnr, ns, scopes.bracket, i - 1, ps - 1, ps)
+ vim.api.nvim_buf_add_highlight(bufnr, ns, scopes.bracket, i - 1, pe - 1, pe)
+ if pe - ps > 1 then
+ vim.api.nvim_buf_add_highlight(bufnr, ns, scopes.constant, i - 1, ps, pe - 1)
+ end
+
+ e = pe
+ end
end
- -- "(" and ")"
- vim.api.nvim_buf_add_highlight(bufnr, ns, scopes.bracket, i - 1, s - 1, s)
- vim.api.nvim_buf_add_highlight(bufnr, ns, scopes.bracket, i - 1, e - 1, e)
- -- inner constant
- if e - s > 1 then
- vim.api.nvim_buf_add_highlight(bufnr, ns, scopes.constant, i - 1, s, e - 1)
+
+ -- -- 3) highlight ":" if directly after keyword or after parens
+ local colon_pos = nil
+ if line:sub(e, e) == ':' then
+ colon_pos = e
end
- start = e + 1
- -- 3) highlight any ":" as delimiter only if a group keyword was found
- for s, _ in line:gmatch('():') do
- vim.api.nvim_buf_add_highlight(bufnr, ns, scopes.delimiter, i - 1, s - 1, s)
+ if colon_pos then
+ vim.api.nvim_buf_add_highlight(bufnr, ns, scopes.delimiter, i - 1, colon_pos - 1, colon_pos)
end
end
end
diff --git a/.config/nvim/queries/comment/highlights.scm b/.config/nvim/queries/comment/highlights.scm
index 133b405..e69de29 100644
--- a/.config/nvim/queries/comment/highlights.scm
+++ b/.config/nvim/queries/comment/highlights.scm
@@ -1,60 +0,0 @@
-((tag
- (name) @comment.todo @nospell
- ("(" @punctuation.bracket
- (user) @constant
- ")" @punctuation.bracket)?
- ":" @punctuation.delimiter)
- (#any-of? @comment.todo "TODO" "WIP"))
-
-("text" @comment.todo @nospell
- (#any-of? @comment.todo "TODO" "WIP"))
-
-((tag
- (name) @comment.note @nospell
- ("(" @punctuation.bracket
- (user) @constant
- ")" @punctuation.bracket)?
- ":" @punctuation.delimiter)
- (#any-of? @comment.note "NOTE" "INFO" "DOCS" "TEST"))
-
-("text" @comment.note @nospell
- (#any-of? @comment.note "NOTE" "INFO" "DOCS" "TEST"))
-
-((tag
- (name) @comment.perf @nospell
- ("(" @punctuation.bracket
- (user) @constant
- ")" @punctuation.bracket)?
- ":" @punctuation.delimiter)
- (#any-of? @comment.perf "PERF" "OPTIMIZE"))
-
-("text" @comment.perf @nospell
- (#any-of? @comment.perf "PERF" "OPTIMIZE"))
-
-((tag
- (name) @comment.warning @nospell
- ("(" @punctuation.bracket
- (user) @constant
- ")" @punctuation.bracket)?
- ":" @punctuation.delimiter)
- (#any-of? @comment.warning "HACK" "WARNING" "WARN" "SECURITY" "SECURE"))
-
-("text" @comment.warning @nospell
- (#any-of? @comment.warning "HACK" "WARNING" "WARN" "SECURITY" "SECURE"))
-
-((tag
- (name) @comment.error @nospell
- ("(" @punctuation.bracket
- (user) @constant
- ")" @punctuation.bracket)?
- ":" @punctuation.delimiter)
- (#any-of? @comment.error "FIXME" "FIX" "BUG" "ERROR" "UNSAFE" "SAFETY"))
-
-("text" @comment.error @nospell
- (#any-of? @comment.error "FIXME" "FIX" "BUG" "ERROR" "UNSAFE" "SAFETY"))
-
-; Issue number (#123)
-("text" @number
- (#lua-match? @number "^#[0-9]+$"))
-
-(uri) @string.special.url @nospell