diff options
| author | Ivan Tham <pickfire@riseup.net> | 2021-02-17 01:16:58 +0800 |
|---|---|---|
| committer | Ivan Tham <pickfire@riseup.net> | 2021-02-17 01:17:17 +0800 |
| commit | 4e594e034adf3f3c005dbd2c020063c64e351d52 (patch) | |
| tree | 753ee04948af5c046175514e0df82f04332e58b4 | |
| parent | 049591f6b494efb969f36b553e4dfe14ce1cddce (diff) | |
Dedent rust await function with ?
| -rw-r--r-- | rc/filetype/rust.kak | 4 | ||||
| -rw-r--r-- | test/indent/rust/dedent-async/in | 3 | ||||
| -rw-r--r-- | test/indent/rust/dedent-async/out | 4 | ||||
| -rw-r--r-- | test/indent/rust/dedent-function-closing-brace/in | 8 | ||||
| -rw-r--r-- | test/indent/rust/dedent-function-closing-brace/out | 11 | ||||
| -rw-r--r-- | test/indent/rust/dedent-generic-closing-brace/in | 3 | ||||
| -rw-r--r-- | test/indent/rust/dedent-generic-closing-brace/out | 4 |
7 files changed, 30 insertions, 7 deletions
diff --git a/rc/filetype/rust.kak b/rc/filetype/rust.kak index 1267f52a..473a2e89 100644 --- a/rc/filetype/rust.kak +++ b/rc/filetype/rust.kak @@ -157,8 +157,8 @@ define-command -hidden rust-indent-on-new-line %~ try %< execute-keys -draft k <a-x> s [^\h].+ <ret> <a-K> \A[-+*/&|^})<gt><lt>#] <ret> <a-K> [,<semicolon>{](\h*/[/*].*|)$ <ret> j <a-gt> > # indent after lines ending with { try %< execute-keys -draft k <a-x> <a-k> \{$ <ret> j <a-gt> > - # dedent after lines starting with . and ending with } or ) or , or ; or .await - try %_ execute-keys -draft k <a-x> <a-k> ^\h*\. <ret> <a-k>([}),<semicolon>]|\.await)\h*$ <ret> j <a-lt> _ + # dedent after lines starting with . and ending with } or ) or , or ; or .await (} or ) or .await maybe with ?) + try %_ execute-keys -draft k <a-x> <a-k> ^\h*\. <ret> <a-k> ([,<semicolon>]|(([})]|\.await)\?*))\h*$ <ret> j <a-lt> _ # dedent after lines ending with " => {}" - part of empty match try %# execute-keys -draft k <a-x> <a-k> \ =>\ \{\}\h*$ <ret> j <a-lt> # # align to opening curly brace or paren when newline is inserted before a single closing diff --git a/test/indent/rust/dedent-async/in b/test/indent/rust/dedent-async/in index 19fba70f..9ab0e36d 100644 --- a/test/indent/rust/dedent-async/in +++ b/test/indent/rust/dedent-async/in @@ -3,3 +3,6 @@ foo().await%( ) + foo() + .await?%( ) + diff --git a/test/indent/rust/dedent-async/out b/test/indent/rust/dedent-async/out index 3ed467d8..41d7d9f4 100644 --- a/test/indent/rust/dedent-async/out +++ b/test/indent/rust/dedent-async/out @@ -5,3 +5,7 @@ foo().await bar + foo() + .await? + bar + diff --git a/test/indent/rust/dedent-function-closing-brace/in b/test/indent/rust/dedent-function-closing-brace/in index ab5cc032..bb946bea 100644 --- a/test/indent/rust/dedent-function-closing-brace/in +++ b/test/indent/rust/dedent-function-closing-brace/in @@ -11,5 +11,9 @@ fn foo() -> i32 {%( )bar() fn foo() -> i32 { bar()%( )} - fn foo() -> i32 { - bar()%( )} + fn foo() -> i32 { + bar()%( )} + + fn foo() -> i32 { + bar()?%( )} + diff --git a/test/indent/rust/dedent-function-closing-brace/out b/test/indent/rust/dedent-function-closing-brace/out index 2c58c554..5fe29ee1 100644 --- a/test/indent/rust/dedent-function-closing-brace/out +++ b/test/indent/rust/dedent-function-closing-brace/out @@ -16,6 +16,11 @@ fn foo() -> i32 { bar() } - fn foo() -> i32 { - bar() - } + fn foo() -> i32 { + bar() + } + + fn foo() -> i32 { + bar()? + } + diff --git a/test/indent/rust/dedent-generic-closing-brace/in b/test/indent/rust/dedent-generic-closing-brace/in index 21109831..e3f48677 100644 --- a/test/indent/rust/dedent-generic-closing-brace/in +++ b/test/indent/rust/dedent-generic-closing-brace/in @@ -27,5 +27,8 @@ {( bar()%( ))} +{( + bar()?%( ))} + {( bar()%( ))} diff --git a/test/indent/rust/dedent-generic-closing-brace/out b/test/indent/rust/dedent-generic-closing-brace/out index c8615372..4cecb179 100644 --- a/test/indent/rust/dedent-generic-closing-brace/out +++ b/test/indent/rust/dedent-generic-closing-brace/out @@ -38,6 +38,10 @@ bar() )} +{( + bar()? +)} + {( bar() )} |
