import sql from './sql.mjs'; const lang = Object.freeze({ "displayName": "Stata", "fileTypes": ["do", "ado", "mata"], "foldingStartMarker": "\\{\\s*$", "foldingStopMarker": "^\\s*\\}", "name": "stata", "patterns": [{ "include": "#ascii-regex-functions" }, { "include": "#unicode-regex-functions" }, { "include": "#constants" }, { "include": "#functions" }, { "include": "#comments" }, { "include": "#subscripts" }, { "include": "#operators" }, { "include": "#macro-local" }, { "include": "#macro-global" }, { "include": "#string-compound" }, { "include": "#string-regular" }, { "include": "#builtin_variables" }, { "include": "#macro-commands" }, { "comment": "keywords that delimit flow conditionals", "match": "\\b(if|else if|else)\\b", "name": "keyword.control.conditional.stata" }, { "captures": { "1": { "name": "storage.type.scalar.stata" } }, "match": "^\\s*(sca(lar|la|l)?(\\s+de(fine|fin|fi|f)?)?)\\s+(?!(drop|dir?|l(ist|is|i)?)\\s+)" }, { "begin": "\\b(mer(ge|g)?)\\s+(1|m|n)(:)(1|m|n)", "beginCaptures": { "1": { "name": "keyword.control.flow.stata" }, "3": { "patterns": [{ "include": "#constants" }, { "match": "m|n", "name": "" }] }, "4": { "name": "punctuation.separator.key-value" }, "5": { "patterns": [{ "include": "#constants" }, { "match": "m|n", "name": "" }] } }, "end": "using", "patterns": [{ "include": "#builtin_variables" }, { "include": "#macro-local" }, { "include": "#macro-global" }, { "include": "#comments" }] }, { "captures": { "1": { "name": "keyword.control.flow.stata" }, "2": { "patterns": [{ "include": "#macro-local-identifiers" }, { "include": "#macro-local" }, { "include": "#macro-global" }] }, "3": { "name": "keyword.control.flow.stata" } }, "match": "\\b(foreach)\\s+((?!in|of).+)\\s+(in|of var(list|lis|li|l)?|of new(list|lis|li|l)?|of num(list|lis|li|l)?)\\b" }, { "begin": "\\b(foreach)\\s+((?!in|of).+)\\s+(of loc(al|a)?|of glo(bal|ba|b)?)\\b\\s*", "beginCaptures": { "1": { "name": "keyword.control.flow.stata" }, "2": { "patterns": [{ "include": "#macro-local-identifiers" }, { "include": "#macro-local" }, { "include": "#macro-global" }] }, "3": { "name": "keyword.control.flow.stata" } }, "end": "(?=\\s*\\{)", "patterns": [{ "include": "#macro-local-identifiers" }, { "include": "#macro-local" }, { "include": "#macro-global" }] }, { "begin": "\\b(forvalues|forvalue|forvalu|forval|forva|forv)\\s*", "beginCaptures": { "1": { "name": "keyword.control.flow.stata" } }, "end": "\\s*(=)\\s*([^\\{]+)\\s*|(?=\\n)", "endCaptures": { "1": { "name": "keyword.operator.assignment.stata" }, "2": { "patterns": [{ "include": "#constants" }, { "include": "#operators" }, { "include": "#macro-local" }, { "include": "#macro-global" }] } }, "patterns": [{ "include": "#macro-local-identifiers" }, { "include": "#macro-local" }, { "include": "#macro-global" }] }, { "comment": "keywords that delimit loops", "match": "\\b(while|continue)\\b", "name": "keyword.control.flow.stata" }, { "captures": { "1": { "name": "keyword.other.stata" } }, "comment": "keywords that haven't fit into other groups (yet).", "match": "\\b(as|ass|asse|asser|assert)\\b" }, { "comment": "prefixes that require a colon", "match": "\\b(by(sort|sor|so|s)?|statsby|rolling|bootstrap|jackknife|permute|simulate|svy|mi est(imate|imat|ima|im|i)?|nestreg|stepwise|xi|fp|mfp|vers(ion|io|i)?)\\b", "name": "storage.type.function.stata" }, { "comment": "prefixes that don't need a colon", "match": "\\b(qui(etly|etl|et|e)?|n(oisily|oisil|oisi|ois|oi|o)?|cap(ture|tur|tu|t)?)\\b:?", "name": "keyword.control.flow.stata" }, { "captures": { "1": { "name": "storage.type.function.stata" }, "3": { "name": "storage.type.function.stata" }, "7": { "name": "entity.name.function.stata" } }, "match": "\\s*(pr(ogram|ogra|ogr|og|o)?)\\s+((di(r)?|drop|l(ist|is|i)?)\\s+)([\\w&&[^0-9]]\\w{0,31})" }, { "begin": "^\\s*(pr(ogram|ogra|ogr|og|o)?)\\s+(de(fine|fin|fi|f)?\\s+)?", "beginCaptures": { "1": { "name": "storage.type.function.stata" }, "3": { "name": "storage.type.function.stata" } }, "end": "(?=,|\\n|/)", "patterns": [{ "include": "#macro-local" }, { "include": "#macro-global" }, { "match": "[\\w&&[^0-9]]\\w{0,31}", "name": "entity.name.function.stata" }, { "match": "[^A-za-z_0-9,\\n/ ]+", "name": "invalid.illegal.name.stata" }] }, { "captures": { "1": "keyword.functions.data.stata.test" }, "match": "\\b(form(at|a)?)\\s*([\\w&&[^0-9]]\\w{0,31})*\\s*(%)(-)?(0)?([0-9]+)(.)([0-9]+)(e|f|g)(c)?" }, { "include": "#braces-with-error" }, { "begin": "(?=syntax)", "end": "\\n", "patterns": [{ "begin": "syntax", "beginCaptures": { "0": { "name": "keyword.functions.program.stata" } }, "comment": "color before the comma", "end": "(?=,|\\n)", "patterns": [{ "begin": "///", "end": "\\n", "name": "comment.block.stata" }, { "match": "\\[", "name": "punctuation.definition.parameters.begin.stata" }, { "match": "\\]", "name": "punctuation.definition.parameters.end.stata" }, { "match": "\\b(varlist|varname|newvarlist|newvarname|namelist|name|anything)\\b", "name": "entity.name.type.class.stata" }, { "captures": { "2": { "name": "entity.name.type.class.stata" }, "3": { "name": "keyword.operator.arithmetic.stata" } }, "match": "\\b((if|in|using|fweight|aweight|pweight|iweight))\\b(/)?" }, { "captures": { "1": { "name": "keyword.operator.arithmetic.stata" }, "2": { "name": "entity.name.type.class.stata" } }, "match": "(/)?(exp)" }, { "include": "#constants" }, { "include": "#operators" }, { "include": "#string-compound" }, { "include": "#string-regular" }, { "include": "#macro-local" }, { "include": "#macro-global" }, { "include": "#builtin_variables" }] }, { "begin": ",", "beginCaptures": { "0": { "name": "punctuation.definition.variable.begin.stata" } }, "comment": "things to color after the comma", "end": "(?=\\n)", "patterns": [{ "begin": "///", "end": "\\n", "name": "comment.block.stata" }, { "begin": "([^\\s\\[\\]]+)(\\()", "beginCaptures": { "1": { "comment": "these are the names that become macros", "patterns": [{ "include": "#macro-local-identifiers" }, { "include": "#macro-local" }, { "include": "#macro-global" }] }, "2": { "name": "keyword.operator.parentheses.stata" } }, "comment": "color options with parentheses", "end": "\\)", "endCaptures": { "0": { "name": "keyword.operator.parentheses.stata" } }, "patterns": [{ "captures": { "0": { "name": "support.type.stata" } }, "comment": "the first word is often a type", "match": "\\b(integer|intege|integ|inte|int|real|string|strin|stri|str)\\b" }, { "include": "#constants" }, { "include": "#operators" }, { "include": "#string-compound" }, { "include": "#string-regular" }, { "include": "#macro-local" }, { "include": "#macro-global" }, { "include": "#builtin_variables" }] }, { "include": "#macro-local-identifiers" }, { "include": "#constants" }, { "include": "#operators" }, { "include": "#string-compound" }, { "include": "#string-regular" }, { "include": "#macro-local" }, { "include": "#macro-global" }, { "include": "#builtin_variables" }] }] }, { "captures": { "1": { "name": "keyword.functions.data.stata" } }, "comment": "one-word commands", "match": "\\b(sa(v|ve)|saveold|destring|tostring|u(se|s)?|note(s)?|form(at|a)?)\\b" }, { "comment": "programming commands", "match": "\\b(exit|end)\\b", "name": "keyword.functions.data.stata" }, { "captures": { "1": { "name": "keyword.functions.data.stata" }, "2": { "patterns": [{ "include": "#macro-local" }] }, "4": { "name": "invalid.illegal.name.stata" }, "5": { "name": "keyword.operator.assignment.stata" } }, "match": "\\b(replace)\\s+([^=]+)\\s*((==)|(=))" }, { "captures": { "1": { "name": "keyword.functions.data.stata" }, "3": { "name": "support.type.stata" }, "5": { "patterns": [{ "include": "#reserved-names" }, { "include": "#macro-local" }] }, "7": { "name": "invalid.illegal.name.stata" }, "8": { "name": "keyword.operator.assignment.stata" } }, "match": "\\b(g(enerate|enerat|enera|ener|ene|en|e)?|egen)\\s+((byte|int|long|float|double|str[1-9]?[0-9]?[0-9]?[0-9]?|strL)\\s+)?([^=\\s]+)\\s*((==)|(=))" }, { "captures": { "1": { "name": "keyword.functions.data.stata" }, "3": { "name": "support.type.stata" } }, "match": "\\b(set ty(pe|p)?)\\s+((byte|int|long|float|double|str[1-9]?[0-9]?[0-9]?[0-9]?|strL)?\\s+)\\b" }, { "captures": { "1": { "name": "keyword.functions.data.stata" }, "3": { "name": "keyword.functions.data.stata" }, "6": { "name": "punctuation.definition.string.begin.stata" }, "7": { "patterns": [{ "include": "#string-compound" }, { "include": "#macro-local-escaped" }, { "include": "#macro-global-escaped" }, { "include": "#macro-local" }, { "include": "#macro-global" }, { "match": "[^`\\$]{81,}", "name": "invalid.illegal.name.stata" }, { "match": ".", "name": "string.quoted.double.compound.stata" }] }, "8": { "name": "punctuation.definition.string.begin.stata" } }, "match": '\\b(la(bel|be|b)?)\\s+(var(iable|iabl|iab|ia|i)?)\\s+([\\w&&[^0-9]]\\w{0,31})\\s+(`")(.+)("\')' }, { "captures": { "1": { "name": "keyword.functions.data.stata" }, "3": { "name": "keyword.functions.data.stata" }, "6": { "name": "punctuation.definition.string.begin.stata" }, "7": { "patterns": [{ "include": "#macro-local-escaped" }, { "include": "#macro-global-escaped" }, { "include": "#macro-local" }, { "include": "#macro-global" }, { "match": "[^`\\$]{81,}", "name": "invalid.illegal.name.stata" }, { "match": ".", "name": "string.quoted.double.stata" }] }, "8": { "name": "punctuation.definition.string.begin.stata" } }, "match": '\\b(la(bel|be|b)?)\\s+(var(iable|iabl|iab|ia|i)?)\\s+([\\w&&[^0-9]]\\w{0,31})\\s+(")(.+)(")' }, { "captures": { "1": { "name": "keyword.functions.data.stata" }, "3": { "name": "keyword.functions.data.stata" } }, "match": "\\b(la(bel|be|b)?)\\s+(da(ta|t)?|var(iable|iabl|iab|ia|i)?|de(f|fi|fin|fine)?|val(ues|ue|u)?|di(r)?|l(ist|is|i)?|copy|drop|save|lang(uage|uag|ua|u)?)\\b" }, { "begin": "\\b(drop|keep)\\b(?!\\s+(if|in)\\b)", "beginCaptures": { "1": { "name": "keyword.functions.data.stata" } }, "end": "\\n", "patterns": [{ "match": "\\b(if|in)\\b", "name": "invalid.illegal.name.stata" }, { "include": "#comments" }, { "include": "#macro-local" }, { "include": "#macro-global" }, { "include": "#operators" }] }, { "captures": { "1": { "name": "keyword.functions.data.stata" }, "2": { "name": "keyword.functions.data.stata" } }, "match": "\\b(drop|keep)\\s+(if|in)\\b" }, { "begin": "^\\s*mata:?\\s*$", "comment": "won't match single-line Mata statements", "end": "^\\s*end\\s*$\\n?", "name": "meta.embedded.block.mata", "patterns": [{ "match": "(?\\=|\\<\\=|\\<|\\>|\\!\\=|\\#|\\+|\\-|\\*|\\^|\\/", "name": "keyword.operator.mata" }, { "include": "$self" }] }, { "begin": "\\b(odbc)\\b", "beginCaptures": { "0": { "name": "keyword.control.flow.stata" } }, "end": "\\n", "patterns": [{ "begin": "///", "end": "\\n", "name": "comment.block.stata" }, { "begin": '(exec?)(\\(")', "beginCaptures": { "1": { "name": "support.function.builtin.stata" }, "2": { "name": "punctuation.definition.parameters.begin.stata" } }, "end": '"\\)', "endCaptures": { "0": { "name": "punctuation.definition.parameters.end.stata" } }, "patterns": [{ "include": "source.sql" }] }, { "include": "$self" }] }, { "include": "#commands-other" }], "repository": { "ascii-regex-character-class": { "patterns": [{ "match": "\\\\[\\*\\+\\?\\-\\.\\^\\$\\|\\[\\]\\(\\)\\\\]", "name": "constant.character.escape.backslash.stata" }, { "match": "\\.", "name": "constant.character.character-class.stata" }, { "match": "\\\\.", "name": "illegal.invalid.character-class.stata" }, { "begin": "(\\[)(\\^)?", "beginCaptures": { "1": { "name": "punctuation.definition.character-class.stata" }, "2": { "name": "keyword.operator.negation.stata" } }, "end": "(\\])", "endCaptures": { "1": { "name": "punctuation.definition.character-class.stata" } }, "name": "constant.other.character-class.set.stata", "patterns": [{ "include": "#ascii-regex-character-class" }, { "captures": { "2": { "name": "constant.character.escape.backslash.stata" }, "4": { "name": "constant.character.escape.backslash.stata" } }, "match": "((\\\\.)|.)\\-((\\\\.)|[^\\]])", "name": "constant.other.character-class.range.stata" }] }] }, "ascii-regex-functions": { "patterns": [{ "captures": { "1": { "name": "support.function.builtin.stata" }, "2": { "name": "punctuation.definition.parameters.begin.stata" }, "3": { "patterns": [{ "include": "#string-compound" }, { "include": "#string-regular" }, { "include": "#macro-local" }, { "include": "#macro-global" }, { "include": "#functions" }, { "match": "[\\w&&[^0-9]]\\w{0,31}", "name": "variable.parameter.function.stata" }, { "include": "#comments-triple-slash" }] }, "4": { "name": "punctuation.definition.variable.begin.stata" }, "5": { "name": "punctuation.definition.string.begin.stata" }, "6": { "patterns": [{ "include": "#ascii-regex-internals" }] }, "7": { "name": "punctuation.definition.string.end.stata" }, "8": { "name": "invalid.illegal.punctuation.stata" }, "9": { "name": "punctuation.definition.parameters.end.stata" } }, "comment": 'color regexm with regular quotes i.e. " ', "match": `\\b(regexm)(\\()([^,]+)(,)\\s*(")([^"]+)("(')?)\\s*(\\))` }, { "captures": { "1": { "name": "support.function.builtin.stata" }, "2": { "name": "punctuation.definition.parameters.begin.stata" }, "3": { "patterns": [{ "include": "#string-compound" }, { "include": "#string-regular" }, { "include": "#macro-local" }, { "include": "#macro-global" }, { "include": "#functions" }, { "match": "[\\w&&[^0-9]]\\w{0,31}", "name": "variable.parameter.function.stata" }, { "include": "#comments-triple-slash" }] }, "4": { "name": "punctuation.definition.variable.begin.stata" }, "5": { "name": "punctuation.definition.string.begin.stata" }, "6": { "patterns": [{ "include": "#ascii-regex-internals" }] }, "7": { "name": "punctuation.definition.string.end.stata" }, "8": { "name": "punctuation.definition.parameters.end.stata" } }, "comment": "color regexm with compound quotes", "match": '\\b(regexm)(\\()([^,]+)(,)\\s*(`")([^"]+)("\')\\s*(\\))' }, { "captures": { "1": { "name": "support.function.builtin.stata" }, "2": { "name": "punctuation.definition.parameters.begin.stata" }, "3": { "patterns": [{ "include": "#string-compound" }, { "include": "#string-regular" }, { "include": "#macro-local" }, { "include": "#macro-global" }, { "include": "#functions" }, { "match": "[\\w&&[^0-9]]\\w{0,31}", "name": "variable.parameter.function.stata" }, { "include": "#comments" }] }, "4": { "name": "punctuation.definition.variable.begin.stata" }, "5": { "name": "punctuation.definition.string.begin.stata" }, "6": { "patterns": [{ "include": "#ascii-regex-internals" }] }, "7": { "name": "punctuation.definition.string.end.stata" }, "8": { "name": "invalid.illegal.punctuation.stata" }, "9": { "patterns": [{ "match": ",", "name": "punctuation.definition.variable.begin.stata" }, { "include": "#string-compound" }, { "include": "#string-regular" }, { "include": "#macro-local" }, { "include": "#macro-global" }, { "include": "#functions" }, { "match": "[\\w&&[^0-9]]\\w{0,31}", "name": "variable.parameter.function.stata" }, { "include": "#comments-triple-slash" }] }, "10": { "name": "punctuation.definition.parameters.end.stata" } }, "comment": 'color regexr with regular quotes i.e. " ', "match": `\\b(regexr)(\\()([^,]+)(,)\\s*(")([^"]+)("(')?)\\s*([^\\)]*)(\\))` }, { "captures": { "1": { "name": "support.function.builtin.stata" }, "2": { "name": "punctuation.definition.parameters.begin.stata" }, "3": { "patterns": [{ "include": "#string-compound" }, { "include": "#string-regular" }, { "include": "#macro-local" }, { "include": "#macro-global" }, { "include": "#functions" }, { "match": "[\\w&&[^0-9]]\\w{0,31}", "name": "variable.parameter.function.stata" }, { "include": "#comments" }] }, "4": { "name": "punctuation.definition.variable.begin.stata" }, "5": { "name": "punctuation.definition.string.begin.stata" }, "6": { "patterns": [{ "include": "#ascii-regex-internals" }] }, "7": { "name": "punctuation.definition.string.end.stata" }, "8": { "patterns": [{ "match": ",", "name": "punctuation.definition.variable.begin.stata" }, { "include": "#string-compound" }, { "include": "#string-regular" }, { "include": "#macro-local" }, { "include": "#macro-global" }, { "include": "#functions" }, { "match": "[\\w&&[^0-9]]\\w{0,31}", "name": "variable.parameter.function.stata" }, { "include": "#comments-triple-slash" }] }, "9": { "name": "punctuation.definition.parameters.end.stata" } }, "comment": 'color regexr with compound quotes i.e. `"text"\' ', "match": '\\b(regexr)(\\()([^,]+)(,)\\s*(`")([^"]+)("\')\\s*([^\\)]*)(\\))' }] }, "ascii-regex-internals": { "patterns": [{ "match": "\\^", "name": "keyword.control.anchor.stata" }, { "comment": "matched when not a global, but must be ascii", "match": "\\$(?![a-zA-Z_\\{])", "name": "keyword.control.anchor.stata" }, { "match": "[\\?\\+\\*]", "name": "keyword.control.quantifier.stata" }, { "match": "\\|", "name": "keyword.control.or.stata" }, { "begin": "(\\()(?=\\?|\\*|\\+)", "beginCaptures": { "1": { "name": "keyword.operator.group.stata" } }, "contentName": "invalid.illegal.regexm.stata", "end": "\\)", "endCaptures": { "0": { "name": "keyword.operator.group.stata" } } }, { "begin": "(\\()", "beginCaptures": { "1": { "name": "keyword.operator.group.stata" } }, "end": "(\\))", "endCaptures": { "1": { "name": "keyword.operator.group.stata" } }, "patterns": [{ "include": "#ascii-regex-internals" }] }, { "include": "#ascii-regex-character-class" }, { "include": "#macro-local" }, { "include": "#macro-global" }, { "comment": "NOTE: Error if I have .+ No idea why but it works fine it seems with just .", "match": ".", "name": "string.quoted.stata" }] }, "braces-with-error": { "patterns": [{ "begin": "(\\{)\\s*([^\\n]*)(?=\\n)", "beginCaptures": { "1": { "name": "keyword.control.block.begin.stata" }, "2": { "patterns": [{ "include": "#comments" }, { "match": "[^\\n]+", "name": "illegal.invalid.name.stata" }] } }, "comment": "correct with nothing else on the line but whitespace; before and after; before; after; correct", "end": '^\\s*(\\})\\s*$|^\\s*([^\\*"\\}]+)\\s+(\\})\\s*([^\\*"\\}/\\n]+)|^\\s*([^"\\*\\}]+)\\s+(\\})|\\s*(\\})\\s*([^"\\*\\}/\\n]+)|(\\})$', "endCaptures": { "1": { "name": "keyword.control.block.end.stata" }, "2": { "name": "invalid.illegal.name.stata" }, "3": { "name": "keyword.control.block.end.stata" }, "4": { "name": "invalid.illegal.name.stata" }, "5": { "name": "invalid.illegal.name.stata" }, "6": { "name": "keyword.control.block.end.stata" }, "7": { "name": "keyword.control.block.end.stata" }, "8": { "name": "invalid.illegal.name.stata" }, "9": { "name": "keyword.control.block.end.stata" } }, "patterns": [{ "include": "$self" }] }] }, "braces-without-error": { "patterns": [{ "begin": "\\{", "beginCaptures": { "0": { "name": "keyword.control.block.begin.stata" } }, "end": "\\}", "endCaptures": { "0": { "name": "keyword.control.block.end.stata" } } }] }, "builtin_types": { "patterns": [{ "match": "\\b(byte|int|long|float|double|str[1-9]?[0-9]?[0-9]?[0-9]?|strL)\\b", "name": "support.type.stata" }] }, "builtin_variables": { "patterns": [{ "match": "\\b(_b|_coef|_cons|_n|_N|_rc|_se)\\b", "name": "variable.object.stata" }] }, "commands-other": { "patterns": [{ "comment": "Add on commands", "match": "\\b(reghdfe|ivreghdfe|ivreg2|outreg|gcollapse|gcontract|gegen|gisid|glevelsof|gquantiles)\\b", "name": "keyword.control.flow.stata" }, { "comment": "Built in commands", "match": "\\b(about|ac|acprplot|ado|adopath|adoupdate|alpha|ameans|an|ano|anov|anova|anova_terms|anovadef|aorder|ap|app|appe|appen|append|arch|arch_dr|arch_estat|arch_p|archlm|areg|areg_p|args|arima|arima_dr|arima_estat|arima_p|asmprobit|asmprobit_estat|asmprobit_lf|asmprobit_mfx__dlg|asmprobit_p|avplot|avplots|bcskew0|bgodfrey|binreg|bip0_lf|biplot|bipp_lf|bipr_lf|bipr_p|biprobit|bitest|bitesti|bitowt|blogit|bmemsize|boot|bootsamp|boxco_l|boxco_p|boxcox|boxcox_p|bprobit|br|break|brier|bro|brow|brows|browse|brr|brrstat|bs|bsampl_w|bsample|bsqreg|bstat|bstrap|ca|ca_estat|ca_p|cabiplot|camat|canon|canon_estat|canon_p|caprojection|cat|cc|cchart|cci|cd|censobs_table|centile|cf|char|chdir|checkdlgfiles|checkestimationsample|checkhlpfiles|checksum|chelp|ci|cii|cl|class|classutil|clear|cli|clis|clist|clog|clog_lf|clog_p|clogi|clogi_sw|clogit|clogit_lf|clogit_p|clogitp|clogl_sw|cloglog|clonevar|clslistarray|cluster|cluster_measures|cluster_stop|cluster_tree|cluster_tree_8|clustermat|cmdlog|cnr|cnre|cnreg|cnreg_p|cnreg_sw|cnsreg|codebook|collaps4|collapse|colormult_nb|colormult_nw|compare|compress|conf|confi|confir|confirm|conren|cons|const|constr|constra|constrai|constrain|constraint|contract|copy|copyright|copysource|cor|corc|corr|corr2data|corr_anti|corr_kmo|corr_smc|corre|correl|correla|correlat|correlate|corrgram|cou|coun|count|cprplot|crc|cret|cretu|cretur|creturn|cross|cs|cscript|cscript_log|csi|ct|ct_is|ctset|ctst_st|cttost|cumsp|cumul|cusum|cutil|d|datasig|datasign|datasigna|datasignat|datasignatu|datasignatur|datasignature|datetof|db|dbeta|de|dec|deco|decod|decode|deff|des|desc|descr|descri|describ|describe|dfbeta|dfgls|dfuller|di|di_g|dir|dirstats|dis|discard|disp|disp_res|disp_s|displ|displa|display|do|doe|doed|doedi|doedit|dotplot|dprobit|drawnorm|ds|ds_util|dstdize|duplicates|durbina|dwstat|dydx|ed|edi|edit|eivreg|emdef|en|enc|enco|encod|encode|eq|erase|ereg|ereg_lf|ereg_p|ereg_sw|ereghet|ereghet_glf|ereghet_glf_sh|ereghet_gp|ereghet_ilf|ereghet_ilf_sh|ereghet_ip|eret|eretu|eretur|ereturn|err|erro|error|est|est_cfexist|est_cfname|est_clickable|est_expand|est_hold|est_table|est_unhold|est_unholdok|estat|estat_default|estat_summ|estat_vce_only|esti|estimates|etodow|etof|etomdy|expand|expandcl|fac|fact|facto|factor|factor_estat|factor_p|factor_pca_rotated|factor_rotate|factormat|fcast|fcast_compute|fcast_graph|fdades|fdadesc|fdadescr|fdadescri|fdadescrib|fdadescribe|fdasav|fdasave|fdause|fh_st|file|filefilter|fillin|find_hlp_file|findfile|findit|fit|fl|fli|flis|flist|fpredict|frac_adj|frac_chk|frac_cox|frac_ddp|frac_dis|frac_dv|frac_in|frac_mun|frac_pp|frac_pq|frac_pv|frac_wgt|frac_xo|fracgen|fracplot|fracpoly|fracpred|fron_ex|fron_hn|fron_p|fron_tn|fron_tn2|frontier|ftodate|ftoe|ftomdy|ftowdate|gamhet_glf|gamhet_gp|gamhet_ilf|gamhet_ip|gamma|gamma_d2|gamma_p|gamma_sw|gammahet|gdi_hexagon|gdi_spokes|genrank|genstd|genvmean|gettoken|gladder|glim_l01|glim_l02|glim_l03|glim_l04|glim_l05|glim_l06|glim_l07|glim_l08|glim_l09|glim_l10|glim_l11|glim_l12|glim_lf|glim_mu|glim_nw1|glim_nw2|glim_nw3|glim_p|glim_v1|glim_v2|glim_v3|glim_v4|glim_v5|glim_v6|glim_v7|glm|glm_p|glm_sw|glmpred|glogit|glogit_p|gmeans|gnbre_lf|gnbreg|gnbreg_p|gomp_lf|gompe_sw|gomper_p|gompertz|gompertzhet|gomphet_glf|gomphet_glf_sh|gomphet_gp|gomphet_ilf|gomphet_ilf_sh|gomphet_ip|gphdot|gphpen|gphprint|gprefs|gprobi_p|gprobit|gr|gr7|gr_copy|gr_current|gr_db|gr_describe|gr_dir|gr_draw|gr_draw_replay|gr_drop|gr_edit|gr_editviewopts|gr_example|gr_example2|gr_export|gr_print|gr_qscheme|gr_query|gr_read|gr_rename|gr_replay|gr_save|gr_set|gr_setscheme|gr_table|gr_undo|gr_use|graph|grebar|greigen|grmeanby|gs_fileinfo|gs_filetype|gs_graphinfo|gs_stat|gsort|gwood|h|hareg|hausman|haver|he|heck_d2|heckma_p|heckman|heckp_lf|heckpr_p|heckprob|hel|help|hereg|hetpr_lf|hetpr_p|hetprob|hettest|hexdump|hilite|hist|histogram|hlogit|hlu|hmeans|hotel|hotelling|hprobit|hreg|hsearch|icd9|icd9_ff|icd9p|iis|impute|imtest|inbase|include|inf|infi|infil|infile|infix|inp|inpu|input|ins|insheet|insp|inspe|inspec|inspect|integ|inten|intreg|intreg_p|intrg2_ll|intrg_ll|intrg_ll2|ipolate|iqreg|ir|irf|irf_create|irfm|iri|is_svy|is_svysum|isid|istdize|ivprobit|ivprobit_p|ivreg|ivreg_footnote|ivtob_lf|ivtobit|ivtobit_p|jacknife|jknife|jkstat|joinby|kalarma1|kap|kapmeier|kappa|kapwgt|kdensity|ksm|ksmirnov|ktau|kwallis|labelbook|ladder|levelsof|leverage|lfit|lfit_p|li|lincom|line|linktest|lis|list|lloghet_glf|lloghet_glf_sh|lloghet_gp|lloghet_ilf|lloghet_ilf_sh|lloghet_ip|llogi_sw|llogis_p|llogist|llogistic|llogistichet|lnorm_lf|lnorm_sw|lnorma_p|lnormal|lnormalhet|lnormhet_glf|lnormhet_glf_sh|lnormhet_gp|lnormhet_ilf|lnormhet_ilf_sh|lnormhet_ip|lnskew0|loadingplot|(?=|:=|==|!=|~=|<|>|=|!!|!)", "name": "keyword.operator.comparison.stata" }, { "match": "\\(|\\)", "name": "keyword.operator.parentheses.stata" }, { "match": "(##|#)", "name": "keyword.operator.factor-variables.stata" }, { "match": "%", "name": "keyword.operator.format.stata" }, { "match": ":", "name": "punctuation.separator.key-value" }, { "match": "\\[", "name": "punctuation.definition.parameters.begin.stata" }, { "match": "\\]", "name": "punctuation.definition.parameters.end.stata" }, { "match": ",", "name": "punctuation.definition.variable.begin.stata" }, { "match": ";", "name": "keyword.operator.delimiter.stata" }] }, "reserved-names": { "patterns": [{ "match": "\\b(_all|_b|byte|_coef|_cons|double|float|if|in|int|long|_n|_N|_pi|_pred|_rc|_skip|str[0-9]+|strL|using|with)\\b", "name": "invalid.illegal.name.stata" }, { "match": "[^\\w'`\\$\\(\\)\\s]", "name": "invalid.illegal.name.stata" }, { "match": "[0-9][\\w]{31,}", "name": "invalid.illegal.name.stata" }, { "match": "\\w{33,}", "name": "invalid.illegal.name.stata" }] }, "string-compound": { "patterns": [{ "begin": '`"', "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.stata" } }, "end": `"'|(?= )`, "endCaptures": { "0": { "name": "punctuation.definition.string.end.stata" } }, "name": "string.quoted.double.compound.stata", "patterns": [{ "comment": 'This must come before #string-regular and #string-compound to accurately color `"""\' in strings', "match": '"', "name": "string.quoted.double.compound.stata" }, { "comment": "see https://github.com/kylebarron/language-stata/issues/53", "match": "```(?=[^']*\")", "name": "meta.markdown.code.block.stata" }, { "include": "#string-regular" }, { "include": "#string-compound" }, { "include": "#macro-local-escaped" }, { "include": "#macro-global-escaped" }, { "include": "#macro-local" }, { "include": "#macro-global" }] }] }, "string-regular": { "patterns": [{ "begin": '(?