summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMaxime Coste <frrrwww@gmail.com>2013-01-08 14:01:22 +0100
committerMaxime Coste <frrrwww@gmail.com>2013-01-08 14:01:22 +0100
commitf77509d498d9972da476d90f4c180ed5976be71d (patch)
tree590edb513783d50f76e6f4ba4e3baf6b930d2e2a /src
parent59941bcfa932d81c82491d9433c4c25fee1e8a02 (diff)
add sh.kak for shell script highlighting
Diffstat (limited to 'src')
-rw-r--r--src/Makefile2
-rw-r--r--src/rc/sh.kak25
2 files changed, 26 insertions, 1 deletions
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
+}