aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephan Seitz <stephan.seitz@fau.de>2022-01-24 20:39:18 +0100
committerChristian Clason <christian.clason@uni-due.de>2022-01-24 22:33:41 +0100
commitae4c982f94b3b780041b16d6b5df247a67102d92 (patch)
tree953bd1229ae9507243d29d87dc8cf6f9a30aa9e6
parentUpdate lockfile.json (diff)
downloadnvim-treesitter-ae4c982f94b3b780041b16d6b5df247a67102d92.tar
nvim-treesitter-ae4c982f94b3b780041b16d6b5df247a67102d92.tar.gz
nvim-treesitter-ae4c982f94b3b780041b16d6b5df247a67102d92.tar.bz2
nvim-treesitter-ae4c982f94b3b780041b16d6b5df247a67102d92.tar.lz
nvim-treesitter-ae4c982f94b3b780041b16d6b5df247a67102d92.tar.xz
nvim-treesitter-ae4c982f94b3b780041b16d6b5df247a67102d92.tar.zst
nvim-treesitter-ae4c982f94b3b780041b16d6b5df247a67102d92.zip
indents(php): align with C indentation
Fixes https://github.com/nvim-treesitter/nvim-treesitter/issues/2357
-rw-r--r--queries/php/indents.scm5
-rw-r--r--tests/indent/php/example.php12
-rw-r--r--tests/indent/php_spec.lua20
3 files changed, 34 insertions, 3 deletions
diff --git a/queries/php/indents.scm b/queries/php/indents.scm
index 27cd7ed08..5c2a2924f 100644
--- a/queries/php/indents.scm
+++ b/queries/php/indents.scm
@@ -10,14 +10,13 @@
] @indent
[
- "("
")"
- "{"
"}"
- "["
"]"
] @branch
[
(comment)
] @ignore
+
+(compound_statement "}" @indent_end)
diff --git a/tests/indent/php/example.php b/tests/indent/php/example.php
new file mode 100644
index 000000000..6b0ec56b0
--- /dev/null
+++ b/tests/indent/php/example.php
@@ -0,0 +1,12 @@
+<?php
+
+class example
+{
+ public int $variable;
+ // indentation works correctly here
+
+ public function foo()
+ {
+ // indentation works correctly here
+ }
+}
diff --git a/tests/indent/php_spec.lua b/tests/indent/php_spec.lua
new file mode 100644
index 000000000..f081c3a22
--- /dev/null
+++ b/tests/indent/php_spec.lua
@@ -0,0 +1,20 @@
+local Runner = require("tests.indent.common").Runner
+
+local run = Runner:new(it, "tests/indent/php", {
+ tabstop = 4,
+ shiftwidth = 4,
+ softtabstop = 0,
+ expandtab = true,
+})
+
+describe("indent PHP:", function()
+ describe("whole file:", function()
+ run:whole_file(".", {
+ expected_failures = {},
+ })
+ end)
+
+ describe("new line:", function()
+ run:new_line("example.php", { on_line = 11, text = "// new line starts 1 indentation to far", indent = 4 })
+ end)
+end)