diff options
Diffstat (limited to 'runtime/syntax/stata.vim')
-rw-r--r-- | runtime/syntax/stata.vim | 449 |
1 files changed, 449 insertions, 0 deletions
diff --git a/runtime/syntax/stata.vim b/runtime/syntax/stata.vim new file mode 100644 index 000000000..49955cc3b --- /dev/null +++ b/runtime/syntax/stata.vim @@ -0,0 +1,449 @@ +" 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: 14apr2006 +" Version: 1.1.1 +" Location: http://www.stata.com/users/jpitblado/files/vimfiles/syntax/stata.vim + +" Log: +" 14apr2006 renamed syntax groups st* to stata* +" 'syntax clear' only under version control +" check for 'b:current_syntax', removed 'did_stat_syntax_inits' + +if version < 600 + syntax clear +elseif 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 +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 |