Bram Moolenaar | 56994d2 | 2021-04-17 16:31:09 +0200 | [diff] [blame] | 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: |