diff --git a/src/Makefile b/src/Makefile index 617c085c..b2b0ea14 100644 --- a/src/Makefile +++ b/src/Makefile @@ -23,6 +23,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}.kak $(XDG_CONFIG_HOME)/kak/autoload/ + ln -s $(CURDIR)/rc/{asciidoc,client,cpp,diff,git,grep,kakrc,make,sh}.kak $(XDG_CONFIG_HOME)/kak/autoload/ .PHONY: tags userconfig diff --git a/src/rc/sh.kak b/src/rc/sh.kak new file mode 100644 index 00000000..fb338dbd --- /dev/null +++ b/src/rc/sh.kak @@ -0,0 +1,25 @@ +hook global BufCreate .*\.(sh) %{ + setb filetype sh +} + +hook global BufOpen .* %{ %sh{ + mimetype="$(file -b --mime-type ${kak_bufname})" + if [[ "${mimetype}" == "text/x-shellscript" ]]; then + echo setb filetype sh; + fi +} } + +hook global WinSetOption filetype=sh %~ + addhl group sh-highlight + addhl -group sh-highlight regex \<(if|then|fi|while|for|do|done|case|esac|echo|cd|shift|return|exit|local)\> 0:keyword + addhl -group sh-highlight regex [\[\]\(\)&|]{2} 0:operator + addhl -group sh-highlight regex (\w+)= 1:identifier + addhl -group sh-highlight regex ^\h*(\w+)\h*\(\) 1:identifier + addhl -group sh-highlight regex "(^|\h)#.*?$" 0:comment + addhl -group sh-highlight regex (["'])(?:\\\1|.)*?\1 0:string + addhl -group sh-highlight regex \$(\w+|\{.+?\}) 0:identifier +~ + +hook global WinSetOption filetype=(?!sh).* %{ + rmhl sh-highlight +}