smcl.vim 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308
  1. " smcl.vim -- Vim syntax file for smcl files.
  2. " Language: SMCL -- Stata Markup and Control Language
  3. " Maintainer: Jeff Pitblado <jpitblado@stata.com>
  4. " Last Change: 26apr2006
  5. " Version: 1.1.2
  6. " Log:
  7. " 20mar2003 updated the match definition for cmdab
  8. " 14apr2006 'syntax clear' only under version control
  9. " check for 'b:current_syntax', removed 'did_smcl_syntax_inits'
  10. " 26apr2006 changed 'stata_smcl' to 'smcl'
  11. " quit when a syntax file was already loaded
  12. if exists("b:current_syntax")
  13. finish
  14. endif
  15. syntax case match
  16. syn keyword smclCCLword current_date contained
  17. syn keyword smclCCLword current_time contained
  18. syn keyword smclCCLword rmsg_time contained
  19. syn keyword smclCCLword stata_version contained
  20. syn keyword smclCCLword version contained
  21. syn keyword smclCCLword born_date contained
  22. syn keyword smclCCLword flavor contained
  23. syn keyword smclCCLword SE contained
  24. syn keyword smclCCLword mode contained
  25. syn keyword smclCCLword console contained
  26. syn keyword smclCCLword os contained
  27. syn keyword smclCCLword osdtl contained
  28. syn keyword smclCCLword machine_type contained
  29. syn keyword smclCCLword byteorder contained
  30. syn keyword smclCCLword sysdir_stata contained
  31. syn keyword smclCCLword sysdir_updates contained
  32. syn keyword smclCCLword sysdir_base contained
  33. syn keyword smclCCLword sysdir_site contained
  34. syn keyword smclCCLword sysdir_plus contained
  35. syn keyword smclCCLword sysdir_personal contained
  36. syn keyword smclCCLword sysdir_oldplace contained
  37. syn keyword smclCCLword adopath contained
  38. syn keyword smclCCLword pwd contained
  39. syn keyword smclCCLword dirsep contained
  40. syn keyword smclCCLword max_N_theory contained
  41. syn keyword smclCCLword max_N_current contained
  42. syn keyword smclCCLword max_k_theory contained
  43. syn keyword smclCCLword max_k_current contained
  44. syn keyword smclCCLword max_width_theory contained
  45. syn keyword smclCCLword max_width_current contained
  46. syn keyword smclCCLword max_matsize contained
  47. syn keyword smclCCLword min_matsize contained
  48. syn keyword smclCCLword max_macrolen contained
  49. syn keyword smclCCLword macrolen contained
  50. syn keyword smclCCLword max_cmdlen contained
  51. syn keyword smclCCLword cmdlen contained
  52. syn keyword smclCCLword namelen contained
  53. syn keyword smclCCLword mindouble contained
  54. syn keyword smclCCLword maxdouble contained
  55. syn keyword smclCCLword epsdouble contained
  56. syn keyword smclCCLword minfloat contained
  57. syn keyword smclCCLword maxfloat contained
  58. syn keyword smclCCLword epsfloat contained
  59. syn keyword smclCCLword minlong contained
  60. syn keyword smclCCLword maxlong contained
  61. syn keyword smclCCLword minint contained
  62. syn keyword smclCCLword maxint contained
  63. syn keyword smclCCLword minbyte contained
  64. syn keyword smclCCLword maxbyte contained
  65. syn keyword smclCCLword maxstrvarlen contained
  66. syn keyword smclCCLword memory contained
  67. syn keyword smclCCLword maxvar contained
  68. syn keyword smclCCLword matsize contained
  69. syn keyword smclCCLword N contained
  70. syn keyword smclCCLword k contained
  71. syn keyword smclCCLword width contained
  72. syn keyword smclCCLword changed contained
  73. syn keyword smclCCLword filename contained
  74. syn keyword smclCCLword filedate contained
  75. syn keyword smclCCLword more contained
  76. syn keyword smclCCLword rmsg contained
  77. syn keyword smclCCLword dp contained
  78. syn keyword smclCCLword linesize contained
  79. syn keyword smclCCLword pagesize contained
  80. syn keyword smclCCLword logtype contained
  81. syn keyword smclCCLword linegap contained
  82. syn keyword smclCCLword scrollbufsize contained
  83. syn keyword smclCCLword varlabelpos contained
  84. syn keyword smclCCLword reventries contained
  85. syn keyword smclCCLword graphics contained
  86. syn keyword smclCCLword scheme contained
  87. syn keyword smclCCLword printcolor contained
  88. syn keyword smclCCLword adosize contained
  89. syn keyword smclCCLword maxdb contained
  90. syn keyword smclCCLword virtual contained
  91. syn keyword smclCCLword checksum contained
  92. syn keyword smclCCLword timeout1 contained
  93. syn keyword smclCCLword timeout2 contained
  94. syn keyword smclCCLword httpproxy contained
  95. syn keyword smclCCLword h_current contained
  96. syn keyword smclCCLword max_matsize contained
  97. syn keyword smclCCLword min_matsize contained
  98. syn keyword smclCCLword max_macrolen contained
  99. syn keyword smclCCLword macrolen contained
  100. syn keyword smclCCLword max_cmdlen contained
  101. syn keyword smclCCLword cmdlen contained
  102. syn keyword smclCCLword namelen contained
  103. syn keyword smclCCLword mindouble contained
  104. syn keyword smclCCLword maxdouble contained
  105. syn keyword smclCCLword epsdouble contained
  106. syn keyword smclCCLword minfloat contained
  107. syn keyword smclCCLword maxfloat contained
  108. syn keyword smclCCLword epsfloat contained
  109. syn keyword smclCCLword minlong contained
  110. syn keyword smclCCLword maxlong contained
  111. syn keyword smclCCLword minint contained
  112. syn keyword smclCCLword maxint contained
  113. syn keyword smclCCLword minbyte contained
  114. syn keyword smclCCLword maxbyte contained
  115. syn keyword smclCCLword maxstrvarlen contained
  116. syn keyword smclCCLword memory contained
  117. syn keyword smclCCLword maxvar contained
  118. syn keyword smclCCLword matsize contained
  119. syn keyword smclCCLword N contained
  120. syn keyword smclCCLword k contained
  121. syn keyword smclCCLword width contained
  122. syn keyword smclCCLword changed contained
  123. syn keyword smclCCLword filename contained
  124. syn keyword smclCCLword filedate contained
  125. syn keyword smclCCLword more contained
  126. syn keyword smclCCLword rmsg contained
  127. syn keyword smclCCLword dp contained
  128. syn keyword smclCCLword linesize contained
  129. syn keyword smclCCLword pagesize contained
  130. syn keyword smclCCLword logtype contained
  131. syn keyword smclCCLword linegap contained
  132. syn keyword smclCCLword scrollbufsize contained
  133. syn keyword smclCCLword varlabelpos contained
  134. syn keyword smclCCLword reventries contained
  135. syn keyword smclCCLword graphics contained
  136. syn keyword smclCCLword scheme contained
  137. syn keyword smclCCLword printcolor contained
  138. syn keyword smclCCLword adosize contained
  139. syn keyword smclCCLword maxdb contained
  140. syn keyword smclCCLword virtual contained
  141. syn keyword smclCCLword checksum contained
  142. syn keyword smclCCLword timeout1 contained
  143. syn keyword smclCCLword timeout2 contained
  144. syn keyword smclCCLword httpproxy contained
  145. syn keyword smclCCLword httpproxyhost contained
  146. syn keyword smclCCLword httpproxyport contained
  147. syn keyword smclCCLword httpproxyauth contained
  148. syn keyword smclCCLword httpproxyuser contained
  149. syn keyword smclCCLword httpproxypw contained
  150. syn keyword smclCCLword trace contained
  151. syn keyword smclCCLword tracedepth contained
  152. syn keyword smclCCLword tracesep contained
  153. syn keyword smclCCLword traceindent contained
  154. syn keyword smclCCLword traceexapnd contained
  155. syn keyword smclCCLword tracenumber contained
  156. syn keyword smclCCLword type contained
  157. syn keyword smclCCLword level contained
  158. syn keyword smclCCLword seed contained
  159. syn keyword smclCCLword searchdefault contained
  160. syn keyword smclCCLword pi contained
  161. syn keyword smclCCLword rc contained
  162. " Directive for the contant and current-value class
  163. syn region smclCCL start=/{ccl / end=/}/ oneline contains=smclCCLword
  164. " The order of the following syntax definitions is roughly that of the on-line
  165. " documentation for smcl in Stata, from within Stata see help smcl.
  166. " Format directives for line and paragraph modes
  167. syn match smclFormat /{smcl}/
  168. syn match smclFormat /{sf\(\|:[^}]\+\)}/
  169. syn match smclFormat /{it\(\|:[^}]\+\)}/
  170. syn match smclFormat /{bf\(\|:[^}]\+\)}/
  171. syn match smclFormat /{inp\(\|:[^}]\+\)}/
  172. syn match smclFormat /{input\(\|:[^}]\+\)}/
  173. syn match smclFormat /{err\(\|:[^}]\+\)}/
  174. syn match smclFormat /{error\(\|:[^}]\+\)}/
  175. syn match smclFormat /{res\(\|:[^}]\+\)}/
  176. syn match smclFormat /{result\(\|:[^}]\+\)}/
  177. syn match smclFormat /{txt\(\|:[^}]\+\)}/
  178. syn match smclFormat /{text\(\|:[^}]\+\)}/
  179. syn match smclFormat /{com\(\|:[^}]\+\)}/
  180. syn match smclFormat /{cmd\(\|:[^}]\+\)}/
  181. syn match smclFormat /{cmdab:[^:}]\+:[^:}()]*\(\|:\|:(\|:()\)}/
  182. syn match smclFormat /{hi\(\|:[^}]\+\)}/
  183. syn match smclFormat /{hilite\(\|:[^}]\+\)}/
  184. syn match smclFormat /{ul \(on\|off\)}/
  185. syn match smclFormat /{ul:[^}]\+}/
  186. syn match smclFormat /{hline\(\| \d\+\| -\d\+\|:[^}]\+\)}/
  187. syn match smclFormat /{dup \d\+:[^}]\+}/
  188. syn match smclFormat /{c [^}]\+}/
  189. syn match smclFormat /{char [^}]\+}/
  190. syn match smclFormat /{reset}/
  191. " Formatting directives for line mode
  192. syn match smclFormat /{title:[^}]\+}/
  193. syn match smclFormat /{center:[^}]\+}/
  194. syn match smclFormat /{centre:[^}]\+}/
  195. syn match smclFormat /{center \d\+:[^}]\+}/
  196. syn match smclFormat /{centre \d\+:[^}]\+}/
  197. syn match smclFormat /{right:[^}]\+}/
  198. syn match smclFormat /{lalign \d\+:[^}]\+}/
  199. syn match smclFormat /{ralign \d\+:[^}]\+}/
  200. syn match smclFormat /{\.\.\.}/
  201. syn match smclFormat /{col \d\+}/
  202. syn match smclFormat /{space \d\+}/
  203. syn match smclFormat /{tab}/
  204. " Formatting directives for paragraph mode
  205. syn match smclFormat /{bind:[^}]\+}/
  206. syn match smclFormat /{break}/
  207. syn match smclFormat /{p}/
  208. syn match smclFormat /{p \d\+}/
  209. syn match smclFormat /{p \d\+ \d\+}/
  210. syn match smclFormat /{p \d\+ \d\+ \d\+}/
  211. syn match smclFormat /{pstd}/
  212. syn match smclFormat /{psee}/
  213. syn match smclFormat /{phang\(\|2\|3\)}/
  214. syn match smclFormat /{pmore\(\|2\|3\)}/
  215. syn match smclFormat /{pin\(\|2\|3\)}/
  216. syn match smclFormat /{p_end}/
  217. syn match smclFormat /{opt \w\+\(\|:\w\+\)\(\|([^)}]*)\)}/
  218. syn match smclFormat /{opth \w*\(\|:\w\+\)(\w*)}/
  219. syn match smclFormat /{opth "\w\+\((\w\+:[^)}]\+)\)"}/
  220. syn match smclFormat /{opth \w\+:\w\+(\w\+:[^)}]\+)}/
  221. syn match smclFormat /{dlgtab\s*\(\|\d\+\|\d\+\s\+\d\+\):[^}]\+}/
  222. syn match smclFormat /{p2colset\s\+\d\+\s\+\d\+\s\+\d\+\s\+\d\+}/
  223. syn match smclFormat /{p2col\s\+:[^{}]*}.*{p_end}/
  224. syn match smclFormat /{p2col\s\+:{[^{}]*}}.*{p_end}/
  225. syn match smclFormat /{p2coldent\s*:[^{}]*}.*{p_end}/
  226. syn match smclFormat /{p2coldent\s*:{[^{}]*}}.*{p_end}/
  227. syn match smclFormat /{p2line\s*\(\|\d\+\s\+\d\+\)}/
  228. syn match smclFormat /{p2colreset}/
  229. syn match smclFormat /{synoptset\s\+\d\+\s\+\w\+}/
  230. syn match smclFormat /{synopt\s*:[^{}]*}.*{p_end}/
  231. syn match smclFormat /{synopt\s*:{[^{}]*}}.*{p_end}/
  232. syn match smclFormat /{syntab\s*:[^{}]*}/
  233. syn match smclFormat /{synopthdr}/
  234. syn match smclFormat /{synoptline}/
  235. " Link directive for line and paragraph modes
  236. syn match smclLink /{help [^}]\+}/
  237. syn match smclLink /{helpb [^}]\+}/
  238. syn match smclLink /{help_d:[^}]\+}/
  239. syn match smclLink /{search [^}]\+}/
  240. syn match smclLink /{search_d:[^}]\+}/
  241. syn match smclLink /{browse [^}]\+}/
  242. syn match smclLink /{view [^}]\+}/
  243. syn match smclLink /{view_d:[^}]\+}/
  244. syn match smclLink /{news:[^}]\+}/
  245. syn match smclLink /{net [^}]\+}/
  246. syn match smclLink /{net_d:[^}]\+}/
  247. syn match smclLink /{netfrom_d:[^}]\+}/
  248. syn match smclLink /{ado [^}]\+}/
  249. syn match smclLink /{ado_d:[^}]\+}/
  250. syn match smclLink /{update [^}]\+}/
  251. syn match smclLink /{update_d:[^}]\+}/
  252. syn match smclLink /{dialog [^}]\+}/
  253. syn match smclLink /{back:[^}]\+}/
  254. syn match smclLink /{clearmore:[^}]\+}/
  255. syn match smclLink /{stata [^}]\+}/
  256. syn match smclLink /{newvar\(\|:[^}]\+\)}/
  257. syn match smclLink /{var\(\|:[^}]\+\)}/
  258. syn match smclLink /{varname\(\|:[^}]\+\)}/
  259. syn match smclLink /{vars\(\|:[^}]\+\)}/
  260. syn match smclLink /{varlist\(\|:[^}]\+\)}/
  261. syn match smclLink /{depvar\(\|:[^}]\+\)}/
  262. syn match smclLink /{depvars\(\|:[^}]\+\)}/
  263. syn match smclLink /{depvarlist\(\|:[^}]\+\)}/
  264. syn match smclLink /{indepvars\(\|:[^}]\+\)}/
  265. syn match smclLink /{dtype}/
  266. syn match smclLink /{ifin}/
  267. syn match smclLink /{weight}/
  268. " Comment
  269. syn region smclComment start=/{\*/ end=/}/ oneline
  270. " Strings
  271. syn region smclString matchgroup=Nothing start=/"/ end=/"/ oneline
  272. syn region smclEString matchgroup=Nothing start=/`"/ end=/"'/ oneline contains=smclEString
  273. " assign highlight groups
  274. hi def link smclEString smclString
  275. hi def link smclCCLword Statement
  276. hi def link smclCCL Type
  277. hi def link smclFormat Statement
  278. hi def link smclLink Underlined
  279. hi def link smclComment Comment
  280. hi def link smclString String
  281. let b:current_syntax = "smcl"
  282. " vim: ts=8