aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRiley Bruins <ribru17@hotmail.com>2024-07-03 19:13:16 -0700
committerGitHub <noreply@github.com>2024-07-04 11:13:16 +0900
commitfa611f612a7b04c239d07f61ba80e09cb95c5af4 (patch)
tree97f80f2b28bfb731854f8eaf264fed162f01dd4b
parentfix(prolog): switch to github mirror (diff)
downloadnvim-treesitter-fa611f612a7b04c239d07f61ba80e09cb95c5af4.tar
nvim-treesitter-fa611f612a7b04c239d07f61ba80e09cb95c5af4.tar.gz
nvim-treesitter-fa611f612a7b04c239d07f61ba80e09cb95c5af4.tar.bz2
nvim-treesitter-fa611f612a7b04c239d07f61ba80e09cb95c5af4.tar.lz
nvim-treesitter-fa611f612a7b04c239d07f61ba80e09cb95c5af4.tar.xz
nvim-treesitter-fa611f612a7b04c239d07f61ba80e09cb95c5af4.tar.zst
nvim-treesitter-fa611f612a7b04c239d07f61ba80e09cb95c5af4.zip
fix(ecma): indent single-line if statements (#6846)
Fixes #5898.
-rw-r--r--queries/ecma/indents.scm13
-rw-r--r--tests/indent/ecma/if_else.js6
-rw-r--r--tests/indent/javascript_spec.lua2
3 files changed, 17 insertions, 4 deletions
diff --git a/queries/ecma/indents.scm b/queries/ecma/indents.scm
index 966664219..d56741670 100644
--- a/queries/ecma/indents.scm
+++ b/queries/ecma/indents.scm
@@ -59,10 +59,11 @@
(statement_block
"{" @indent.branch)
-(parenthesized_expression
- ("("
- (_)
- ")" @indent.end))
+((parenthesized_expression
+ "("
+ (_)
+ ")" @indent.end) @_outer
+ (#not-has-parent? @_outer if_statement))
[
"}"
@@ -75,3 +76,7 @@
(comment)
(ERROR)
] @indent.auto
+
+(if_statement
+ consequence: (_) @indent.dedent
+ (#not-kind-eq? @indent.dedent statement_block)) @indent.begin
diff --git a/tests/indent/ecma/if_else.js b/tests/indent/ecma/if_else.js
index 4f971c8fc..990ccd19a 100644
--- a/tests/indent/ecma/if_else.js
+++ b/tests/indent/ecma/if_else.js
@@ -11,3 +11,9 @@ if (cond1) {
} else {
do_fallback()
}
+
+if (true)
+ console.log('hi')
+console.log('hi')
+
+if (true)
diff --git a/tests/indent/javascript_spec.lua b/tests/indent/javascript_spec.lua
index 827539eeb..5659b22a1 100644
--- a/tests/indent/javascript_spec.lua
+++ b/tests/indent/javascript_spec.lua
@@ -75,6 +75,8 @@ describe("indent JavaScript:", function()
{ 9, 2 },
{ 12, 2 },
{ 13, 0 },
+ { 16, 0 },
+ { 19, 2 },
} do
run:new_line("ecma/if_else.js", { on_line = info[1], text = "hello()", indent = info[2] }, info[3], info[4])
end