1"
2" Copyright 2016, NICTA
3"
4" This software may be distributed and modified according to the terms of
5" the BSD 2-Clause license. Note that NO WARRANTY is provided.
6" See "LICENSE_BSD2.txt" for details.
7"
8" @TAG(NICTA_BSD)
9"
10
11" Vim syntax highlighting configuration for Isabelle ROOT files. Based on
12" sections 2.1, 2.2 of the Isabelle System Manual.
13
14" From section 2.1:
15syn keyword RootKeyword chapter description document_files files in options
16    \ session theories global_theories
17
18" From ~~/etc/options
19syn keyword RootOption browser_info document document_output document_variants
20    \ document_graph thy_output_display thy_output_break thy_output_quotes
21    \ thy_output_indent thy_output_source thy_output_modes show_types
22    \ show_sorts show_question_marks show_consts show_main_goal goals_limit
23    \ names_long names_short names_unique eta_contract pretty_margin print_mode
24    \ threads threads_trace parallel_print parallel_proofs
25    \ parallel_subproofs_threshold quick_and_dirty skip_proofs condition timing
26    \ timeout process_output_limit use_stale_heaps ML_exception_trace
27    \ editor_load_delay editor_input_delay editor_output_delay
28    \ editor_prune_delay editor_update_delay editor_reparse_limit
29    \ editor_tracing_messages editor_chart_delay editor_continuous_checking
30    \ editor_execution_delay editor_syslog_limit find_theorems_limit
31    \ find_theorems_tactic_limit completion_limit
32
33syn region RootComment start="(\*" end="\*)"
34syn region RootDescription start="{\*" end="\*}"
35syn region RootString start='"' end='"'
36syn match RootNumber "\m[0-9]\+"
37syn match RootBool "\(true\|false\)"
38syn keyword RootFormat pdf
39
40" Enable syntax-based folding of sessions.
41syn region RootSessionFold fold keepend transparent
42    \ start="\(\<session\>\)\@<=" end="\ze\(\s*\n\)\+\(\S\|\%$\)"
43
44hi def link RootKeyword Statement
45hi def link RootOption Type
46hi def link RootComment Comment
47hi def link RootDescription Comment
48hi def link RootString Constant
49hi def link RootNumber Constant
50hi def link RootBool Constant
51hi def link RootFormat Constant
52