diff options
| author | Simon Fowler <simon.fowler@anu.edu.au> | 2020-09-26 19:17:59 +1000 |
|---|---|---|
| committer | Simon Fowler <simon.fowler@anu.edu.au> | 2020-09-26 22:10:31 +1000 |
| commit | 83277d5545463aa1af37bb3de5221fe28dec5eae (patch) | |
| tree | 94480161dcf91987f9755b2f27cc30e5d36c26da /test | |
| parent | dd1a582b30cc17c3e484fe77b917485ff7a2ff16 (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/cmd | 1 | ||||
| -rw-r--r-- | test/indent/sh/no-deindent-after-else/in | 7 | ||||
| -rw-r--r-- | test/indent/sh/no-deindent-after-else/out | 8 | ||||
| -rw-r--r-- | test/indent/sh/no-deindent-after-else/rc | 3 | ||||
| -rw-r--r-- | test/indent/sh/no-deindent-after-fi/cmd | 1 | ||||
| -rw-r--r-- | test/indent/sh/no-deindent-after-fi/in | 7 | ||||
| -rw-r--r-- | test/indent/sh/no-deindent-after-fi/out | 8 | ||||
| -rw-r--r-- | test/indent/sh/no-deindent-after-fi/rc | 3 |
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 |
