1" stata.vim -- Vim syntax file for Stata do, ado, and class files. 2" Language: Stata and/or Mata 3" Maintainer: Jeff Pitblado <[email protected]> 4" Last Change: 17apr2006 5" Version: 1.1.2 6" Location: http://www.stata.com/users/jpitblado/files/vimfiles/syntax/stata.vim 7 8" Log: 9" 14apr2006 renamed syntax groups st* to stata* 10" 'syntax clear' only under version control 11" check for 'b:current_syntax', removed 'did_stata_syntax_inits' 12 13if version < 600 14 syntax clear 15elseif exists("b:current_syntax") 16 finish 17endif 18 19syntax case match 20 21" comments - single line 22" note that the triple slash continuing line comment comes free 23syn region stataStarComment start=/^\s*\*/ end=/$/ contains=stataComment oneline 24syn region stataSlashComment start="\s//" end=/$/ contains=stataComment oneline 25syn region stataSlashComment start="^//" end=/$/ contains=stataComment oneline 26" comments - multiple line 27syn region stataComment start="/\*" end="\*/" contains=stataComment 28 29" global macros - simple case 30syn match stataGlobal /\$\a\w*/ 31" global macros - general case 32syn region stataGlobal start=/\${/ end=/}/ oneline contains=@stataMacroGroup 33" local macros - general case 34syn region stataLocal start=/`/ end=/'/ oneline contains=@stataMacroGroup 35 36" numeric formats 37syn match stataFormat /%-\=\d\+\.\d\+[efg]c\=/ 38" numeric hex format 39syn match stataFormat /%-\=21x/ 40" string format 41syn match stataFormat /%\(\|-\|\~\)\d\+s/ 42 43" Statements 44syn keyword stataConditional else if 45syn keyword stataRepeat foreach 46syn keyword stataRepeat forv[alues] 47syn keyword stataRepeat while 48 49" Common programming commands 50syn keyword stataCommand about 51syn keyword stataCommand adopath 52syn keyword stataCommand adoupdate 53syn keyword stataCommand assert 54syn keyword stataCommand break 55syn keyword stataCommand by 56syn keyword stataCommand cap[ture] 57syn keyword stataCommand cd 58syn keyword stataCommand chdir 59syn keyword stataCommand checksum 60syn keyword stataCommand class 61syn keyword stataCommand classutil 62syn keyword stataCommand compress 63syn keyword stataCommand conf[irm] 64syn keyword stataCommand conren 65syn keyword stataCommand continue 66syn keyword stataCommand cou[nt] 67syn keyword stataCommand cscript 68syn keyword stataCommand cscript_log 69syn keyword stataCommand #delimit 70syn keyword stataCommand d[escribe] 71syn keyword stataCommand dir 72syn keyword stataCommand discard 73syn keyword stataCommand di[splay] 74syn keyword stataCommand do 75syn keyword stataCommand doedit 76syn keyword stataCommand drop 77syn keyword stataCommand edit 78syn keyword stataCommand end 79syn keyword stataCommand erase 80syn keyword stataCommand eret[urn] 81syn keyword stataCommand err[or] 82syn keyword stataCommand e[xit] 83syn keyword stataCommand expand 84syn keyword stataCommand expandcl 85syn keyword stataCommand file 86syn keyword stataCommand findfile 87syn keyword stataCommand format 88syn keyword stataCommand g[enerate] 89syn keyword stataCommand gettoken 90syn keyword stataCommand gl[obal] 91syn keyword stataCommand help 92syn keyword stataCommand hexdump 93syn keyword stataCommand include 94syn keyword stataCommand infile 95syn keyword stataCommand infix 96syn keyword stataCommand input 97syn keyword stataCommand insheet 98syn keyword stataCommand joinby 99syn keyword stataCommand la[bel] 100syn keyword stataCommand levelsof 101syn keyword stataCommand list 102syn keyword stataCommand loc[al] 103syn keyword stataCommand log 104syn keyword stataCommand ma[cro] 105syn keyword stataCommand mark 106syn keyword stataCommand markout 107syn keyword stataCommand marksample 108syn keyword stataCommand mata 109syn keyword stataCommand matrix 110syn keyword stataCommand memory 111syn keyword stataCommand merge 112syn keyword stataCommand mkdir 113syn keyword stataCommand more 114syn keyword stataCommand net 115syn keyword stataCommand nobreak 116syn keyword stataCommand n[oisily] 117syn keyword stataCommand note[s] 118syn keyword stataCommand numlist 119syn keyword stataCommand outfile 120syn keyword stataCommand outsheet 121syn keyword stataCommand _parse 122syn keyword stataCommand pause 123syn keyword stataCommand plugin 124syn keyword stataCommand post 125syn keyword stataCommand postclose 126syn keyword stataCommand postfile 127syn keyword stataCommand preserve 128syn keyword stataCommand print 129syn keyword stataCommand printer 130syn keyword stataCommand profiler 131syn keyword stataCommand pr[ogram] 132syn keyword stataCommand q[uery] 133syn keyword stataCommand qui[etly] 134syn keyword stataCommand rcof 135syn keyword stataCommand reg[ress] 136syn keyword stataCommand rename 137syn keyword stataCommand repeat 138syn keyword stataCommand replace 139syn keyword stataCommand reshape 140syn keyword stataCommand ret[urn] 141syn keyword stataCommand _rmcoll 142syn keyword stataCommand _rmcoll 143syn keyword stataCommand _rmcollright 144syn keyword stataCommand rmdir 145syn keyword stataCommand _robust 146syn keyword stataCommand save 147syn keyword stataCommand sca[lar] 148syn keyword stataCommand search 149syn keyword stataCommand serset 150syn keyword stataCommand set 151syn keyword stataCommand shell 152syn keyword stataCommand sleep 153syn keyword stataCommand sort 154syn keyword stataCommand split 155syn keyword stataCommand sret[urn] 156syn keyword stataCommand ssc 157syn keyword stataCommand su[mmarize] 158syn keyword stataCommand syntax 159syn keyword stataCommand sysdescribe 160syn keyword stataCommand sysdir 161syn keyword stataCommand sysuse 162syn keyword stataCommand token[ize] 163syn keyword stataCommand translate 164syn keyword stataCommand type 165syn keyword stataCommand unab 166syn keyword stataCommand unabcmd 167syn keyword stataCommand update 168syn keyword stataCommand use 169syn keyword stataCommand vers[ion] 170syn keyword stataCommand view 171syn keyword stataCommand viewsource 172syn keyword stataCommand webdescribe 173syn keyword stataCommand webseek 174syn keyword stataCommand webuse 175syn keyword stataCommand which 176syn keyword stataCommand who 177syn keyword stataCommand window 178 179" Literals 180syn match stataQuote /"/ 181syn region stataEString matchgroup=Nothing start=/`"/ end=/"'/ oneline contains=@stataMacroGroup,stataQuote,stataString,stataEString 182syn region stataString matchgroup=Nothing start=/"/ end=/"/ oneline contains=@stataMacroGroup 183 184" define clusters 185syn cluster stataFuncGroup contains=@stataMacroGroup,stataFunc,stataString,stataEstring 186syn cluster stataMacroGroup contains=stataGlobal,stataLocal 187syn cluster stataParenGroup contains=stataParenError,stataBracketError,stataBraceError,stataSpecial,stataFormat 188 189" Stata functions 190" Math 191syn region stataFunc matchgroup=Function start=/\<abs(/ end=/)/ contains=@stataFuncGroup 192syn region stataFunc matchgroup=Function start=/\<acos(/ end=/)/ contains=@stataFuncGroup 193syn region stataFunc matchgroup=Function start=/\<asin(/ end=/)/ contains=@stataFuncGroup 194syn region stataFunc matchgroup=Function start=/\<atan(/ end=/)/ contains=@stataFuncGroup 195syn region stataFunc matchgroup=Function start=/\<atan2(/ end=/)/ contains=@stataFuncGroup 196syn region stataFunc matchgroup=Function start=/\<atanh(/ end=/)/ contains=@stataFuncGroup 197syn region stataFunc matchgroup=Function start=/\<ceil(/ end=/)/ contains=@stataFuncGroup 198syn region stataFunc matchgroup=Function start=/\<cloglog(/ end=/)/ contains=@stataFuncGroup 199syn region stataFunc matchgroup=Function start=/\<comb(/ end=/)/ contains=@stataFuncGroup 200syn region stataFunc matchgroup=Function start=/\<cos(/ end=/)/ contains=@stataFuncGroup 201syn region stataFunc matchgroup=Function start=/\<digamma(/ end=/)/ contains=@stataFuncGroup 202syn region stataFunc matchgroup=Function start=/\<exp(/ end=/)/ contains=@stataFuncGroup 203syn region stataFunc matchgroup=Function start=/\<floor(/ end=/)/ contains=@stataFuncGroup 204syn region stataFunc matchgroup=Function start=/\<int(/ end=/)/ contains=@stataFuncGroup 205syn region stataFunc matchgroup=Function start=/\<invcloglog(/ end=/)/ contains=@stataFuncGroup 206syn region stataFunc matchgroup=Function start=/\<invlogit(/ end=/)/ contains=@stataFuncGroup 207syn region stataFunc matchgroup=Function start=/\<ln(/ end=/)/ contains=@stataFuncGroup 208syn region stataFunc matchgroup=Function start=/\<lnfact(/ end=/)/ contains=@stataFuncGroup 209syn region stataFunc matchgroup=Function start=/\<lnfactorial(/ end=/)/ contains=@stataFuncGroup 210syn region stataFunc matchgroup=Function start=/\<lngamma(/ end=/)/ contains=@stataFuncGroup 211syn region stataFunc matchgroup=Function start=/\<log(/ end=/)/ contains=@stataFuncGroup 212syn region stataFunc matchgroup=Function start=/\<log10(/ end=/)/ contains=@stataFuncGroup 213syn region stataFunc matchgroup=Function start=/\<logit(/ end=/)/ contains=@stataFuncGroup 214syn region stataFunc matchgroup=Function start=/\<max(/ end=/)/ contains=@stataFuncGroup 215syn region stataFunc matchgroup=Function start=/\<mod(/ end=/)/ contains=@stataFuncGroup 216syn region stataFunc matchgroup=Function start=/\<reldif(/ end=/)/ contains=@stataFuncGroup 217syn region stataFunc matchgroup=Function start=/\<round(/ end=/)/ contains=@stataFuncGroup 218syn region stataFunc matchgroup=Function start=/\<sign(/ end=/)/ contains=@stataFuncGroup 219syn region stataFunc matchgroup=Function start=/\<sin(/ end=/)/ contains=@stataFuncGroup 220syn region stataFunc matchgroup=Function start=/\<sqrt(/ end=/)/ contains=@stataFuncGroup 221syn region stataFunc matchgroup=Function start=/\<sum(/ end=/)/ contains=@stataFuncGroup 222syn region stataFunc matchgroup=Function start=/\<tan(/ end=/)/ contains=@stataFuncGroup 223syn region stataFunc matchgroup=Function start=/\<tanh(/ end=/)/ contains=@stataFuncGroup 224syn region stataFunc matchgroup=Function start=/\<trigamma(/ end=/)/ contains=@stataFuncGroup 225syn region stataFunc matchgroup=Function start=/\<trunc(/ end=/)/ contains=@stataFuncGroup 226" Probability distriubtions and density functions 227syn region stataFunc matchgroup=Function start=/\<betaden(/ end=/)/ contains=@stataFuncGroup 228syn region stataFunc matchgroup=Function start=/\<Binomial(/ end=/)/ contains=@stataFuncGroup 229syn region stataFunc matchgroup=Function start=/\<binorm(/ end=/)/ contains=@stataFuncGroup 230syn region stataFunc matchgroup=Function start=/\<binormal(/ end=/)/ contains=@stataFuncGroup 231syn region stataFunc matchgroup=Function start=/\<chi2(/ end=/)/ contains=@stataFuncGroup 232syn region stataFunc matchgroup=Function start=/\<chi2tail(/ end=/)/ contains=@stataFuncGroup 233syn region stataFunc matchgroup=Function start=/\<dgammapda(/ end=/)/ contains=@stataFuncGroup 234syn region stataFunc matchgroup=Function start=/\<dgammapdada(/ end=/)/ contains=@stataFuncGroup 235syn region stataFunc matchgroup=Function start=/\<dgammapdadx(/ end=/)/ contains=@stataFuncGroup 236syn region stataFunc matchgroup=Function start=/\<dgammapdx(/ end=/)/ contains=@stataFuncGroup 237syn region stataFunc matchgroup=Function start=/\<dgammapdxdx(/ end=/)/ contains=@stataFuncGroup 238syn region stataFunc matchgroup=Function start=/\<F(/ end=/)/ contains=@stataFuncGroup 239syn region stataFunc matchgroup=Function start=/\<Fden(/ end=/)/ contains=@stataFuncGroup 240syn region stataFunc matchgroup=Function start=/\<Ftail(/ end=/)/ contains=@stataFuncGroup 241syn region stataFunc matchgroup=Function start=/\<gammaden(/ end=/)/ contains=@stataFuncGroup 242syn region stataFunc matchgroup=Function start=/\<gammap(/ end=/)/ contains=@stataFuncGroup 243syn region stataFunc matchgroup=Function start=/\<ibeta(/ end=/)/ contains=@stataFuncGroup 244syn region stataFunc matchgroup=Function start=/\<invbinomial(/ end=/)/ contains=@stataFuncGroup 245syn region stataFunc matchgroup=Function start=/\<invchi2(/ end=/)/ contains=@stataFuncGroup 246syn region stataFunc matchgroup=Function start=/\<invchi2tail(/ end=/)/ contains=@stataFuncGroup 247syn region stataFunc matchgroup=Function start=/\<invF(/ end=/)/ contains=@stataFuncGroup 248syn region stataFunc matchgroup=Function start=/\<invFtail(/ end=/)/ contains=@stataFuncGroup 249syn region stataFunc matchgroup=Function start=/\<invgammap(/ end=/)/ contains=@stataFuncGroup 250syn region stataFunc matchgroup=Function start=/\<invibeta(/ end=/)/ contains=@stataFuncGroup 251syn region stataFunc matchgroup=Function start=/\<invnchi2(/ end=/)/ contains=@stataFuncGroup 252syn region stataFunc matchgroup=Function start=/\<invFtail(/ end=/)/ contains=@stataFuncGroup 253syn region stataFunc matchgroup=Function start=/\<invibeta(/ end=/)/ contains=@stataFuncGroup 254syn region stataFunc matchgroup=Function start=/\<invnorm(/ end=/)/ contains=@stataFuncGroup 255syn region stataFunc matchgroup=Function start=/\<invnormal(/ end=/)/ contains=@stataFuncGroup 256syn region stataFunc matchgroup=Function start=/\<invttail(/ end=/)/ contains=@stataFuncGroup 257syn region stataFunc matchgroup=Function start=/\<lnnormal(/ end=/)/ contains=@stataFuncGroup 258syn region stataFunc matchgroup=Function start=/\<lnnormalden(/ end=/)/ contains=@stataFuncGroup 259syn region stataFunc matchgroup=Function start=/\<nbetaden(/ end=/)/ contains=@stataFuncGroup 260syn region stataFunc matchgroup=Function start=/\<nchi2(/ end=/)/ contains=@stataFuncGroup 261syn region stataFunc matchgroup=Function start=/\<nFden(/ end=/)/ contains=@stataFuncGroup 262syn region stataFunc matchgroup=Function start=/\<nFtail(/ end=/)/ contains=@stataFuncGroup 263syn region stataFunc matchgroup=Function start=/\<nibeta(/ end=/)/ contains=@stataFuncGroup 264syn region stataFunc matchgroup=Function start=/\<norm(/ end=/)/ contains=@stataFuncGroup 265syn region stataFunc matchgroup=Function start=/\<normal(/ end=/)/ contains=@stataFuncGroup 266syn region stataFunc matchgroup=Function start=/\<normalden(/ end=/)/ contains=@stataFuncGroup 267syn region stataFunc matchgroup=Function start=/\<normden(/ end=/)/ contains=@stataFuncGroup 268syn region stataFunc matchgroup=Function start=/\<npnchi2(/ end=/)/ contains=@stataFuncGroup 269syn region stataFunc matchgroup=Function start=/\<tden(/ end=/)/ contains=@stataFuncGroup 270syn region stataFunc matchgroup=Function start=/\<ttail(/ end=/)/ contains=@stataFuncGroup 271" Random numbers 272syn region stataFunc matchgroup=Function start=/\<uniform(/ end=/)/ contains=@stataFuncGroup 273" String 274syn region stataFunc matchgroup=Function start=/\<abbrev(/ end=/)/ contains=@stataFuncGroup 275syn region stataFunc matchgroup=Function start=/\<hchar(/ end=/)/ contains=@stataFuncGroup 276syn region stataFunc matchgroup=Function start=/\<indexnot(/ end=/)/ contains=@stataFuncGroup 277syn region stataFunc matchgroup=Function start=/\<itrim(/ end=/)/ contains=@stataFuncGroup 278syn region stataFunc matchgroup=Function start=/\<length(/ end=/)/ contains=@stataFuncGroup 279syn region stataFunc matchgroup=Function start=/\<lower(/ end=/)/ contains=@stataFuncGroup 280syn region stataFunc matchgroup=Function start=/\<ltrim(/ end=/)/ contains=@stataFuncGroup 281syn region stataFunc matchgroup=Function start=/\<plural(/ end=/)/ contains=@stataFuncGroup 282syn region stataFunc matchgroup=Function start=/\<proper(/ end=/)/ contains=@stataFuncGroup 283syn region stataFunc matchgroup=Function start=/\<real(/ end=/)/ contains=@stataFuncGroup 284syn region stataFunc matchgroup=Function start=/\<regexm(/ end=/)/ contains=@stataFuncGroup 285syn region stataFunc matchgroup=Function start=/\<regexr(/ end=/)/ contains=@stataFuncGroup 286syn region stataFunc matchgroup=Function start=/\<regexs(/ end=/)/ contains=@stataFuncGroup 287syn region stataFunc matchgroup=Function start=/\<reverse(/ end=/)/ contains=@stataFuncGroup 288syn region stataFunc matchgroup=Function start=/\<rtrim(/ end=/)/ contains=@stataFuncGroup 289syn region stataFunc matchgroup=Function start=/\<string(/ end=/)/ contains=@stataFuncGroup 290syn region stataFunc matchgroup=Function start=/\<strlen(/ end=/)/ contains=@stataFuncGroup 291syn region stataFunc matchgroup=Function start=/\<strmatch(/ end=/)/ contains=@stataFuncGroup 292syn region stataFunc matchgroup=Function start=/\<strpos(/ end=/)/ contains=@stataFuncGroup 293syn region stataFunc matchgroup=Function start=/\<subinstr(/ end=/)/ contains=@stataFuncGroup 294syn region stataFunc matchgroup=Function start=/\<subinword(/ end=/)/ contains=@stataFuncGroup 295syn region stataFunc matchgroup=Function start=/\<substr(/ end=/)/ contains=@stataFuncGroup 296syn region stataFunc matchgroup=Function start=/\<trim(/ end=/)/ contains=@stataFuncGroup 297syn region stataFunc matchgroup=Function start=/\<upper(/ end=/)/ contains=@stataFuncGroup 298syn region stataFunc matchgroup=Function start=/\<word(/ end=/)/ contains=@stataFuncGroup 299syn region stataFunc matchgroup=Function start=/\<wordcount(/ end=/)/ contains=@stataFuncGroup 300" Programming 301syn region stataFunc matchgroup=Function start=/\<autocode(/ end=/)/ contains=@stataFuncGroup 302syn region stataFunc matchgroup=Function start=/\<byteorder(/ end=/)/ contains=@stataFuncGroup 303syn region stataFunc matchgroup=Function start=/\<c(/ end=/)/ contains=@stataFuncGroup 304syn region stataFunc matchgroup=Function start=/\<_caller(/ end=/)/ contains=@stataFuncGroup 305syn region stataFunc matchgroup=Function start=/\<chop(/ end=/)/ contains=@stataFuncGroup 306syn region stataFunc matchgroup=Function start=/\<clip(/ end=/)/ contains=@stataFuncGroup 307syn region stataFunc matchgroup=Function start=/\<cond(/ end=/)/ contains=@stataFuncGroup 308syn region stataFunc matchgroup=Function start=/\<e(/ end=/)/ contains=@stataFuncGroup 309syn region stataFunc matchgroup=Function start=/\<epsdouble(/ end=/)/ contains=@stataFuncGroup 310syn region stataFunc matchgroup=Function start=/\<epsfloat(/ end=/)/ contains=@stataFuncGroup 311syn region stataFunc matchgroup=Function start=/\<float(/ end=/)/ contains=@stataFuncGroup 312syn region stataFunc matchgroup=Function start=/\<has_eprop(/ end=/)/ contains=@stataFuncGroup 313syn region stataFunc matchgroup=Function start=/\<has_eprop(/ end=/)/ contains=@stataFuncGroup 314syn region stataFunc matchgroup=Function start=/\<inlist(/ end=/)/ contains=@stataFuncGroup 315syn region stataFunc matchgroup=Function start=/\<inrange(/ end=/)/ contains=@stataFuncGroup 316syn region stataFunc matchgroup=Function start=/\<irecode(/ end=/)/ contains=@stataFuncGroup 317syn region stataFunc matchgroup=Function start=/\<matrix(/ end=/)/ contains=@stataFuncGroup 318syn region stataFunc matchgroup=Function start=/\<maxbyte(/ end=/)/ contains=@stataFuncGroup 319syn region stataFunc matchgroup=Function start=/\<maxdouble(/ end=/)/ contains=@stataFuncGroup 320syn region stataFunc matchgroup=Function start=/\<maxfloat(/ end=/)/ contains=@stataFuncGroup 321syn region stataFunc matchgroup=Function start=/\<maxint(/ end=/)/ contains=@stataFuncGroup 322syn region stataFunc matchgroup=Function start=/\<maxlong(/ end=/)/ contains=@stataFuncGroup 323syn region stataFunc matchgroup=Function start=/\<mi(/ end=/)/ contains=@stataFuncGroup 324syn region stataFunc matchgroup=Function start=/\<minbyte(/ end=/)/ contains=@stataFuncGroup 325syn region stataFunc matchgroup=Function start=/\<mindouble(/ end=/)/ contains=@stataFuncGroup 326syn region stataFunc matchgroup=Function start=/\<minfloat(/ end=/)/ contains=@stataFuncGroup 327syn region stataFunc matchgroup=Function start=/\<minint(/ end=/)/ contains=@stataFuncGroup 328syn region stataFunc matchgroup=Function start=/\<minlong(/ end=/)/ contains=@stataFuncGroup 329syn region stataFunc matchgroup=Function start=/\<missing(/ end=/)/ contains=@stataFuncGroup 330syn region stataFunc matchgroup=Function start=/\<r(/ end=/)/ contains=@stataFuncGroup 331syn region stataFunc matchgroup=Function start=/\<recode(/ end=/)/ contains=@stataFuncGroup 332syn region stataFunc matchgroup=Function start=/\<replay(/ end=/)/ contains=@stataFuncGroup 333syn region stataFunc matchgroup=Function start=/\<return(/ end=/)/ contains=@stataFuncGroup 334syn region stataFunc matchgroup=Function start=/\<s(/ end=/)/ contains=@stataFuncGroup 335syn region stataFunc matchgroup=Function start=/\<scalar(/ end=/)/ contains=@stataFuncGroup 336" Date 337syn region stataFunc matchgroup=Function start=/\<d(/ end=/)/ contains=@stataFuncGroup 338syn region stataFunc matchgroup=Function start=/\<date(/ end=/)/ contains=@stataFuncGroup 339syn region stataFunc matchgroup=Function start=/\<day(/ end=/)/ contains=@stataFuncGroup 340syn region stataFunc matchgroup=Function start=/\<dow(/ end=/)/ contains=@stataFuncGroup 341syn region stataFunc matchgroup=Function start=/\<doy(/ end=/)/ contains=@stataFuncGroup 342syn region stataFunc matchgroup=Function start=/\<halfyear(/ end=/)/ contains=@stataFuncGroup 343syn region stataFunc matchgroup=Function start=/\<mdy(/ end=/)/ contains=@stataFuncGroup 344syn region stataFunc matchgroup=Function start=/\<month(/ end=/)/ contains=@stataFuncGroup 345syn region stataFunc matchgroup=Function start=/\<quarter(/ end=/)/ contains=@stataFuncGroup 346syn region stataFunc matchgroup=Function start=/\<week(/ end=/)/ contains=@stataFuncGroup 347syn region stataFunc matchgroup=Function start=/\<year(/ end=/)/ contains=@stataFuncGroup 348" Time-series 349syn region stataFunc matchgroup=Function start=/\<daily(/ end=/)/ contains=@stataFuncGroup 350syn region stataFunc matchgroup=Function start=/\<halfyearly(/ end=/)/ contains=@stataFuncGroup 351syn region stataFunc matchgroup=Function start=/\<monthly(/ end=/)/ contains=@stataFuncGroup 352syn region stataFunc matchgroup=Function start=/\<quarterly(/ end=/)/ contains=@stataFuncGroup 353syn region stataFunc matchgroup=Function start=/\<weekly(/ end=/)/ contains=@stataFuncGroup 354syn region stataFunc matchgroup=Function start=/\<yearly(/ end=/)/ contains=@stataFuncGroup 355" 356syn region stataFunc matchgroup=Function start=/\<yh(/ end=/)/ contains=@stataFuncGroup 357syn region stataFunc matchgroup=Function start=/\<ym(/ end=/)/ contains=@stataFuncGroup 358syn region stataFunc matchgroup=Function start=/\<yq(/ end=/)/ contains=@stataFuncGroup 359syn region stataFunc matchgroup=Function start=/\<yw(/ end=/)/ contains=@stataFuncGroup 360" 361syn region stataFunc matchgroup=Function start=/\<d(/ end=/)/ contains=@stataFuncGroup 362syn region stataFunc matchgroup=Function start=/\<h(/ end=/)/ contains=@stataFuncGroup 363syn region stataFunc matchgroup=Function start=/\<m(/ end=/)/ contains=@stataFuncGroup 364syn region stataFunc matchgroup=Function start=/\<q(/ end=/)/ contains=@stataFuncGroup 365syn region stataFunc matchgroup=Function start=/\<w(/ end=/)/ contains=@stataFuncGroup 366syn region stataFunc matchgroup=Function start=/\<y(/ end=/)/ contains=@stataFuncGroup 367" 368syn region stataFunc matchgroup=Function start=/\<dofd(/ end=/)/ contains=@stataFuncGroup 369syn region stataFunc matchgroup=Function start=/\<dofh(/ end=/)/ contains=@stataFuncGroup 370syn region stataFunc matchgroup=Function start=/\<dofm(/ end=/)/ contains=@stataFuncGroup 371syn region stataFunc matchgroup=Function start=/\<dofq(/ end=/)/ contains=@stataFuncGroup 372syn region stataFunc matchgroup=Function start=/\<dofw(/ end=/)/ contains=@stataFuncGroup 373syn region stataFunc matchgroup=Function start=/\<dofy(/ end=/)/ contains=@stataFuncGroup 374syn region stataFunc matchgroup=Function start=/\<hofd(/ end=/)/ contains=@stataFuncGroup 375syn region stataFunc matchgroup=Function start=/\<mofd(/ end=/)/ contains=@stataFuncGroup 376syn region stataFunc matchgroup=Function start=/\<qofd(/ end=/)/ contains=@stataFuncGroup 377syn region stataFunc matchgroup=Function start=/\<wofd(/ end=/)/ contains=@stataFuncGroup 378syn region stataFunc matchgroup=Function start=/\<yofd(/ end=/)/ contains=@stataFuncGroup 379" 380syn region stataFunc matchgroup=Function start=/\<tin(/ end=/)/ contains=@stataFuncGroup 381syn region stataFunc matchgroup=Function start=/\<twithin(/ end=/)/ contains=@stataFuncGroup 382" Matrix 383syn region stataFunc matchgroup=Function start=/\<colnumb(/ end=/)/ contains=@stataFuncGroup 384syn region stataFunc matchgroup=Function start=/\<colsof(/ end=/)/ contains=@stataFuncGroup 385syn region stataFunc matchgroup=Function start=/\<det(/ end=/)/ contains=@stataFuncGroup 386syn region stataFunc matchgroup=Function start=/\<diag0cnt(/ end=/)/ contains=@stataFuncGroup 387syn region stataFunc matchgroup=Function start=/\<el(/ end=/)/ contains=@stataFuncGroup 388syn region stataFunc matchgroup=Function start=/\<issymmetric(/ end=/)/ contains=@stataFuncGroup 389syn region stataFunc matchgroup=Function start=/\<matmissing(/ end=/)/ contains=@stataFuncGroup 390syn region stataFunc matchgroup=Function start=/\<mreldif(/ end=/)/ contains=@stataFuncGroup 391syn region stataFunc matchgroup=Function start=/\<rownumb(/ end=/)/ contains=@stataFuncGroup 392syn region stataFunc matchgroup=Function start=/\<rowsof(/ end=/)/ contains=@stataFuncGroup 393syn region stataFunc matchgroup=Function start=/\<trace(/ end=/)/ contains=@stataFuncGroup 394" 395syn region stataFunc matchgroup=Function start=/\<cholsky(/ end=/)/ contains=@stataFuncGroup 396syn region stataFunc matchgroup=Function start=/\<corr(/ end=/)/ contains=@stataFuncGroup 397syn region stataFunc matchgroup=Function start=/\<diag(/ end=/)/ contains=@stataFuncGroup 398syn region stataFunc matchgroup=Function start=/\<get(/ end=/)/ contains=@stataFuncGroup 399syn region stataFunc matchgroup=Function start=/\<hadamard(/ end=/)/ contains=@stataFuncGroup 400syn region stataFunc matchgroup=Function start=/\<I(/ end=/)/ contains=@stataFuncGroup 401syn region stataFunc matchgroup=Function start=/\<inv(/ end=/)/ contains=@stataFuncGroup 402syn region stataFunc matchgroup=Function start=/\<invsym(/ end=/)/ contains=@stataFuncGroup 403syn region stataFunc matchgroup=Function start=/\<J(/ end=/)/ contains=@stataFuncGroup 404syn region stataFunc matchgroup=Function start=/\<matuniform(/ end=/)/ contains=@stataFuncGroup 405syn region stataFunc matchgroup=Function start=/\<nullmat(/ end=/)/ contains=@stataFuncGroup 406syn region stataFunc matchgroup=Function start=/\<sweep(/ end=/)/ contains=@stataFuncGroup 407syn region stataFunc matchgroup=Function start=/\<vec(/ end=/)/ contains=@stataFuncGroup 408syn region stataFunc matchgroup=Function start=/\<vecdiag(/ end=/)/ contains=@stataFuncGroup 409 410" Errors to catch 411" taken from $VIMRUNTIME/syntax/c.vim 412" catch errors caused by wrong parenthesis, braces and brackets 413syn region stataParen transparent start=/(/ end=/)/ contains=ALLBUT,@stataParenGroup,stataErrInBracket,stataErrInBrace 414syn region stataBracket transparent start=/\[/ end=/]/ contains=ALLBUT,@stataParenGroup,stataErrInParen,stataErrInBrace 415syn region stataBrace transparent start=/{/ end=/}/ contains=ALLBUT,@stataParenGroup,stataErrInParen,stataErrInBracket 416syn match stataParenError /[\])}]/ 417syn match stataBracketError /]/ 418syn match stataBraceError /}/ 419syn match stataErrInParen contained /[\]{}]/ 420syn match stataErrInBracket contained /[){}]/ 421syn match stataErrInBrace contained /[)\]]/ 422 423" assign highlight groups 424hi def link stataBraceError stataError 425hi def link stataBracketError stataError 426hi def link stataErrInBrace stataError 427hi def link stataErrInBracket stataError 428hi def link stataErrInParen stataError 429hi def link stataEString stataString 430hi def link stataFormat stataSpecial 431hi def link stataGlobal stataMacro 432hi def link stataLocal stataMacro 433hi def link stataParenError stataError 434hi def link stataSlashComment stataComment 435hi def link stataStarComment stataComment 436 437hi def link stataCommand Define 438hi def link stataComment Comment 439hi def link stataConditional Conditional 440hi def link stataError Error 441hi def link stataFunc None 442hi def link stataMacro Define 443hi def link stataRepeat Repeat 444hi def link stataSpecial SpecialChar 445hi def link stataString String 446 447let b:current_syntax = "stata" 448 449" vim: ts=8 450