summaryrefslogtreecommitdiff
path: root/rc/base/clojure.kak
diff options
context:
space:
mode:
authorMaxime Coste <frrrwww@gmail.com>2016-01-29 09:03:23 +0000
committerMaxime Coste <frrrwww@gmail.com>2016-01-29 09:03:23 +0000
commitfef02779981acb6153396975ceaec0dbdbfb8d57 (patch)
tree3e204705c1d1ca60d639e80637fd07e4189359d6 /rc/base/clojure.kak
parentc27778497eaddb0d3099cb3f2f7165ccc6b37634 (diff)
Reorganise rc/ into subdirectories
* core: set of tools to work on kakoune source code * base: very common languages and tools * extra: less common languages and tools
Diffstat (limited to 'rc/base/clojure.kak')
-rw-r--r--rc/base/clojure.kak46
1 files changed, 46 insertions, 0 deletions
diff --git a/rc/base/clojure.kak b/rc/base/clojure.kak
new file mode 100644
index 00000000..8a3c97ac
--- /dev/null
+++ b/rc/base/clojure.kak
@@ -0,0 +1,46 @@
+# http://clojure.org
+# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
+
+# require lisp.kak
+
+# Detection
+# ‾‾‾‾‾‾‾‾‾
+
+hook global BufSetOption mimetype=text/x-clojure %{
+ set buffer filetype clojure
+}
+
+hook global BufCreate .*[.](cljs?) %{
+ set buffer filetype clojure
+}
+
+# Highlighters
+# ‾‾‾‾‾‾‾‾‾‾‾‾
+
+addhl -group / group clojure
+
+addhl -group /clojure ref lisp
+
+addhl -group /clojure regex \<(clojure.core/['/\w]+)\> 0:keyword
+
+# Commands
+# ‾‾‾‾‾‾‾‾
+
+def -hidden _clojure_filter_around_selections _lisp_filter_around_selections
+def -hidden _clojure_indent_on_new_line _lisp_indent_on_new_line
+
+# Initialization
+# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
+
+hook global WinSetOption filetype=clojure %[
+ addhl ref clojure
+
+ hook window InsertEnd .* -group clojure-hooks _clojure_filter_around_selections
+ hook window InsertChar \n -group clojure-indent _clojure_indent_on_new_line
+]
+
+hook global WinSetOption filetype=(?!clojure).* %{
+ rmhl clojure
+ rmhooks window clojure-indent
+ rmhooks window clojure-hooks
+}