summaryrefslogtreecommitdiff
path: root/src/rc/cpp.kak
diff options
context:
space:
mode:
authorMaxime Coste <frrrwww@gmail.com>2013-11-07 18:45:08 +0000
committerMaxime Coste <frrrwww@gmail.com>2013-11-07 18:45:08 +0000
commit0b23a4f67b4e9e7db114635f8678c95e3b385c2f (patch)
tree2ce655b1a43bbf3c9d15239331a3e4bac4321cc1 /src/rc/cpp.kak
parent2eb1a323d9b3ec209451e6ec8312ec35f1aa27f8 (diff)
cpp indent improvement
* auto inserts a ; after } if it closes a class or struct * auto copy the // comment of the previous line
Diffstat (limited to 'src/rc/cpp.kak')
-rw-r--r--src/rc/cpp.kak6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/rc/cpp.kak b/src/rc/cpp.kak
index c5b0f422..6e957f01 100644
--- a/src/rc/cpp.kak
+++ b/src/rc/cpp.kak
@@ -25,8 +25,12 @@ hook global WinSetOption filetype=cpp %~
try %[ exec -draft k<a-x><a-k>[{(]\h*$<ret>j<a-gt> ] # indent after lines ending with { or (
try %{ exec -draft k<a-x>s\h+$<ret>d } # cleanup trailing white space son previous line
try %{ exec -draft [(<a-k>\`\([^\n]+\n[^\n]*\n?\'<ret>s\`..|.\'<ret>& } # align to opening paren of previous line
+ try %{ exec -draft <c-s>k<a-x>s^\h*\K(/{2,})<ret>y<c-o>P } # copy // comments prefix
_ @
- hook window InsertChar \} -id cpp-indent %[ try %[ exec -draft <a-h><a-k>^\h+\}$<ret>< ] ] # deindent on insert } alone on a line
+ hook window InsertChar \} -id cpp-indent %[
+ try %[ exec -draft <a-h><a-k>^\h+\}$<ret>< ] # deindent on insert } alone on a line
+ try %[ exec -draft "hm<space><a-?>(class|struct)<ret><a-k>\`(class|struct)[^{}\n]+(\n)?\s*\{\'<ret><a-space>ma;<esc>" ] # add ; after } if class or struct definition
+ ]
~
hook global WinSetOption filetype=(?!cpp).* %{