diff options
Diffstat (limited to 'runtime/syntax/stata.vim')
-rw-r--r-- | runtime/syntax/stata.vim | 450 |
1 files changed, 450 insertions, 0 deletions
diff --git a/runtime/syntax/stata.vim b/runtime/syntax/stata.vim new file mode 100644 index 0000000..29f5052 --- /dev/null +++ b/runtime/syntax/stata.vim @@ -0,0 +1,450 @@ +" stata.vim -- Vim syntax file for Stata do, ado, and class files. +" Language: Stata and/or Mata +" Maintainer: Jeff Pitblado <jpitblado@stata.com> +" Last Change: 26apr2006 +" Version: 1.1.4 + +" Log: +" 14apr2006 renamed syntax groups st* to stata* +" 'syntax clear' only under version control +" check for 'b:current_syntax', removed 'did_stata_syntax_inits' +" 17apr2006 fixed start expression for stataFunc +" 26apr2006 fixed brace confusion in stataErrInParen and stataErrInBracket +" fixed paren/bracket confusion in stataFuncGroup + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syntax case match + +" comments - single line +" note that the triple slash continuing line comment comes free +syn region stataStarComment start=/^\s*\*/ end=/$/ contains=stataComment oneline +syn region stataSlashComment start="\s//" end=/$/ contains=stataComment oneline +syn region stataSlashComment start="^//" end=/$/ contains=stataComment oneline +" comments - multiple line +syn region stataComment start="/\*" end="\*/" contains=stataComment + +" global macros - simple case +syn match stataGlobal /\$\a\w*/ +" global macros - general case +syn region stataGlobal start=/\${/ end=/}/ oneline contains=@stataMacroGroup +" local macros - general case +syn region stataLocal start=/`/ end=/'/ oneline contains=@stataMacroGroup + +" numeric formats +syn match stataFormat /%-\=\d\+\.\d\+[efg]c\=/ +" numeric hex format +syn match stataFormat /%-\=21x/ +" string format +syn match stataFormat /%\(\|-\|\~\)\d\+s/ + +" Statements +syn keyword stataConditional else if +syn keyword stataRepeat foreach +syn keyword stataRepeat forv[alues] +syn keyword stataRepeat while + +" Common programming commands +syn keyword stataCommand about +syn keyword stataCommand adopath +syn keyword stataCommand adoupdate +syn keyword stataCommand assert +syn keyword stataCommand break +syn keyword stataCommand by +syn keyword stataCommand cap[ture] +syn keyword stataCommand cd +syn keyword stataCommand chdir +syn keyword stataCommand checksum +syn keyword stataCommand class +syn keyword stataCommand classutil +syn keyword stataCommand compress +syn keyword stataCommand conf[irm] +syn keyword stataCommand conren +syn keyword stataCommand continue +syn keyword stataCommand cou[nt] +syn keyword stataCommand cscript +syn keyword stataCommand cscript_log +syn keyword stataCommand #delimit +syn keyword stataCommand d[escribe] +syn keyword stataCommand dir +syn keyword stataCommand discard +syn keyword stataCommand di[splay] +syn keyword stataCommand do +syn keyword stataCommand doedit +syn keyword stataCommand drop +syn keyword stataCommand edit +syn keyword stataCommand end +syn keyword stataCommand erase +syn keyword stataCommand eret[urn] +syn keyword stataCommand err[or] +syn keyword stataCommand e[xit] +syn keyword stataCommand expand +syn keyword stataCommand expandcl +syn keyword stataCommand file +syn keyword stataCommand findfile +syn keyword stataCommand format +syn keyword stataCommand g[enerate] +syn keyword stataCommand gettoken +syn keyword stataCommand gl[obal] +syn keyword stataCommand help +syn keyword stataCommand hexdump +syn keyword stataCommand include +syn keyword stataCommand infile +syn keyword stataCommand infix +syn keyword stataCommand input +syn keyword stataCommand insheet +syn keyword stataCommand joinby +syn keyword stataCommand la[bel] +syn keyword stataCommand levelsof +syn keyword stataCommand list +syn keyword stataCommand loc[al] +syn keyword stataCommand log +syn keyword stataCommand ma[cro] +syn keyword stataCommand mark +syn keyword stataCommand markout +syn keyword stataCommand marksample +syn keyword stataCommand mata +syn keyword stataCommand matrix +syn keyword stataCommand memory +syn keyword stataCommand merge +syn keyword stataCommand mkdir +syn keyword stataCommand more +syn keyword stataCommand net +syn keyword stataCommand nobreak +syn keyword stataCommand n[oisily] +syn keyword stataCommand note[s] +syn keyword stataCommand numlist +syn keyword stataCommand outfile +syn keyword stataCommand outsheet +syn keyword stataCommand _parse +syn keyword stataCommand pause +syn keyword stataCommand plugin +syn keyword stataCommand post +syn keyword stataCommand postclose +syn keyword stataCommand postfile +syn keyword stataCommand preserve +syn keyword stataCommand print +syn keyword stataCommand printer +syn keyword stataCommand profiler +syn keyword stataCommand pr[ogram] +syn keyword stataCommand q[uery] +syn keyword stataCommand qui[etly] +syn keyword stataCommand rcof +syn keyword stataCommand reg[ress] +syn keyword stataCommand rename +syn keyword stataCommand repeat +syn keyword stataCommand replace +syn keyword stataCommand reshape +syn keyword stataCommand ret[urn] +syn keyword stataCommand _rmcoll +syn keyword stataCommand _rmcoll +syn keyword stataCommand _rmcollright +syn keyword stataCommand rmdir +syn keyword stataCommand _robust +syn keyword stataCommand save +syn keyword stataCommand sca[lar] +syn keyword stataCommand search +syn keyword stataCommand serset +syn keyword stataCommand set +syn keyword stataCommand shell +syn keyword stataCommand sleep +syn keyword stataCommand sort +syn keyword stataCommand split +syn keyword stataCommand sret[urn] +syn keyword stataCommand ssc +syn keyword stataCommand su[mmarize] +syn keyword stataCommand syntax +syn keyword stataCommand sysdescribe +syn keyword stataCommand sysdir +syn keyword stataCommand sysuse +syn keyword stataCommand token[ize] +syn keyword stataCommand translate +syn keyword stataCommand type +syn keyword stataCommand unab +syn keyword stataCommand unabcmd +syn keyword stataCommand update +syn keyword stataCommand use +syn keyword stataCommand vers[ion] +syn keyword stataCommand view +syn keyword stataCommand viewsource +syn keyword stataCommand webdescribe +syn keyword stataCommand webseek +syn keyword stataCommand webuse +syn keyword stataCommand which +syn keyword stataCommand who +syn keyword stataCommand window + +" Literals +syn match stataQuote /"/ +syn region stataEString matchgroup=Nothing start=/`"/ end=/"'/ oneline contains=@stataMacroGroup,stataQuote,stataString,stataEString +syn region stataString matchgroup=Nothing start=/"/ end=/"/ oneline contains=@stataMacroGroup + +" define clusters +syn cluster stataFuncGroup contains=@stataMacroGroup,stataFunc,stataString,stataEstring,stataParen,stataBracket +syn cluster stataMacroGroup contains=stataGlobal,stataLocal +syn cluster stataParenGroup contains=stataParenError,stataBracketError,stataBraceError,stataSpecial,stataFormat + +" Stata functions +" Math +syn region stataFunc matchgroup=Function start=/\<abs(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<acos(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<asin(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<atan(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<atan2(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<atanh(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<ceil(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<cloglog(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<comb(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<cos(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<digamma(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<exp(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<floor(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<int(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<invcloglog(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<invlogit(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<ln(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<lnfact(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<lnfactorial(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<lngamma(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<log(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<log10(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<logit(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<max(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<mod(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<reldif(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<round(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<sign(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<sin(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<sqrt(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<sum(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<tan(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<tanh(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<trigamma(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<trunc(/ end=/)/ contains=@stataFuncGroup +" Probability distriubtions and density functions +syn region stataFunc matchgroup=Function start=/\<betaden(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<Binomial(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<binorm(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<binormal(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<chi2(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<chi2tail(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<dgammapda(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<dgammapdada(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<dgammapdadx(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<dgammapdx(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<dgammapdxdx(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<F(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<Fden(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<Ftail(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<gammaden(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<gammap(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<ibeta(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<invbinomial(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<invchi2(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<invchi2tail(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<invF(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<invFtail(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<invgammap(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<invibeta(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<invnchi2(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<invFtail(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<invibeta(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<invnorm(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<invnormal(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<invttail(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<lnnormal(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<lnnormalden(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<nbetaden(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<nchi2(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<nFden(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<nFtail(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<nibeta(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<norm(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<normal(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<normalden(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<normden(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<npnchi2(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<tden(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<ttail(/ end=/)/ contains=@stataFuncGroup +" Random numbers +syn region stataFunc matchgroup=Function start=/\<uniform(/ end=/)/ contains=@stataFuncGroup +" String +syn region stataFunc matchgroup=Function start=/\<abbrev(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<hchar(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<indexnot(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<itrim(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<length(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<lower(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<ltrim(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<plural(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<proper(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<real(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<regexm(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<regexr(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<regexs(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<reverse(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<rtrim(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<string(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<strlen(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<strmatch(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<strpos(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<subinstr(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<subinword(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<substr(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<trim(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<upper(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<word(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<wordcount(/ end=/)/ contains=@stataFuncGroup +" Programming +syn region stataFunc matchgroup=Function start=/\<autocode(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<byteorder(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<c(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<_caller(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<chop(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<clip(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<cond(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<e(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<epsdouble(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<epsfloat(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<float(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<has_eprop(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<has_eprop(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<inlist(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<inrange(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<irecode(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<matrix(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<maxbyte(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<maxdouble(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<maxfloat(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<maxint(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<maxlong(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<mi(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<minbyte(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<mindouble(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<minfloat(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<minint(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<minlong(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<missing(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<r(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<recode(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<replay(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<return(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<s(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<scalar(/ end=/)/ contains=@stataFuncGroup +" Date +syn region stataFunc matchgroup=Function start=/\<d(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<date(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<day(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<dow(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<doy(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<halfyear(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<mdy(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<month(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<quarter(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<week(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<year(/ end=/)/ contains=@stataFuncGroup +" Time-series +syn region stataFunc matchgroup=Function start=/\<daily(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<halfyearly(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<monthly(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<quarterly(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<weekly(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<yearly(/ end=/)/ contains=@stataFuncGroup +" +syn region stataFunc matchgroup=Function start=/\<yh(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<ym(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<yq(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<yw(/ end=/)/ contains=@stataFuncGroup +" +syn region stataFunc matchgroup=Function start=/\<d(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<h(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<m(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<q(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<w(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<y(/ end=/)/ contains=@stataFuncGroup +" +syn region stataFunc matchgroup=Function start=/\<dofd(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<dofh(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<dofm(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<dofq(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<dofw(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<dofy(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<hofd(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<mofd(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<qofd(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<wofd(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<yofd(/ end=/)/ contains=@stataFuncGroup +" +syn region stataFunc matchgroup=Function start=/\<tin(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<twithin(/ end=/)/ contains=@stataFuncGroup +" Matrix +syn region stataFunc matchgroup=Function start=/\<colnumb(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<colsof(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<det(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<diag0cnt(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<el(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<issymmetric(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<matmissing(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<mreldif(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<rownumb(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<rowsof(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<trace(/ end=/)/ contains=@stataFuncGroup +" +syn region stataFunc matchgroup=Function start=/\<cholsky(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<corr(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<diag(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<get(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<hadamard(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<I(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<inv(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<invsym(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<J(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<matuniform(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<nullmat(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<sweep(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<vec(/ end=/)/ contains=@stataFuncGroup +syn region stataFunc matchgroup=Function start=/\<vecdiag(/ end=/)/ contains=@stataFuncGroup + +" Errors to catch +" taken from $VIMRUNTIME/syntax/c.vim +" catch errors caused by wrong parenthesis, braces and brackets +syn region stataParen transparent start=/(/ end=/)/ contains=ALLBUT,@stataParenGroup,stataErrInBracket,stataErrInBrace +syn region stataBracket transparent start=/\[/ end=/]/ contains=ALLBUT,@stataParenGroup,stataErrInParen,stataErrInBrace +syn region stataBrace transparent start=/{/ end=/}/ contains=ALLBUT,@stataParenGroup,stataErrInParen,stataErrInBracket +syn match stataParenError /[\])}]/ +syn match stataBracketError /]/ +syn match stataBraceError /}/ +syn match stataErrInParen contained /[\]}]/ +syn match stataErrInBracket contained /[)}]/ +syn match stataErrInBrace contained /[)\]]/ + +" assign highlight groups +hi def link stataBraceError stataError +hi def link stataBracketError stataError +hi def link stataErrInBrace stataError +hi def link stataErrInBracket stataError +hi def link stataErrInParen stataError +hi def link stataEString stataString +hi def link stataFormat stataSpecial +hi def link stataGlobal stataMacro +hi def link stataLocal stataMacro +hi def link stataParenError stataError +hi def link stataSlashComment stataComment +hi def link stataStarComment stataComment + +hi def link stataCommand Define +hi def link stataComment Comment +hi def link stataConditional Conditional +hi def link stataError Error +hi def link stataFunc None +hi def link stataMacro Define +hi def link stataRepeat Repeat +hi def link stataSpecial SpecialChar +hi def link stataString String + +let b:current_syntax = "stata" + +" vim: ts=8 |