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