24468
|
1 " Vim syntax file
|
|
2 " Language: Modula-3 Quake
|
|
3 " Maintainer: Doug Kearns <dougkearns@gmail.com>
|
|
4 " Last Change: 2021 April 15
|
|
5
|
|
6 if exists("b:current_syntax")
|
|
7 finish
|
|
8 endif
|
|
9
|
|
10 " Keywords
|
|
11 syn keyword m3quakeKeyword else end foreach if in is local or proc readonly
|
|
12 syn keyword m3quakeKeyword return
|
|
13
|
|
14 " Builtin procedures {{{
|
|
15 " Generated from m3-sys/m3quake/src/QMachine.m3
|
|
16 syn keyword m3quakeProcedure arglist cp_if defined empty equal error escape
|
|
17 syn keyword m3quakeProcedure exec cm3_exec file format include make_dir
|
|
18 syn keyword m3quakeProcedure normalize path stale try_exec try_cm3_exec
|
|
19 syn keyword m3quakeProcedure unlink_file write datetime date datestamp
|
|
20 syn keyword m3quakeProcedure TRACE_INSTR eval_func hostname
|
|
21
|
|
22 syn keyword m3quakeProcedure pushd popd cd getwd
|
|
23
|
|
24 syn keyword m3quakeProcedure quake
|
|
25
|
|
26 syn keyword m3quakeProcedure q_exec q_exec_put q_exec_get
|
|
27
|
|
28 syn keyword m3quakeProcedure fs_exists fs_readable fs_writable fs_executable
|
|
29 syn keyword m3quakeProcedure fs_isdir fs_isfile fs_contents fs_putfile
|
|
30 syn keyword m3quakeProcedure fs_mkdir fs_touch fs_lsdirs fs_lsfiles fs_rmdir
|
|
31 syn keyword m3quakeProcedure fs_rmfile fs_rmrec fs_cp
|
|
32
|
|
33 syn keyword m3quakeProcedure pn_valid pn_decompose pn_compose pn_absolute
|
|
34 syn keyword m3quakeProcedure pn_prefix pn_last pn_base pn_lastbase pn_lastext
|
|
35 syn keyword m3quakeProcedure pn_join pn_join2 pn_replace_ext pn_parent
|
|
36 syn keyword m3quakeProcedure pn_current
|
|
37
|
|
38 syn keyword m3quakeProcedure len
|
|
39
|
|
40 syn keyword m3quakeProcedure split sub skipl skipr squeeze compress pos
|
|
41 syn keyword m3quakeProcedure tcontains bool encode decode subst_chars
|
|
42 syn keyword m3quakeProcedure del_chars subst subst_env add_prefix add_suffix
|
|
43 " }}}
|
|
44
|
|
45 " Identifiers
|
|
46 syn match m3quakeEnvVariable "$\h\w\+"
|
|
47
|
|
48 " Operators
|
|
49 syn match m3quakeOperator "&"
|
|
50 syn match m3quakeOperator "\<\%(contains\|not\|and\|or\)\>"
|
|
51
|
|
52 " Strings
|
|
53 syn match m3quakeEscape "\\[\\nrtbf"]" contained display
|
|
54 syn region m3quakeString start=+"+ end=+"+ contains=m3quakeEscape
|
|
55
|
|
56 " Comments
|
|
57 syn keyword m3quakeTodo TODO FIXME XXX contained
|
|
58 syn region m3quakeComment start="%" end="$" contains=m3quakeTodo,@Spell
|
|
59 syn region m3quakeComment start="/\*" end="\*/" contains=m3quakeTodo,@Spell
|
|
60
|
|
61 " Default highlighting
|
|
62 hi def link m3quakeCommand Statement
|
|
63 hi def link m3quakeComment Comment
|
|
64 hi def link m3quakeEnvVariable Identifier
|
|
65 hi def link m3quakeEscape Special
|
|
66 hi def link m3quakeKeyword Keyword
|
|
67 hi def link m3quakeOperator Operator
|
|
68 hi def link m3quakeProcedure Function
|
|
69 hi def link m3quakeString String
|
|
70 hi def link m3quakeTodo Todo
|
|
71
|
|
72 let b:current_syntax = "m3quake"
|
|
73
|
|
74 " vim: nowrap sw=2 sts=2 ts=8 noet fdm=marker:
|