eterm.vim 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430
  1. " Vim syntax file
  2. " Language: eterm(1) configuration file
  3. " Previous Maintainer: Nikolai Weibull <now@bitwi.se>
  4. " Latest Revision: 2006-04-21
  5. if exists("b:current_syntax")
  6. finish
  7. endif
  8. let s:cpo_save = &cpo
  9. set cpo&vim
  10. syn keyword etermTodo contained TODO FIXME XXX NOTE
  11. syn region etermComment display oneline start='^#' end='$'
  12. \ contains=etermTodo,@Spell
  13. syn match etermMagic display '^<Eterm-[0-9.]\+>$'
  14. syn match etermNumber contained display '\<\(\d\+\|0x\x\{1,2}\)\>'
  15. syn region etermString contained display oneline start=+"+
  16. \ skip=+\\"+ end=+"+
  17. syn keyword etermBoolean contained on off true false yes no
  18. syn keyword etermPreProc contained appname exec get put random version
  19. \ include preproc
  20. syn keyword etermFunctions contained copy exit kill nop paste save
  21. \ scroll search spawn
  22. syn cluster etermGeneral contains=etermComment,etermFunction,
  23. \ etermPreProc
  24. syn keyword etermKeyMod contained ctrl shift lock mod1 mod2 mod3 mod4
  25. \ mod5 alt meta anymod
  26. syn keyword etermKeyMod contained button1 button2 button3 button4
  27. \ button5
  28. syn keyword etermColorOptions contained video nextgroup=etermVideoOptions
  29. \ skipwhite
  30. syn keyword etermVideoType contained normal reverse
  31. syn keyword etermColorOptions contained foreground background cursor
  32. \ cursor_text pointer
  33. \ nextgroup=etermColorType skipwhite
  34. syn keyword etermColorType contained bd ul
  35. syn match etermColorType contained display '\<\%(\d\|1[0-5]\)'
  36. syn keyword etermColorOptions contained color
  37. \ nextgroup=etermColorNumber skipwhite
  38. syn keyword etermColorNumber contained bd ul nextgroup=etermColorSpec
  39. \ skipwhite
  40. syn match etermColorNumber contained display '\<\%(\d\|1[0-5]\)'
  41. \ nextgroup=etermColorSpec skipwhite
  42. syn match etermColorSpec contained display '\S\+'
  43. syn region etermColorContext fold transparent matchgroup=etermContext
  44. \ start='^\s*begin\s\+color\>'
  45. \ end='^\s*end\>'
  46. \ contains=@etermGeneral,etermColorOptions
  47. syn keyword etermAttrOptions contained geometry nextgroup=etermGeometry
  48. \ skipwhite
  49. syn match etermGeometry contained display '\d\+x\d++\d\++\d\+'
  50. syn keyword etermAttrOptions contained scrollbar_type
  51. \ nextgroup=etermScrollbarType skipwhite
  52. syn keyword etermScrollbarType contained motif xterm next
  53. syn keyword etermAttrOptions contained font nextgroup=etermFontType
  54. \ skipwhite
  55. syn keyword etermFontType contained bold nextgroup=etermFont skipwhite
  56. syn match etermFontType contained display '[0-5]' nextgroup=etermFont
  57. \ skipwhite
  58. syn match etermFont contained display '\S\+'
  59. syn keyword etermFontType contained default nextgroup=etermNumber
  60. \ skipwhite
  61. syn keyword etermFontType contained proportional nextgroup=etermBoolean
  62. \ skipwhite
  63. syn keyword etermFontType contained fx nextgroup=etermString skipwhite
  64. syn keyword etermAttrOptions contained title name iconname
  65. \ nextgroup=etermString skipwhite
  66. syn keyword etermAttrOptions contained scrollbar_width desktop
  67. \ nextgroup=etermNumber skipwhite
  68. syn region etermAttrContext fold transparent matchgroup=etermContext
  69. \ start='^\s*begin\s\+attributes\>'
  70. \ end='^\s*end\>'
  71. \ contains=@etermGeneral,etermAttrOptions
  72. syn keyword etermIClassOptions contained icon path nextgroup=etermString
  73. \ skipwhite
  74. syn keyword etermIClassOptions contained cache nextgroup=etermNumber
  75. \ skipwhite
  76. syn keyword etermIClassOptions contained anim nextgroup=etermNumber
  77. \ skipwhite
  78. syn region etermIClassContext fold transparent matchgroup=etermContext
  79. \ start='^\s*begin\s\+imageclasses\>'
  80. \ end='^\s*end\>'
  81. \ contains=@etermGeneral,etermImageContext,
  82. \ etermIClassOptions
  83. syn keyword etermImageOptions contained type nextgroup=etermImageType
  84. \ skipwhite
  85. syn keyword etermImageTypes contained background trough anchor up_arrow
  86. \ left_arrow right_arrow menu menuitem
  87. \ submenu button buttonbar down_arrow
  88. syn keyword etermImageOptions contained mode nextgroup=etermImageModes
  89. \ skipwhite
  90. syn keyword etermImageModes contained image trans viewport auto solid
  91. \ nextgroup=etermImageModesAllow skipwhite
  92. syn keyword etermImageModesAllow contained allow nextgroup=etermImageModesR
  93. \ skipwhite
  94. syn keyword etermImageModesR contained image trans viewport auto solid
  95. syn keyword etermImageOptions contained state nextgroup=etermImageState
  96. \ skipwhite
  97. syn keyword etermImageState contained normal selected clicked disabled
  98. syn keyword etermImageOptions contained color nextgroup=etermImageColorFG
  99. \ skipwhite
  100. syn keyword etermImageColorFG contained '\S\+' nextgroup=etermImageColorBG
  101. \ skipwhite
  102. syn keyword etermImageColorBG contained '\S\+'
  103. syn keyword etermImageOptions contained file nextgroup=etermString
  104. \ skipwhite
  105. syn keyword etermImageOptions contained geom nextgroup=etermImageGeom
  106. \ skipwhite
  107. syn match etermImageGeom contained display
  108. \ '\s\+\%(\d\+x\d\++\d\++\d\+\)\=:\%(\%(tie\|scale\|hscale\|vscale\|propscale\)d\=\)\='
  109. syn keyword etermImageOptions contained cmod colormod
  110. \ nextgroup=etermImageCmod skipwhite
  111. syn keyword etermImageCmod contained image red green blue
  112. \ nextgroup=etermImageBrightness skipwhite
  113. syn match etermImageBrightness contained display '\<\(\d\+\|0x\x\{1,2}\)\>'
  114. \ nextgroup=etermImageContrast skipwhite
  115. syn match etermImageContrast contained display '\<\(\d\+\|0x\x\{1,2}\)\>'
  116. \ nextgroup=etermImageGamma skipwhite
  117. syn match etermImageGamma contained display '\<\(\d\+\|0x\x\{1,2}\)\>'
  118. \ nextgroup=etermImageGamma skipwhite
  119. syn region etermImageOptions contained display oneline
  120. \ matchgroup=etermImageOptions
  121. \ start='border\|bevel\%(\s\+\%(up\|down\)\)\|padding'
  122. \ end='$' contains=etermNumber
  123. syn region etermImageContext contained fold transparent
  124. \ matchgroup=etermContext
  125. \ start='^\s*begin\s\+image\>'
  126. \ end='^\s*end\>'
  127. \ contains=@etermGeneral,etermImageOptions
  128. syn keyword etermMenuItemOptions contained action
  129. \ nextgroup=etermMenuItemAction skipwhite
  130. syn keyword etermMenuItemAction contained string echo submenu script
  131. \ nextgroup=etermString skipwhite
  132. syn keyword etermMenuItemAction contained separator
  133. syn keyword etermMenuItemOptions contained text rtext nextgroup=etermString
  134. \ skipwhite
  135. syn region etermMenuItemContext contained fold transparent
  136. \ matchgroup=etermContext
  137. \ start='^\s*begin\s\+menuitem\>'
  138. \ end='^\s*end\>'
  139. \ contains=@etermGeneral,etermMenuItemOptions
  140. syn keyword etermMenuOptions contained title nextgroup=etermString
  141. \ skipwhite
  142. syn keyword etermMenuOptions contained font_name nextgroup=etermFont
  143. \ skipwhite
  144. syn match etermMenuOptions contained display '\<sep\>\|-'
  145. syn region etermMenuContext fold transparent matchgroup=etermContext
  146. \ start='^\s*begin\s\+menu\>'
  147. \ end='^\s*end\>'
  148. \ contains=@etermGeneral,etermMenuOptions,
  149. \ etermMenuItemContext
  150. syn keyword etermBind contained bind nextgroup=etermBindMods
  151. \ skipwhite
  152. syn keyword etermBindMods contained ctrl shift lock mod1 mod2 mod3 mod4
  153. \ mod5 alt meta anymod
  154. \ nextgroup=etermBindMods skipwhite
  155. syn keyword etermBindTo contained to nextgroup=etermBindType
  156. \ skipwhite
  157. syn keyword etermBindType contained string echo menu script
  158. \ nextgroup=etermBindParam skipwhite
  159. syn match etermBindParam contained display '\S\+'
  160. syn region etermActionsContext fold transparent matchgroup=etermContext
  161. \ start='^\s*begin\s\+actions\>'
  162. \ end='^\s*end\>'
  163. \ contains=@etermGeneral,etermActionsOptions
  164. syn keyword etermButtonOptions contained font nextgroup=etermFont skipwhite
  165. syn keyword etermButtonOptions contained visible nextgroup=etermBoolean
  166. \ skipwhite
  167. syn keyword etermButtonOptions contained dock nextgroup=etermDockOption
  168. \ skipwhite
  169. syn keyword etermDockOption contained top bottom no
  170. syn keyword etermButton contained button nextgroup=etermButtonText
  171. \ skipwhite
  172. syn region etermButtonText contained display oneline start=+"+
  173. \ skip=+\\"+ end=+"+
  174. \ nextgroup=etermButtonIcon skipwhite
  175. syn keyword etermButtonIcon contained icon nextgroup=etermButtonIconFile
  176. \ skipwhite
  177. syn keyword etermButtonIconFile contained '\S\+' nextgroup=etermButtonAction
  178. \ skipwhite
  179. syn keyword etermButtonAction contained action nextgroup=etermBindType
  180. \ skipwhite
  181. syn region etermButtonContext fold transparent matchgroup=etermContext
  182. \ start='^\s*begin\s\+button_bar\>'
  183. \ end='^\s*end\>'
  184. \ contains=@etermGeneral,etermButtonOptions
  185. syn keyword etermMultiOptions contained encoding nextgroup=etermEncoding
  186. \ skipwhite
  187. syn keyword etermEncoding eucj sjis euckr big5 gb
  188. syn match etermEncoding display 'iso-10646'
  189. syn keyword etermMultiOptions contained font nextgroup=etermFontType
  190. \ skipwhite
  191. syn region etermMultiContext fold transparent matchgroup=etermContext
  192. \ start='^\s*begin\s\+multichar\>'
  193. \ end='^\s*end\>'
  194. \ contains=@etermGeneral,etermMultiOptions
  195. syn keyword etermXimOptions contained input_method
  196. \ nextgroup=etermInputMethod skipwhite
  197. syn match etermInputMethod contained display '\S+'
  198. syn keyword etermXimOptions contained preedit_type
  199. \ nextgroup=etermPreeditType skipwhite
  200. syn keyword etermPreeditType contained OverTheSpot OffTheSpot Root
  201. syn region etermXimContext fold transparent matchgroup=etermContext
  202. \ start='^\s*begin\s\+xim\>'
  203. \ end='^\s*end\>'
  204. \ contains=@etermGeneral,etermXimOptions
  205. syn keyword etermTogOptions contained map_alert visual_bell login_shell
  206. \ scrollbar utmp_logging meta8 iconic
  207. \ no_input home_on_output home_on_input
  208. \ scrollbar_floating scrollbar_right
  209. \ scrollbar_popup borderless double_buffer
  210. \ no_cursor pause xterm_select select_line
  211. \ select_trailing_spaces report_as_keysyms
  212. \ itrans immotile_trans buttonbar
  213. \ resize_gravity nextgroup=etermBoolean
  214. \ skipwhite
  215. syn region etermTogContext fold transparent matchgroup=etermContext
  216. \ start='^\s*begin\s\+toggles\>'
  217. \ end='^\s*end\>'
  218. \ contains=@etermGeneral,etermTogOptions
  219. syn keyword etermKeyboardOptions contained smallfont_key bigfont_key keysym
  220. \ nextgroup=etermKeysym skipwhite
  221. syn keyword etermKeysym contained '\S\+' nextgroup=etermString
  222. \ skipwhite
  223. syn keyword etermKeyboardOptions contained meta_mod alt_mod numlock_mod
  224. \ nextgroup=etermNumber skipwhite
  225. syn keyword etermKeyboardOptions contained greek app_keypad app_cursor
  226. \ nextgroup=etermBoolean skipwhite
  227. syn region etermKeyboardContext fold transparent matchgroup=etermContext
  228. \ start='^\s*begin\s\+keyboard\>'
  229. \ end='^\s*end\>'
  230. \ contains=@etermGeneral,etermKeyboardOptions
  231. syn keyword etermMiscOptions contained print_pipe cut_chars finished_title
  232. \ finished_text term_name exec
  233. \ nextgroup=etermString skipwhite
  234. syn keyword etermMiscOptions contained save_lines min_anchor_size
  235. \ border_width line_space
  236. syn region etermMiscContext fold transparent matchgroup=etermContext
  237. \ start='^\s*begin\s\+misc\>'
  238. \ end='^\s*end\>'
  239. \ contains=@etermGeneral,etermMiscOptions
  240. syn keyword etermEScreenOptions contained url nextgroup=etermURL skipwhite
  241. syn match etermURL contained display
  242. \ '\<\%(screen\|twin\)://\%([^@:/]\+\%(@[^:/]\+\%(:[^/]\+\)\=\)\=\)\=/\S\+'
  243. syn keyword etermEScreenOptions contained firewall
  244. syn keyword etermEScreenOptions contained delay nextgroup=etermNumber
  245. \ skipwhite
  246. syn keyword etermEScreenOptions contained bbar_font nextgroup=etermFont
  247. \ skipwhite
  248. syn keyword etermEScreenOptions contained bbar_dock nextgroup=etermDockOption
  249. \ skipwhite
  250. syn region etermEScreenContext fold transparent matchgroup=etermContext
  251. \ start='^\s*begin\s\+escreen\>'
  252. \ end='^\s*end\>'
  253. \ contains=@etermGeneral,etermEScreenOptions
  254. if exists("eterm_minlines")
  255. let b:eterm_minlines = eterm_minlines
  256. else
  257. let b:eterm_minlines = 50
  258. endif
  259. exec "syn sync minlines=" . b:eterm_minlines
  260. hi def link etermTodo Todo
  261. hi def link etermComment Comment
  262. hi def link etermMagic PreProc
  263. hi def link etermNumber Number
  264. hi def link etermString String
  265. hi def link etermBoolean Boolean
  266. hi def link etermPreProc PreProc
  267. hi def link etermFunctions Function
  268. hi def link etermKeyMod Constant
  269. hi def link etermOption Keyword
  270. hi def link etermColorOptions etermOption
  271. hi def link etermColor String
  272. hi def link etermVideoType Type
  273. hi def link etermColorType Type
  274. hi def link etermColorNumber Number
  275. hi def link etermColorSpec etermColor
  276. hi def link etermContext Keyword
  277. hi def link etermAttrOptions etermOption
  278. hi def link etermGeometry String
  279. hi def link etermScrollbarType Type
  280. hi def link etermFontType Type
  281. hi def link etermIClassOptions etermOption
  282. hi def link etermImageOptions etermOption
  283. hi def link etermImageTypes Type
  284. hi def link etermImageModes Type
  285. hi def link etermImageModesAllow Keyword
  286. hi def link etermImageModesR Type
  287. hi def link etermImageState Keyword
  288. hi def link etermImageColorFG etermColor
  289. hi def link etermImageColorBG etermColor
  290. hi def link etermImageGeom String
  291. hi def link etermImageCmod etermOption
  292. hi def link etermImageBrightness Number
  293. hi def link etermImageContrast Number
  294. hi def link etermImageGamma Number
  295. hi def link etermMenuItemOptions etermOption
  296. hi def link etermMenuItemAction Keyword
  297. hi def link etermMenuOptions etermOption
  298. hi def link etermBind Keyword
  299. hi def link etermBindMods Identifier
  300. hi def link etermBindTo Keyword
  301. hi def link etermBindType Type
  302. hi def link etermBindParam String
  303. hi def link etermButtonOptions etermOption
  304. hi def link etermDockOption etermOption
  305. hi def link etermButtonText String
  306. hi def link etermButtonIcon String
  307. hi def link etermButtonIconFile String
  308. hi def link etermButtonAction Keyword
  309. hi def link etermMultiOptions etermOption
  310. hi def link etermEncoding Identifier
  311. hi def link etermXimOptions etermOption
  312. hi def link etermInputMethod Identifier
  313. hi def link etermPreeditType Type
  314. hi def link etermTogOptions etermOption
  315. hi def link etermKeyboardOptions etermOption
  316. hi def link etermKeysym Constant
  317. hi def link etermMiscOptions etermOption
  318. hi def link etermEScreenOptions etermOption
  319. hi def link etermURL Identifier
  320. let b:current_syntax = "eterm"
  321. let &cpo = s:cpo_save
  322. unlet s:cpo_save