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