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