summaryrefslogtreecommitdiff
path: root/src/rc/cpp.kak
diff options
context:
space:
mode:
authorMaxime Coste <frrrwww@gmail.com>2012-11-21 19:07:41 +0100
committerMaxime Coste <frrrwww@gmail.com>2012-11-21 19:07:41 +0100
commite981fb7957f698d547e6bbd7098ba26a3a65785a (patch)
tree5546ebb91fccc1d6fb37d127b6ccca38bb0097e4 /src/rc/cpp.kak
parentff4e907fa9cc29493672cbd9c16717c15bb5a91d (diff)
cpp.kak: use regex filter to handle indentation
Diffstat (limited to 'src/rc/cpp.kak')
-rw-r--r--src/rc/cpp.kak13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/rc/cpp.kak b/src/rc/cpp.kak
index d9908fc8..d318df4a 100644
--- a/src/rc/cpp.kak
+++ b/src/rc/cpp.kak
@@ -9,7 +9,7 @@ hook global BufOpen .* %{ %sh{
fi
} }
-hook global WinSetOption filetype=cpp %{
+hook global WinSetOption filetype=cpp %~
addhl group cpp-highlight
addhl -group cpp-highlight regex "\<(this|true|false|NULL|nullptr|)\>|\<-?\d+[fdiu]?|'((\\.)?|[^'\\])'" 0:value
addhl -group cpp-highlight regex "\<(void|int|char|unsigned|float|bool|size_t)\>" 0:type
@@ -18,14 +18,15 @@ hook global WinSetOption filetype=cpp %{
addhl -group cpp-highlight regex "(?<!')\".*?(?<!\\)(\\\\)*\"" 0:string
addhl -group cpp-highlight regex "(\`|(?<=\n))\h*#\h*[^\n]*" 0:macro
addhl -group cpp-highlight regex "(//[^\n]*\n)|(/\*.*?(\*/|\'))" 0:comment
- addfilter group cpp-filters;
- addfilter -group cpp-filters preserve_indent;
- addfilter -group cpp-filters cleanup_whitespaces;
+ addfilter group cpp-filters
+ addfilter -group cpp-filters regex ^(\h+)[^\n]*[^([{]\h* \n \n$1
+ addfilter -group cpp-filters regex ^(\h*)[^\n]*[([{]\h* \n '\n$1 '
+ addfilter -group cpp-filters cleanup_whitespaces
hook window InsertEnd .* %{ exec xs\h+(?=\n)<ret>d }
-}
+~
hook global WinSetOption filetype=(?!cpp).* %{
- rmhl cpp-highlight;
+ rmhl cpp-highlight
rmfilter cpp-filters
}