Skip to content

Commit

Permalink
Add option to highlight the whole line
Browse files Browse the repository at this point in the history
  • Loading branch information
JafarAbdi committed Mar 26, 2022
1 parent e72f8b7 commit 17c4a93
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 1 deletion.
1 change: 1 addition & 0 deletions lua/nvim-treesitter-refactor.lua
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ function M.init()
enable = false,
disable = {},
is_supported = queries.has_locals,
highlight_eol = false,
},
smart_rename = {
module_path = "nvim-treesitter-refactor.smart_rename",
Expand Down
14 changes: 13 additions & 1 deletion lua/nvim-treesitter-refactor/highlight_current_scope.lua
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
-- This module highlights the current scope of at the cursor position

local configs = require "nvim-treesitter.configs"
local ts_utils = require "nvim-treesitter.ts_utils"
local locals = require "nvim-treesitter.locals"
local api = vim.api
Expand All @@ -16,10 +17,21 @@ function M.highlight_current_scope(bufnr)
local current_scope = locals.containing_scope(node_at_point, bufnr)

if current_scope then
-- Highlight range [start_line, end_line) 0-based
local highlighter = function(start_line, end_line)
local config = configs.get_module "refactor.highlight_current_scope"
vim.api.nvim_buf_set_extmark(bufnr, current_scope_namespace, math.max(vim.fn.line("w0") - 1, start_line), 0, {
end_row = math.min(vim.fn.line("w$"), end_line),
end_col = 0,
hl_group = "TSCurrentScope",
hl_eol = config.highlight_eol,
})
end
local start_line, _, end_line, _ = current_scope:range()

if start_line ~= 0 or end_line ~= vim.fn.line("$") then
ts_utils.highlight_node(current_scope, bufnr, current_scope_namespace, "TSCurrentScope")
highlighter(start_line, vim.fn.line(".") - 1)
highlighter(vim.fn.line("."), end_line + 1)
end
end
end
Expand Down

0 comments on commit 17c4a93

Please sign in to comment.