summaryrefslogtreecommitdiff
path: root/autoload/filetype/cmake.kak
blob: 86fda25dad59adff4a3b0c9b745e1becc8eccb93 (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
hook global BufCreate .+\.cmake|.*/CMakeLists.txt %{
    set-option buffer filetype cmake
}

hook global BufCreate .*/CMakeCache.txt %{
    set-option buffer filetype ini
}

hook global WinSetOption filetype=cmake %{
    require-module cmake
}

hook -group cmake-highlight global WinSetOption filetype=cmake %{
    add-highlighter window/cmake ref cmake
    hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/cmake }
}

provide-module cmake %{

add-highlighter shared/cmake regions
add-highlighter shared/cmake/code default-region group
add-highlighter shared/cmake/comment  region '#' '$' fill comment
add-highlighter shared/cmake/argument region -recurse '\(' '\w+\h*\(\K' '(?=\))' regions

add-highlighter shared/cmake/code/ regex '\w+\h*(?=\()' 0:meta

add-highlighter shared/cmake/argument/args default-region regex '\$\{\w+\}' 0:variable
add-highlighter shared/cmake/argument/comment  region '#' '$' fill comment
add-highlighter shared/cmake/argument/quoted region '"' '(?<!\\)(\\\\)*"' group
add-highlighter shared/cmake/argument/raw-quoted region -match-capture '\[(=*)\[' '\](=*)\]' ref cmake/argument/quoted

add-highlighter shared/cmake/argument/quoted/ fill string
add-highlighter shared/cmake/argument/quoted/ regex '\$\{\w+\}' 0:variable
add-highlighter shared/cmake/argument/quoted/ regex '\w+\h*(?=\()' 0:function

}