summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorSimon Fowler <simon.fowler@anu.edu.au>2020-09-26 19:17:59 +1000
committerSimon Fowler <simon.fowler@anu.edu.au>2020-09-26 22:10:31 +1000
commit83277d5545463aa1af37bb3de5221fe28dec5eae (patch)
tree94480161dcf91987f9755b2f27cc30e5d36c26da /test
parentdd1a582b30cc17c3e484fe77b917485ff7a2ff16 (diff)
Improve shell indentation implementation.
Use the custom object match command for copying indentation of blocks, rather than simply increasing/decreasing indentation when start and end statements are encountered. This fixes an issue where a newline added after an already correctly placed `else` or `fi` would trigger an unnecessary deindent. Tests have been added to ensure no regression in this behaviour.
Diffstat (limited to 'test')
-rw-r--r--test/indent/sh/no-deindent-after-else/cmd1
-rw-r--r--test/indent/sh/no-deindent-after-else/in7
-rw-r--r--test/indent/sh/no-deindent-after-else/out8
-rw-r--r--test/indent/sh/no-deindent-after-else/rc3
-rw-r--r--test/indent/sh/no-deindent-after-fi/cmd1
-rw-r--r--test/indent/sh/no-deindent-after-fi/in7
-rw-r--r--test/indent/sh/no-deindent-after-fi/out8
-rw-r--r--test/indent/sh/no-deindent-after-fi/rc3
8 files changed, 38 insertions, 0 deletions
diff --git a/test/indent/sh/no-deindent-after-else/cmd b/test/indent/sh/no-deindent-after-else/cmd
new file mode 100644
index 00000000..6e489622
--- /dev/null
+++ b/test/indent/sh/no-deindent-after-else/cmd
@@ -0,0 +1 @@
+gk3jobaz
diff --git a/test/indent/sh/no-deindent-after-else/in b/test/indent/sh/no-deindent-after-else/in
new file mode 100644
index 00000000..89687e31
--- /dev/null
+++ b/test/indent/sh/no-deindent-after-else/in
@@ -0,0 +1,7 @@
+if [ $foo ]; then
+ if [ $bar ]; then
+ foobar
+ else
+ qux
+ fi
+fi
diff --git a/test/indent/sh/no-deindent-after-else/out b/test/indent/sh/no-deindent-after-else/out
new file mode 100644
index 00000000..3849d90a
--- /dev/null
+++ b/test/indent/sh/no-deindent-after-else/out
@@ -0,0 +1,8 @@
+if [ $foo ]; then
+ if [ $bar ]; then
+ foobar
+ else
+ baz
+ qux
+ fi
+fi
diff --git a/test/indent/sh/no-deindent-after-else/rc b/test/indent/sh/no-deindent-after-else/rc
new file mode 100644
index 00000000..4795bd80
--- /dev/null
+++ b/test/indent/sh/no-deindent-after-else/rc
@@ -0,0 +1,3 @@
+source "%val{runtime}/colors/default.kak"
+source "%val{runtime}/rc/filetype/sh.kak"
+set buffer filetype sh
diff --git a/test/indent/sh/no-deindent-after-fi/cmd b/test/indent/sh/no-deindent-after-fi/cmd
new file mode 100644
index 00000000..89b4b7a9
--- /dev/null
+++ b/test/indent/sh/no-deindent-after-fi/cmd
@@ -0,0 +1 @@
+gk5jobaz
diff --git a/test/indent/sh/no-deindent-after-fi/in b/test/indent/sh/no-deindent-after-fi/in
new file mode 100644
index 00000000..89687e31
--- /dev/null
+++ b/test/indent/sh/no-deindent-after-fi/in
@@ -0,0 +1,7 @@
+if [ $foo ]; then
+ if [ $bar ]; then
+ foobar
+ else
+ qux
+ fi
+fi
diff --git a/test/indent/sh/no-deindent-after-fi/out b/test/indent/sh/no-deindent-after-fi/out
new file mode 100644
index 00000000..14b78e6f
--- /dev/null
+++ b/test/indent/sh/no-deindent-after-fi/out
@@ -0,0 +1,8 @@
+if [ $foo ]; then
+ if [ $bar ]; then
+ foobar
+ else
+ qux
+ fi
+ baz
+fi
diff --git a/test/indent/sh/no-deindent-after-fi/rc b/test/indent/sh/no-deindent-after-fi/rc
new file mode 100644
index 00000000..4795bd80
--- /dev/null
+++ b/test/indent/sh/no-deindent-after-fi/rc
@@ -0,0 +1,3 @@
+source "%val{runtime}/colors/default.kak"
+source "%val{runtime}/rc/filetype/sh.kak"
+set buffer filetype sh