summaryrefslogtreecommitdiff
path: root/rc/clojure.kak
blob: fd4afb3c238b2c983a93e8ab5fe6911b548a8374 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# http://clojure.org
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾

# require lisp.kak

# Detection
# ‾‾‾‾‾‾‾‾‾

hook global BufSetOption mimetype=text/x-clojure %{
    set buffer filetype clojure
}

hook global BufCreate .*[.](clj) %{
    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
}