summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichał Kruszewski <mkru@protonmail.com>2020-09-18 15:06:23 +0200
committerMichał Kruszewski <mkru@protonmail.com>2020-09-20 12:25:26 +0200
commitf78cd6daf88540792c342ac3ee2979aaeb2ddd1f (patch)
tree27bbc02101da82e55d6b80a75d1c1e430ddf260d
parentdbd7e4da79ff59a63be03c580d3f396657199596 (diff)
Improve '}' auto inserting for go language.
Adding "} else if ... {" was not correctly handled.
-rw-r--r--rc/filetype/go.kak4
-rw-r--r--test/indent/go/deindent-generic-closing-brace/in6
-rw-r--r--test/indent/go/deindent-generic-closing-brace/out7
3 files changed, 15 insertions, 2 deletions
diff --git a/rc/filetype/go.kak b/rc/filetype/go.kak
index e9d98fe0..4c9ad7ee 100644
--- a/rc/filetype/go.kak
+++ b/rc/filetype/go.kak
@@ -134,7 +134,7 @@ define-command -hidden go-insert-on-new-line %[
try %[ execute-keys -draft k<a-x>s^\h+<ret>"xy ] catch %[ reg x '' ]
try %[
# Validate previous line and that it is not closed yet.
- execute-keys -draft k<a-x> <a-k>^<c-r>x.*\{\h*\(?\h*$<ret> J}iJ<a-x> <a-K>^<c-r>x(\)?\h*\})$<ret>
+ execute-keys -draft k<a-x> <a-k>^<c-r>x.*\{\h*\(?\h*$<ret> j}iJ<a-x> <a-K>^<c-r>x\)?\h*\}<ret>
# Insert closing '}'.
execute-keys -draft o<c-r>x}<esc>
# Delete trailing '}' on the line below the '{'.
@@ -148,7 +148,7 @@ define-command -hidden go-insert-on-new-line %[
try %[ execute-keys -draft k<a-x>s^\h+<ret>"xy ] catch %[ reg x '' ]
try %[
# Validate previous line and that it is not closed yet.
- execute-keys -draft k<a-x> <a-k>^<c-r>x.*\(\h*$<ret> J}iJ<a-x> <a-K>^<c-r>x(\)\h*\}?)$<ret>
+ execute-keys -draft k<a-x> <a-k>^<c-r>x.*\(\h*$<ret> J}iJ<a-x> <a-K>^<c-r>x\)<ret>
# Insert closing ')'.
execute-keys -draft o<c-r>x)<esc>
# Delete trailing ')' on the line below the '('.
diff --git a/test/indent/go/deindent-generic-closing-brace/in b/test/indent/go/deindent-generic-closing-brace/in
index ef741602..b360ff42 100644
--- a/test/indent/go/deindent-generic-closing-brace/in
+++ b/test/indent/go/deindent-generic-closing-brace/in
@@ -41,3 +41,9 @@
12
{(
bar()%( ))}
+
+13
+a := []int{
+ someFunction(%( )
+ ),
+}
diff --git a/test/indent/go/deindent-generic-closing-brace/out b/test/indent/go/deindent-generic-closing-brace/out
index e3aaa065..26d936fe 100644
--- a/test/indent/go/deindent-generic-closing-brace/out
+++ b/test/indent/go/deindent-generic-closing-brace/out
@@ -56,3 +56,10 @@
{(
bar()
)}
+
+13
+a := []int{
+ someFunction(
+
+ ),
+}