" Vim syntax file " Language: Modula-3 Quake " Maintainer: Doug Kearns " Last Change: 2021 April 15 if exists("b:current_syntax") finish endif " Keywords syn keyword m3quakeKeyword else end foreach if in is local or proc readonly syn keyword m3quakeKeyword return " Builtin procedures {{{ " Generated from m3-sys/m3quake/src/QMachine.m3 syn keyword m3quakeProcedure arglist cp_if defined empty equal error escape syn keyword m3quakeProcedure exec cm3_exec file format include make_dir syn keyword m3quakeProcedure normalize path stale try_exec try_cm3_exec syn keyword m3quakeProcedure unlink_file write datetime date datestamp syn keyword m3quakeProcedure TRACE_INSTR eval_func hostname syn keyword m3quakeProcedure pushd popd cd getwd syn keyword m3quakeProcedure quake syn keyword m3quakeProcedure q_exec q_exec_put q_exec_get syn keyword m3quakeProcedure fs_exists fs_readable fs_writable fs_executable syn keyword m3quakeProcedure fs_isdir fs_isfile fs_contents fs_putfile syn keyword m3quakeProcedure fs_mkdir fs_touch fs_lsdirs fs_lsfiles fs_rmdir syn keyword m3quakeProcedure fs_rmfile fs_rmrec fs_cp syn keyword m3quakeProcedure pn_valid pn_decompose pn_compose pn_absolute syn keyword m3quakeProcedure pn_prefix pn_last pn_base pn_lastbase pn_lastext syn keyword m3quakeProcedure pn_join pn_join2 pn_replace_ext pn_parent syn keyword m3quakeProcedure pn_current syn keyword m3quakeProcedure len syn keyword m3quakeProcedure split sub skipl skipr squeeze compress pos syn keyword m3quakeProcedure tcontains bool encode decode subst_chars syn keyword m3quakeProcedure del_chars subst subst_env add_prefix add_suffix " }}} " Identifiers syn match m3quakeEnvVariable "$\h\w\+" " Operators syn match m3quakeOperator "&" syn match m3quakeOperator "\<\%(contains\|not\|and\|or\)\>" " Strings syn match m3quakeEscape "\\[\\nrtbf"]" contained display syn region m3quakeString start=+"+ end=+"+ contains=m3quakeEscape " Comments syn keyword m3quakeTodo TODO FIXME XXX contained syn region m3quakeComment start="%" end="$" contains=m3quakeTodo,@Spell syn region m3quakeComment start="/\*" end="\*/" contains=m3quakeTodo,@Spell " Default highlighting hi def link m3quakeCommand Statement hi def link m3quakeComment Comment hi def link m3quakeEnvVariable Identifier hi def link m3quakeEscape Special hi def link m3quakeKeyword Keyword hi def link m3quakeOperator Operator hi def link m3quakeProcedure Function hi def link m3quakeString String hi def link m3quakeTodo Todo let b:current_syntax = "m3quake" " vim: nowrap sw=2 sts=2 ts=8 noet fdm=marker: