diff --git a/lua/core/todo.lua b/lua/core/todo.lua index a5a44f4..8df018a 100644 --- a/lua/core/todo.lua +++ b/lua/core/todo.lua @@ -14,31 +14,31 @@ local data = {} local M = {} local todo_comments_conf = { - TODO = { - -- TODO: - -- NOTE: - -- INFO: - "TODO", "NOTE", "INFO", - hlgroup = "TodoTODO" - }, - BUG = { - -- BUG: - -- FIXME: - "BUG", "FIXME", - hlgroup = "TodoBUG" - }, - TEST = { - -- TEST: - -- PERF: - "TEST", "PERF", - hlgroup = "TodoTEST" - }, - WARN = { - -- WARN: - -- HACK: - "WARN", "HACK", - hlgroup = "TodoWARN" - } + TODO = { + -- TODO: + -- NOTE: + -- INFO: + "TODO", "NOTE", "INFO", + hlgroup = "TodoTODO" + }, + BUG = { + -- BUG: + -- FIXME: + "BUG", "FIXME", + hlgroup = "TodoBUG" + }, + TEST = { + -- TEST: + -- PERF: + "TEST", "PERF", + hlgroup = "TodoTEST" + }, + WARN = { + -- WARN: + -- HACK: + "WARN", "HACK", + hlgroup = "TodoWARN" + } } local todo_hl_ns = vim.api.nvim_create_namespace("todo_highlights") @@ -125,44 +125,44 @@ end --- --- ensure that we only change the extmark when the node has changed function M.todo_comments() - local bufnr = vim.api.nvim_win_get_buf(0) - local ok, parser = pcall(vim.treesitter.get_parser, bufnr) - if not ok or not parser then - return - end + local bufnr = vim.api.nvim_win_get_buf(0) + local ok, parser = pcall(vim.treesitter.get_parser, bufnr) + if not ok or not parser then + return + end -- create an entry for the buffer in the data if not data[bufnr] then data[bufnr] = {} end - -- Construct the query for comments. - -- We're using treesitter so that I don't have to use external tooling. - local ok, comment_query = pcall(vim.treesitter.query.parse, - parser:lang(), - "(comment) @comment" - ) - if not ok then - return - end + -- Construct the query for comments. + -- We're using treesitter so that I don't have to use external tooling. + local ok, comment_query = pcall(vim.treesitter.query.parse, + parser:lang(), + "(comment) @comment" + ) + if not ok then + return + end - parser:parse(false, function(err, trees) - if err then - return - end + parser:parse(false, function(err, trees) + if err then + return + end -- store the previous todo comment's location information local start_loc = nil local ls, le, lt = nil, nil, nil - local root = trees[1]:root() - for _, match in comment_query:iter_matches(root, bufnr, 0, -1) do - for _, nodes in pairs(match) do - for _, node in ipairs(nodes) do - if not node or node:type() ~= "comment" then - goto continue - end - local text = vim.treesitter.get_node_text(node, bufnr) + local root = trees[1]:root() + for _, match in comment_query:iter_matches(root, bufnr, 0, -1) do + for _, nodes in pairs(match) do + for _, node in ipairs(nodes) do + if not node or node:type() ~= "comment" then + goto continue + end + local text = vim.treesitter.get_node_text(node, bufnr) -- is the node previous to this node a todo comment? local continuation = (start_loc and start_loc + 1 == node:start()) @@ -208,11 +208,11 @@ function M.todo_comments() t )) end - ::continue:: - end - end - end - end) + ::continue:: + end + end + end + end) end return M