aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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