fix(r): adapt indent queries

- Anchor parameter query. There's no need for multiple indent.align
  captures
- Narrow down binary_operator indent.begin. From tree-sitter-r corpus
  and highlight tests, this seems to be appropriate.
This commit is contained in:
Phạm Huy Hoàng 2024-06-29 00:26:38 +09:00 committed by Christian Clason
parent c11d49cbef
commit 3e535e826d
2 changed files with 6 additions and 7 deletions

View file

@ -12,7 +12,8 @@
] @indent.begin ] @indent.begin
(binary_operator (binary_operator
operator: (_)) @indent.begin rhs: (_) @_no_indent
(#not-kind-eq? @_no_indent function_definition)) @indent.begin
[ [
"}" "}"
@ -20,6 +21,7 @@
] @indent.branch ] @indent.branch
((parameters ((parameters
.
(parameter (parameter
name: (identifier))) @indent.align name: (identifier))) @indent.align
(#set! indent.open_delimiter "(") (#set! indent.open_delimiter "(")

View file

@ -10,9 +10,7 @@ local run = Runner:new(it, "tests/indent/r", {
describe("indent R:", function() describe("indent R:", function()
describe("whole file:", function() describe("whole file:", function()
run:whole_file(".", { run:whole_file(".", {})
expected_failures = { "./pipe.R" },
})
end) end)
describe("new line:", function() describe("new line:", function()
@ -34,9 +32,8 @@ describe("indent R:", function()
run:new_line("loop.R", { on_line = 8, text = "x <- x + 1", indent = 2 }) run:new_line("loop.R", { on_line = 8, text = "x <- x + 1", indent = 2 })
run:new_line("loop.R", { on_line = 14, text = "print('lol')", indent = 4 }) run:new_line("loop.R", { on_line = 14, text = "print('lol')", indent = 4 })
-- FIXME: |>, %>% indent broken after parser update run:new_line("pipe.R", { on_line = 1, text = "head(n = 10L) |>", indent = 2 })
-- run:new_line("pipe.R", { on_line = 1, text = "head(n = 10L) |>", indent = 2 }) run:new_line("pipe.R", { on_line = 9, text = "head()", indent = 2 })
-- run:new_line("pipe.R", { on_line = 9, text = "head()", indent = 2 })
run:new_line("aligned_indent.R", { on_line = 1, text = "z,", indent = 17 }) run:new_line("aligned_indent.R", { on_line = 1, text = "z,", indent = 17 })
end) end)