diff --git a/src/Makefile b/src/Makefile index 5d6a85d8..de2cb889 100644 --- a/src/Makefile +++ b/src/Makefile @@ -41,6 +41,6 @@ XDG_CONFIG_HOME ?= $(HOME)/.config userconfig: mkdir -p $(XDG_CONFIG_HOME)/kak/autoload - ln -s $(CURDIR)/rc/{asciidoc,client,cpp,diff,git,grep,kakrc,make,sh,mail,man}.kak $(XDG_CONFIG_HOME)/kak/autoload/ + ln -s $(CURDIR)/rc/{asciidoc,client,cpp,diff,git,grep,kakrc,mime,make,sh,mail,man}.kak $(XDG_CONFIG_HOME)/kak/autoload/ .PHONY: tags userconfig diff --git a/src/rc/cpp.kak b/src/rc/cpp.kak index 5da7e844..50556b97 100644 --- a/src/rc/cpp.kak +++ b/src/rc/cpp.kak @@ -2,12 +2,9 @@ hook global BufCreate .*\.(c|cc|cpp|cxx|C|h|hh|hpp|hxx|H) %{ set buffer filetype cpp } -hook global BufOpen .* %{ %sh{ - mimetype="$(file -b --mime-type ${kak_bufname})" - if [[ "${mimetype}" == "text/x-c++" || "${mimetype}" == "text/x-c" ]]; then - echo set buffer filetype cpp; - fi -} } +hook global BufSetOption mimetype=text/x-c(\+\+)? %{ + set buffer filetype cpp +} hook global WinSetOption filetype=cpp %~ addhl group cpp-highlight @@ -35,6 +32,8 @@ hook global WinSetOption filetype=cpp %~ try %{ exec -draft ks^\h*\K(/{2,})yP } # indent after visibility specifier try %[ exec -draft k^\h*(public|private|protected):\h*$j ] + # indent after if|else|while|for + try %[ exec -draft )MB\`(if|else|while|for)\h*\(.*\)\n\h*\n\' ] _ @ hook window InsertChar \} -id cpp-indent %[ diff --git a/src/rc/mail.kak b/src/rc/mail.kak index abf5364a..cdc537ea 100644 --- a/src/rc/mail.kak +++ b/src/rc/mail.kak @@ -1,9 +1,4 @@ -hook global BufOpen .* %{ %sh{ - mimetype="$(file -b --mime-type ${kak_bufname})" - if [[ "${mimetype}" == "message/rfc822" ]]; then - echo set buffer filetype mail; - fi -} } +hook global BufSetOption mimetype=message/rfc822 %{ set buffer filetype mail } hook global WinSetOption filetype=mail %~ addhl group mail-highlight diff --git a/src/rc/mime.kak b/src/rc/mime.kak new file mode 100644 index 00000000..e0801a18 --- /dev/null +++ b/src/rc/mime.kak @@ -0,0 +1,5 @@ +decl str mimetype "text/plain" + +hook global BufOpen .* %{ + set buffer mimetype %sh{file -b --mime-type ${kak_bufname} } +} diff --git a/src/rc/sh.kak b/src/rc/sh.kak index d558d0a9..f2240f9b 100644 --- a/src/rc/sh.kak +++ b/src/rc/sh.kak @@ -2,12 +2,9 @@ hook global BufCreate .*\.(sh) %{ set buffer filetype sh } -hook global BufOpen .* %{ %sh{ - mimetype="$(file -b --mime-type ${kak_bufname})" - if [[ "${mimetype}" == "text/x-shellscript" ]]; then - echo set buffer filetype sh; - fi -} } +hook global BufSetOption mimetype=text/x-shellscript %{ + set buffer filetype sh +} hook global WinSetOption filetype=sh %~ addhl group sh-highlight