Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 1 | " Vim syntax file |
| 2 | " Language: Eterm configuration file |
| 3 | " Maintainer: Nikolai Weibull <source@pcppopper.org> |
| 4 | " URL: http://www.pcppopper.org/vim/syntax/pcp/eterm/ |
| 5 | " Latest Revision: 2004-05-06 |
| 6 | " arch-tag: f4c58caf-2b91-4fc4-96af-e3cad7c70e6b |
| 7 | |
| 8 | if version < 600 |
| 9 | syntax clear |
| 10 | elseif exists("b:current_syntax") |
| 11 | finish |
| 12 | endif |
| 13 | |
| 14 | " magic number |
| 15 | syn match etermMagic display "^<Eterm-[0-9.]\+>$" |
| 16 | |
| 17 | " comments |
| 18 | syn region etermComment matchgroup=etermComment start="^#" end="$" contains=etermTodo |
| 19 | |
| 20 | " todo |
| 21 | syn keyword etermTodo contained TODO FIXME XXX NOTE |
| 22 | |
| 23 | " numbers |
| 24 | syn match etermNumber contained display "\<\(\d\+\|0x\x\{1,2}\)\>" |
| 25 | |
| 26 | " strings |
| 27 | syn region etermString contained display oneline start=+"+ skip=+\\"+ end=+"+ |
| 28 | |
| 29 | " booleans |
| 30 | syn keyword etermBoolean contained on off true false yes no |
| 31 | |
| 32 | " colors (not pretty, but can't figure out better way...) |
| 33 | syn match etermColor contained display "\s\+#\x\{6}\>" |
| 34 | syn keyword etermColor contained white black |
| 35 | |
| 36 | " preproc |
| 37 | syn match etermPreProc contained "%\(appname\|exec\|get\|put\|random\|version\|include\|preproc\)("he=e-1 |
| 38 | |
| 39 | " functions |
| 40 | syn match etermFunctions contained "\<\(copy\|exit\|kill\|nop\|paste\|save\|scroll\|search\|spawn\)(" |
| 41 | |
| 42 | " and make it easy to refer to the above... |
| 43 | syn cluster etermGeneral contains=etermComment,etermNumber,etermString,etermBoolean,etermColor,etermFunction,etermPreProc |
| 44 | |
| 45 | " key modifiers |
| 46 | syn keyword etermKeyMod contained ctrl shift lock mod1 mod2 mod3 mod4 mod5 alt meta anymod |
| 47 | syn keyword etermKeyMod contained button1 button2 button3 button4 button5 |
| 48 | |
| 49 | " color context |
| 50 | syn region etermColorOptions contained oneline matchgroup=etermOption start="^\s*video\>" matchgroup=etermType end="\<\(normal\|reverse\)\>" |
| 51 | syn region etermColorOptions contained oneline matchgroup=etermOption start="^\s*color\>" matchgroup=etermType end="\<\(bd\|ul\|[0-9]\|1[0-5]\)\>" |
| 52 | syn keyword etermColorOptions contained foreground background cursor cursor_text pointer |
| 53 | |
| 54 | syn region etermColorContext fold transparent matchgroup=etermContext start="^\s*begin\s\+color\s*$" end="^\s*end\>\(\s\+.\{-0,}\)\=$" contains=@etermGeneral,etermColorOptions |
| 55 | |
| 56 | " attributes context |
| 57 | syn region etermAttrOptions contained oneline matchgroup=etermOption start="^\s*geometry\>" matchgroup=etermType end="\<\d\+x\d\++\d\++\d\+\>" |
| 58 | syn region etermAttrOptions contained oneline matchgroup=etermOption start="^\s*scrollbar_type\>" matchgroup=etermType end="\<\(motif\|xterm\|next\)\>" |
| 59 | syn region etermAttrOptions contained oneline matchgroup=etermOption start="^\s*font\>" matchgroup=etermType end="\<\(bold\|default\|proportional\|fx\|[0-5]\)\>" |
| 60 | syn keyword etermAttrOptions contained title name iconname desktop scrollbar_width |
| 61 | |
| 62 | syn region etermAttrContext fold transparent matchgroup=etermContext start="^\s*begin\s\+attributes\s*$" end="^\s*end\>\(\s\+.\{-0,}\)\=$" contains=@etermGeneral,etermAttrOptions |
| 63 | |
| 64 | " image context |
| 65 | " image types |
| 66 | syn keyword etermImageTypes contained background trough anchor up_arrow |
| 67 | syn keyword etermImageTypes contained left_arrow right_arrow menu menuitem |
| 68 | syn keyword etermImageTypes contained submenu button buttonbar down_arrow |
| 69 | syn region etermImageOptions contained transparent oneline matchgroup=etermOption start="^\s*type\>" end="$" contains=etermImageTypes |
| 70 | " image modes |
| 71 | syn keyword etermImageModes contained image trans viewport auto solid |
| 72 | syn keyword etermImageModesAllow contained allow |
| 73 | syn region etermImageOptions contained transparent oneline matchgroup=etermOption start="^\s*mode\>" end="$" contains=etermImageModes,etermImageModesAllow |
| 74 | " image states |
| 75 | syn region etermImageOptions contained transparent oneline matchgroup=etermOption start="^\s*state\>" matchgroup=etermType end="\<\(normal\|selected\|clicked\|disabled\)\>" |
| 76 | " image geometry |
| 77 | syn region etermImageOptions contained transparent oneline matchgroup=etermOption start="^\s*geom\>" matchgroup=etermType end="\s\+\(\d\+x\d\++\d\++\d\+\)\=:\(\(tile\|scale\|hscale\|vscale\|propscale\)d\=\)\=" |
| 78 | " image color modification |
| 79 | syn region etermImageOptions contained transparent oneline matchgroup=etermOption start="^\s*\(cmod\|colormod\)\>" matchgroup=etermType end="\<\(image\|red\|green\|blue\)\>" |
| 80 | " other keywords |
| 81 | syn keyword etermImageOptions contained file padding border bevel color |
| 82 | |
| 83 | syn region etermImageContext contained transparent fold matchgroup=etermContext start="^\s*begin\s\+image\s*$" end="^\s*end\>\(\s\+.\{-0,}\)\=$" contains=@etermGeneral,etermImageOptions |
| 84 | |
| 85 | " imageclasses context |
| 86 | syn keyword etermIClassOptions contained icon cache path anim |
| 87 | |
| 88 | syn region etermIClassContext fold transparent matchgroup=etermContext start="^\s*begin\s\+imageclasses\s*$" end="^\s*end\>\(\s\+.\{-0,}\)\=$" contains=@etermGeneral,etermImageContext,etermIClassOptions |
| 89 | |
| 90 | " menuitem context |
| 91 | syn region etermMenuItemOptions contained transparent oneline matchgroup=etermOption start="^\s*action\>" matchgroup=etermType end="\<string\|echo\|submenu\|script\|separator\>" |
| 92 | syn keyword etermMenuItemOptions contained text rtext |
| 93 | |
| 94 | syn region etermMenuItemContext fold transparent matchgroup=etermContext start="^\s*begin\s\+menuitem\s*$" end="^\s*end\>\(\s\+.\{-0,}\)\=$" contains=@etermGeneral,etermMenuItemOptions |
| 95 | |
| 96 | " menu context (should contain - as well, but no...) |
| 97 | syn keyword etermMenuOptions contained title font_name sep |
| 98 | |
| 99 | syn region etermMenuContext fold transparent matchgroup=etermContext start="^\s*begin\s\+menu\s*$" end="^\s*end\>\(\s\+.\{-0,}\)\=$" contains=@etermGeneral,etermMenuOptions,etermMenuItemContext |
| 100 | |
| 101 | " action context |
| 102 | syn match etermActionDef contained "\<\(to\|string\|echo\|menu\|script\)\>" |
| 103 | syn region etermActionsOptions contained transparent oneline matchgroup=etermOption start="^\s*bind\>" end="$" contains=etermActionDef,etermKeyMod |
| 104 | |
| 105 | syn region etermActionsContext fold transparent matchgroup=etermContext start="^\s*begin\s\+actions\s*$" end="^\s*end\>\(\s\+.\{-0,}\)\=$" contains=@etermGeneral,etermActionsOptions |
| 106 | |
| 107 | " button bar context |
| 108 | syn match etermButtonDef contained "\<\(action\|string\|echo\|menu\|scrupt\)\>" |
| 109 | syn region etermButtonOptions contained transparent oneline matchgroup=etermOption start="^\s*button\>" end="$" contains=etermButtonDef |
| 110 | syn keyword etermButtonOptions contained font visible dock |
| 111 | |
| 112 | syn region etermButtonContext fold transparent matchgroup=etermContext start="^\s*begin\s\+button_bar\s*$" end="^\s*end\>\(\s\+.\{-0,}\)\=$" contains=@etermGeneral,etermButtonOptions |
| 113 | |
| 114 | " multichar context |
| 115 | syn keyword etermMultiOptions contained encoding font |
| 116 | |
| 117 | syn region etermMultiContext fold transparent matchgroup=etermContext start="^\s*begin\s\+multichar\s*$" end="^\s*end\>\(\s\+.\{-0,}\)\=$" contains=@etermGeneral,etermMultiOptions |
| 118 | |
| 119 | " xim context |
| 120 | syn keyword etermXimOptions contained input_method preedit_type |
| 121 | |
| 122 | syn region etermXimContext fold transparent matchgroup=etermContext start="^\s*begin\s\+xim\s*$" end="^\s*end\>\(\s\+.\{-0,}\)\=$" contains=@etermGeneral,etermXimOptions |
| 123 | |
| 124 | " toggles context |
| 125 | syn keyword etermTogOptions contained map_alert visual_bell login_shell scrollbar utmp_logging meta8 iconic no_input |
| 126 | syn keyword etermTogOptions contained home_on_output home_on_input scrollbar_floating scrollbar_right scrollbar_popup |
| 127 | syn keyword etermTogOptions contained borderless double_buffer no_cursor pause xterm_select select_line |
| 128 | syn keyword etermTogOptions contained select_trailing_spaces report_as_keysyms itrans immotile_trans buttonbar |
| 129 | syn keyword etermTogOptions contained resize_gravity |
| 130 | |
| 131 | syn region etermTogContext fold transparent matchgroup=etermContext start="^\s*begin\s\+toggles\s*$" end="^\s*end\>\(\s\+.\{-0,}\)\=$" contains=@etermGeneral,etermTogOptions |
| 132 | |
| 133 | " keyboard context |
| 134 | syn keyword etermKeyboardOptions contained smallfont_key bigfont_key keysym meta_mod alt_mod |
| 135 | syn keyword etermKeyboardOptions contained greek numlock_mod app_keypad app_cursor |
| 136 | |
| 137 | syn region etermKeyboardContext fold transparent matchgroup=etermContext start="^\s*begin\s\+keyboard\s*$" end="^\s*end\>\(\s\+.\{-0,}\)\=$" contains=@etermGeneral,etermKeyboardOptions |
| 138 | |
| 139 | " misc context |
| 140 | syn keyword etermMiscOptions contained print_pipe save_lines cut_chars min_anchor_size |
| 141 | syn keyword etermMiscOptions contained border_width line_space finished_title term_name |
| 142 | syn keyword etermMiscOptions contained finished_text exec |
| 143 | |
| 144 | syn region etermMiscContext fold transparent matchgroup=etermContext start="^\s*begin\s\+misc\s*$" end="^\s*end\>\(\s\+.\{-0,}\)\=$" contains=@etermGeneral,etermMiscOptions |
| 145 | |
| 146 | if exists("eterm_minlines") |
| 147 | let b:eterm_minlines = eterm_minlines |
| 148 | else |
| 149 | let b:eterm_minlines = 30 |
| 150 | endif |
| 151 | exec "syn sync minlines=" . b:eterm_minlines |
| 152 | |
| 153 | " Define the default highlighting. |
| 154 | " For version 5.7 and earlier: only when not done already |
| 155 | " For version 5.8 and later: only when an item doesn't have highlighting yet |
| 156 | if version >= 508 || !exists("did_eterm_syn_inits") |
| 157 | if version < 508 |
| 158 | let did_eterm_syn_inits = 1 |
| 159 | command -nargs=+ HiLink hi link <args> |
| 160 | else |
| 161 | command -nargs=+ HiLink hi def link <args> |
| 162 | endif |
| 163 | |
| 164 | HiLink etermMagic Special |
| 165 | HiLink etermComment Comment |
| 166 | HiLink etermTodo Todo |
| 167 | HiLink etermNumber Number |
| 168 | HiLink etermString String |
| 169 | HiLink etermBoolean Boolean |
| 170 | HiLink etermColor Number |
| 171 | HiLink etermPreProc PreProc |
| 172 | HiLink etermFunctions Function |
| 173 | HiLink etermKeyMod Special |
| 174 | HiLink etermContext Keyword |
| 175 | HiLink etermOption Keyword |
| 176 | HiLink etermType Type |
| 177 | HiLink etermColorOptions Keyword |
| 178 | HiLink etermAttrOptions Keyword |
| 179 | HiLink etermIClassOptions Keyword |
| 180 | HiLink etermImageTypes Type |
| 181 | HiLink etermImageModes Type |
| 182 | HiLink etermImageModesAllow Keyword |
| 183 | HiLink etermImageOptions Keyword |
| 184 | HiLink etermMenuOptions Keyword |
| 185 | HiLink etermMenuItemOptions Keyword |
| 186 | HiLink etermActionDef Type |
| 187 | HiLink etermActionsOptions Keyword |
| 188 | HiLink etermButtonDef Type |
| 189 | HiLink etermButtonOptions Keyword |
| 190 | HiLink etermMultiOptions Keyword |
| 191 | HiLink etermXimOptions Keyword |
| 192 | HiLink etermTogOptions Keyword |
| 193 | HiLink etermKeyboardOptions Keyword |
| 194 | HiLink etermMiscOptions Keyword |
| 195 | delcommand HiLink |
| 196 | endif |
| 197 | |
| 198 | let b:current_syntax = "eterm" |
| 199 | |
| 200 | " vim: set sts=2 sw=2: |