mirror of
https://github.com/neovim/neovim.git
synced 2025-10-26 12:27:24 +00:00
fix(treesitter): #trim! range for nodes ending at col 0 #31488
Problem: char-wise folding for `#trim!` ranges are improperly calculated for nodes that end at column 0, due to the way `get_node_text` works. Solution: Add the blank line that `get_node_text` removes for for nodes ending at column 0. Also properly set column positions when performing linewise trims.
This commit is contained in:
@@ -696,14 +696,14 @@ print()
|
||||
end)
|
||||
|
||||
it('trims only empty lines by default (backwards compatible)', function()
|
||||
insert [[
|
||||
insert(dedent [[
|
||||
## Heading
|
||||
|
||||
With some text
|
||||
|
||||
## And another
|
||||
|
||||
With some more]]
|
||||
With some more here]])
|
||||
|
||||
local query_text = [[
|
||||
; query
|
||||
@@ -716,8 +716,35 @@ print()
|
||||
end)
|
||||
|
||||
eq({
|
||||
{ 'fold', { 0, 0, 3, 0 } },
|
||||
{ 'fold', { 4, 0, 7, 0 } },
|
||||
{ 'fold', { 0, 0, 2, 14 } },
|
||||
{ 'fold', { 4, 0, 6, 19 } },
|
||||
}, run_query('markdown', query_text))
|
||||
end)
|
||||
|
||||
it('can trim lines', function()
|
||||
insert(dedent [[
|
||||
- Fold list
|
||||
- Fold list
|
||||
- Fold list
|
||||
- Fold list
|
||||
- Fold list
|
||||
- Fold list
|
||||
]])
|
||||
|
||||
local query_text = [[
|
||||
; query
|
||||
((list_item
|
||||
(list)) @fold
|
||||
(#trim! @fold 1 1 1 1))
|
||||
]]
|
||||
|
||||
exec_lua(function()
|
||||
vim.treesitter.start(0, 'markdown')
|
||||
end)
|
||||
|
||||
eq({
|
||||
{ 'fold', { 0, 0, 4, 13 } },
|
||||
{ 'fold', { 1, 2, 3, 15 } },
|
||||
}, run_query('markdown', query_text))
|
||||
end)
|
||||
end)
|
||||
|
||||
Reference in New Issue
Block a user