From fa9d13700abad50793d2cd81a686856646d9b6e9 Mon Sep 17 00:00:00 2001 From: Justin Frank Date: Tue, 11 Sep 2018 21:21:25 -0700 Subject: [PATCH 1/2] Added deindenting of single statements --- rc/core/c-family.kak | 2 ++ 1 file changed, 2 insertions(+) diff --git a/rc/core/c-family.kak b/rc/core/c-family.kak index def12daa..19d9750b 100644 --- a/rc/core/c-family.kak +++ b/rc/core/c-family.kak @@ -48,6 +48,8 @@ define-command -hidden c-family-indent-on-newline %< evaluate-commands -draft -i try %< execute-keys -draft k s[a-zA-Z0-9_-]+:\h*$ j > # indent after a statement not followed by an opening brace try %< execute-keys -draft k \b(if|else|for|while)\h*\(.+?\)\h*$ j > + # deindent after a single line statement end + try %< execute-keys -draft K \;\h*$ K s\b(if|else|for|while)\h*\(.*\)\h*$|.\z 1 > # align to the opening parenthesis or opening brace (whichever is first) # on a previous line if its followed by text on the same line try %< evaluate-commands -draft %< From de839d14c4cc05d8d44eb8700bf0d96de639808c Mon Sep 17 00:00:00 2001 From: Justin Frank Date: Wed, 12 Sep 2018 12:25:36 -0700 Subject: [PATCH 2/2] added test for deindentation --- test/indent/c-family/deindent-if-body/cmd | 1 + test/indent/c-family/deindent-if-body/in | 2 ++ test/indent/c-family/deindent-if-body/out | 3 +++ test/indent/c-family/deindent-if-body/rc | 3 +++ test/indent/c-family/deindent-if-body/state | 1 + 5 files changed, 10 insertions(+) create mode 100644 test/indent/c-family/deindent-if-body/cmd create mode 100644 test/indent/c-family/deindent-if-body/in create mode 100644 test/indent/c-family/deindent-if-body/out create mode 100644 test/indent/c-family/deindent-if-body/rc create mode 100644 test/indent/c-family/deindent-if-body/state diff --git a/test/indent/c-family/deindent-if-body/cmd b/test/indent/c-family/deindent-if-body/cmd new file mode 100644 index 00000000..b11ad994 --- /dev/null +++ b/test/indent/c-family/deindent-if-body/cmd @@ -0,0 +1 @@ +cbaz diff --git a/test/indent/c-family/deindent-if-body/in b/test/indent/c-family/deindent-if-body/in new file mode 100644 index 00000000..3a64ea8b --- /dev/null +++ b/test/indent/c-family/deindent-if-body/in @@ -0,0 +1,2 @@ +if (int i = bar()) + foo();%( ) diff --git a/test/indent/c-family/deindent-if-body/out b/test/indent/c-family/deindent-if-body/out new file mode 100644 index 00000000..62a0612f --- /dev/null +++ b/test/indent/c-family/deindent-if-body/out @@ -0,0 +1,3 @@ +if (int i = bar()) + foo(); +baz diff --git a/test/indent/c-family/deindent-if-body/rc b/test/indent/c-family/deindent-if-body/rc new file mode 100644 index 00000000..53c40654 --- /dev/null +++ b/test/indent/c-family/deindent-if-body/rc @@ -0,0 +1,3 @@ +source "%val{runtime}/colors/default.kak" +source "%val{runtime}/rc/core/c-family.kak" +set buffer filetype cpp diff --git a/test/indent/c-family/deindent-if-body/state b/test/indent/c-family/deindent-if-body/state new file mode 100644 index 00000000..88f47c8a --- /dev/null +++ b/test/indent/c-family/deindent-if-body/state @@ -0,0 +1 @@ +3.4,3.4