2017-02-26 21:54:06 +01:00
|
|
|
# http://ocaml.org
|
|
|
|
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
|
|
|
|
|
|
|
# Detection
|
|
|
|
# ‾‾‾‾‾‾‾‾‾
|
|
|
|
|
|
|
|
hook global BufCreate .*\.mli? %{
|
2017-11-03 08:34:41 +01:00
|
|
|
set-option buffer filetype ocaml
|
2017-02-26 21:54:06 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
# Highlighters
|
|
|
|
# ‾‾‾‾‾‾‾‾‾‾‾‾
|
|
|
|
|
2018-07-01 11:53:35 +02:00
|
|
|
add-highlighter shared/ocaml regions
|
|
|
|
add-highlighter shared/ocaml/code default-region group
|
2018-07-02 12:59:12 +02:00
|
|
|
add-highlighter shared/ocaml/string region '"' (?<!\\)(\\\\)*" fill string
|
|
|
|
add-highlighter shared/ocaml/comment region \Q(* \Q*) fill comment
|
2017-02-26 21:54:06 +01:00
|
|
|
|
|
|
|
# Initialization
|
|
|
|
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
|
|
|
|
2018-11-28 10:39:15 +01:00
|
|
|
hook -group ocaml-highlight global WinSetOption filetype=ocaml %{
|
|
|
|
add-highlighter window/ocaml ref ocaml
|
|
|
|
hook -once -always window WinSetOption filetype=(?!ocaml).* %{ remove-highlighter window/ocaml }
|
|
|
|
}
|
2017-02-26 21:54:06 +01:00
|
|
|
|
|
|
|
# Macro
|
|
|
|
# ‾‾‾‾‾
|
|
|
|
|
2018-05-06 23:29:52 +02:00
|
|
|
evaluate-commands %sh{
|
2017-02-26 21:54:06 +01:00
|
|
|
keywords=and:as:asr:assert:begin:class:constraint:do:done:downto:else:end:exception:external:false:for:fun:function:functor:if:in:include:inherit:initializer:land:lazy:let:lor:lsl:lsr:lxor:match:method:mod:module:mutable:new:nonrec:object:of:open:or:private:rec:sig:struct:then:to:true:try:type:val:virtual:when:while:with
|
|
|
|
echo "
|
2018-07-01 11:53:35 +02:00
|
|
|
add-highlighter shared/ocaml/code/ regex \b($(printf $keywords | tr : '|'))\b 0:keyword
|
2017-02-26 21:54:06 +01:00
|
|
|
hook global WinSetOption filetype=ocaml %{
|
2017-11-03 08:34:41 +01:00
|
|
|
set-option window static_words $keywords
|
2017-02-26 21:54:06 +01:00
|
|
|
}
|
|
|
|
"
|
|
|
|
}
|