Sublime Forum

Stata 11 Syntax Highlighting

#1

This is my first time here, so forgive me if this is out of place or could be improved. Here is source code for simple syntax highlighting in Stata 11.
It is a bit rudimentary, but it is a start. Comments and suggestions are very welcome.

Best,
MoJo

To install, follow these steps (on OS X):
(1) Install “AAAPackageDev”
(2) Copy the code below to a new document in Sublime Text 2.
(3) Save it in a file named “Stata.JSON-tmLanguage” in the directory “~/Library/Application Support/Sublime Text 2/Packages/User”
(4) Set “Tools:Build System” to “JSON to Property List”
(5) Choose “Tools:Build” (command-B). If it compiles without error, you get the message:

Writing plist… (/Users//Library/Application Support/Sublime Text 2/Packages/User/Stata.tmLanguage)

(6) Restart Sublime Text and you should have syntax highlighting right away when you open .do, .ado, or .log files.

REMOVED
0 Likes

#2

Hi MoJo, thanks for the instructions!
But didn’t something go wrong with the code to be copied in step (2)?

0 Likes

#3

I’ve just released a Stata package for Sublime Text. It includes syntax highlighting and a build system. Check it out here: github.com/rpowers/sublime_stata

Ryan

0 Likes

#4

Sorry for the confusion. I removed my original code, because it was embarrassingly bad. I have now studied the ancient arts of recursive parsing, repositories, and possessive regex to minimize backtracking. This updated code is much improved. I have no idea how it compares to the package that rpowers just posted. The installation instructions are the same. I hope it is useful.

MoJo

[code]{ “name”: “Stata”,
“scopeName”: “source.stata”,
“fileTypes”: “ado”,“do”,“log”],
“foldingStartMarker”: “\{\s*$”,
“foldingStopMarker”: “^\s*\}”,
“patterns”:
{ “name”: “comment.block.stata”,
“begin”: “^\d\.\s]?/\”,
“end”: “^\d\.\s]?\/”
},
{ “name”: “meta.section.stata”,
“begin”: “({)”,
“end”: “(})”,
“beginCaptures”: {
“1”: { “name”: “punctuation.separator.stata” }
},
“endCaptures”: {
“1”: { “name”: “punctuation.separator.stata” }
},
“patterns”:
{ “include”: “$self”}
]
},
{ “name”: “comment.line.number-sign.stata”,
“match”: “^\(."
},
{ “match”: "\A\d\.\s]
+(\++)(.)”,
“captures”: {
“1”: { “name”: “comment.line.number-sign.stata” },
“2”: { “name”: “comment.line.percentage.stata” }
}
},
{ “match”: “(//)(.*)”,
“captures”: {
“1”: { “name”: “comment.line.double-slash.stata” },
“2”: { “name”: “entity.name.section.stata” }
}
},

  { "include": "#rec_parentheses"},
  { "include": "#rec_string"},
  { "include": "#rec_variable"},
  
  { "match": "\\A\\d\\.\\s]*+(\\b(?:xi|by|bys|byso|bysor|bysort|rolling)\\b.*?:)",
    "captures": {
      "1": { "name": "storage.type.stata" }
    }
  },
  { "begin": "(,)\\D",
    "end": "(?=(\\Z|\/\/|\\|\\|))",
    "beginCaptures": {
      "1": { "name": "punctuation.separator.stata" }
    },
    "patterns": 
      { "include": "#rec_parentheses"},
      { "include": "#rec_string"},
      { "include": "#rec_variable"},
      { "name": "storage.modifier.stata",
        "match": "."
      }
    ]        
  },
  { "match": "\\A\\d\\.\\s]*(exit)",
    "captures": {
      "1": { "name": "invalid.illegal.stata" }
    }
  },
  { "match": "(=\\<|=\\>|&&)",
    "name": "invalid.illegal.stata" 
  },
  { "include": "#numeric"},
  { "include": "#keywords"},
  { "name": "variable.other.stata",
    "match": "."
  }

],
“repository”: {
“rec_parentheses”: {
“begin”: “(\()”,
“end”: “(\))”,
“beginCaptures”: {
“1”: { “name”: “punctuation.separator.stata” }
},
“endCaptures”: {
“1”: { “name”: “punctuation.separator.stata” }
},
“patterns”:
{ “include”: “#rec_parentheses” },
{ “include”: “#rec_string” },
{ “include”: “#rec_variable”},
{ “include”: “#numeric”},
{ “name”: “string.unquoted.stata”,
“match”: “.”
}
]
},
“rec_string”: {
“begin”: “(”)",
“end”: “(”)",
“beginCaptures”: {
“1”: { “name”: “punctuation.separator.stata” }
},
“endCaptures”: {
“1”: { “name”: “punctuation.separator.stata” }
},
“patterns”:
{ “include”: “#rec_string” },
{ “include”: “#rec_variable”},
{ “name”: “string.quoted.double.stata”,
“match”: “.”
}

    ]
}, 
"rec_variable": {
    "begin": "(`)",
    "end": "(')",
    "beginCaptures": {
      "1": { "name": "punctuation.separator.stata" }
    },
    "endCaptures": {
      "1": { "name": "punctuation.separator.stata" }
    },
    "patterns": 
        { "name": "string.quoted.single.stata",
          "match": "."
        }
    ]
},


"keywords": {
  "patterns": 
    { "match": "\\b(?:all|close|off|on|adosize|autotabgraphs|cformat|checksum|conren|copycolor|dockable|dockingguides|doublebuffer|dp|emptycells|eolchar|fastscroll|floatresults|floatwindows|graphics|httpproxy|httpproxyauth|httpproxyhost|httpproxyport|httpproxypw|httpproxyuser|include_bitmap|level|linegap|linesize|locksplitters|logtype|matastrict|matalnum|mataoptimize|matafavor|matacache|matalibs|matamofirst|matsize|maxdb|maxiter|maxvar|memory|more|notifyuser|obs|odbcmgr|output|pagesize|persistfv|persistvtopic|pformat|pinnable|playsnd|printcolor|processors|reventries|revkeyboard|rmsg|scheme|scrollbufsize|searchdefault|seed|sformat|showbaselevels|showemptycells|showomitted|smoothfonts|sortseed|timeout1|timeout2|trace|tracedepth|traceexpand|tracehilite|traceindent|tracenumber|tracesep|type|update_interval|update_prompt|update_query|varabbrev|varkeyboard|varlabelpos|virtual)\\b",
      "name": "keyword.control.stata"
    },
    { "match": "\\b(?:if)\\b",
      "name": "storage.type.stata"
    },
    { "match": "\\b(?:u|us|usi|usin|using|2sls|liml|about|acprplot|acprplot_7|adjust|ado|adopath|adoupdate|alpha|ameans|an|ano|anov|anova|anova_estat|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|as|asclogit|asclogit_estat|asclogit_lf|asclogit_p|asmprobit|asmprobit_estat|asmprobit_mfx__dlg|asmprobit_p|asprobit_estat|asprobit_lf|asprobit_p|asroprobit|asroprobit_estat|asroprobit_p|ass|asse|asser|assert|avplot|avplot_7|avplots|avplots_7|bcskew0|bgodfrey|binreg|bip0_lf|biplot|biplot_10|bipp_lf|bipr_lf|bipr_p|biprobit|bitest|bitesti|bitowt|blogit|boot|bootsamp|bootstrap|bootstrap_8|boxco_l|boxco_p|boxcox|boxcox_6|boxcox_p|bprobit|br|break|brier|bro|brow|brows|browse|brr|brrstat|bs|bs_7|bsampl_w|bsample|bsample_7|bsqreg|bstat|bstat_7|bstat_8|bstrap|bstrap_7|ca|ca_estat|ca_p|ca_parse_normalize|cabiplot|camat|candisc|canon|canon_8|canon_8_p|canon_estat|canon_p|cap|caprojection|capt|captu|captur|capture|cat|cc|cchart|cchart_7|cci|cd|censobs_table|centile|cf|changeeol|char|chdir|check_help|checkdlgfiles|checkestimationsample|checkhlpfiles|checksum|chelp|ci|cii|cl|class|classutil|clear|cli|clis|clist|clo|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|continue|contract|copy|copyright|copysource|cor|corc|corr|corr2data|corr_anti|corr_kmo|corr_smc|corre|correl|correla|correlat|correlate|corrgram|cou|coun|count|cox|cox_p|cox_sw|coxbase|coxhaz|coxvar|cprplot|cprplot_7|crc|cret|cretu|cretur|creturn|cross|cs|cscript|cscript_log|csi|ct|ct_is|ctset|ctst_5|ctst_st|cttost|cumsp|cumsp_7|cumul|cusum|cusum_7|cutil|d|datasig|datasignature|datetof|db|dbeta|de|dec|deco|decod|decode|deff|des|desc|descr|descri|describ|describe|describe_mk|destring|dfactor|dfactor_estat|dfactor_p|dfbeta|dfbeta_10|dfgls|dfuller|di|di_g|dir|dirstats|dis|discard|discrim|discrim_estat_common|discrim_knn|discrim_knn_estat|discrim_knn_p|discrim_lda|discrim_lda_estat|discrim_lda_p|discrim_logistic|discrim_logistic_estat|discrim_logistic_p|discrim_qda|discrim_qda_estat|discrim_qda_p|disp|disp_res|disp_s|displ|displa|display|do|doe|doed|doedi|doedit|dotplot|dotplot_7|dprobit|drawnorm|drop|ds|ds_util|dstdize|dta_equal|duplicates|durbina|dvech|dvech_p|dwstat|dydx|e|ed|edi|edit|egen|eivreg|else|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|estimates_notes|estimates_sample|etodow|etof|etomdy|ex|exi|exit|exlogistic|exlogistic_estat|expand|expandcl|expoisson|expoisson_estat|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|findit_7|fit|fl|fli|flis|flist|for|for5_0|foreach|form|forma|format|forv|forva|forval|forvalu|forvalue|forvalues|fpredict|frac_154|frac_adj|frac_chk|frac_cox|frac_ddp|frac_dis|frac_dv|frac_eqmodel|frac_in|frac_mun|frac_pp|frac_pq|frac_pv|frac_restrict|frac_wgt|frac_xo|fracgen|fracplot|fracplot_7|fracpoly|fracpoly_10|fracpred|fron_ex|fron_hn|fron_p|fron_tn|fron_tn2|frontier|ftodate|ftoe|ftomdy|ftowdate|fvexpand|fvrevar|fvset|fvunab|g|gamhet_glf|gamhet_gp|gamhet_ilf|gamhet_ip|gamma|gamma_d2|gamma_p|gamma_sw|gammahet|gdi_hexagon|gdi_spokes|ge|gen|gene|gener|genera|generat|generate|genrank|genstd|genvmean|getcmds|getmata|gettoken|gl|gladder|gladder_7|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_6|glm_p|glm_sw|glmixed_b0|glmixed_b0r|glmixed_ll|glmixed_llr|glmpred|glo|glob|globa|global|glogit|glogit_8|glogit_p|gmeans|gmm|gmm_estat|gmm_p|gnbre_lf|gnbreg|gnbreg_5|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|gprobit_8|gr|gr7|gr_copy|gr_current|gr_db|gr_describe|gr_dir|gr_draw|gr_draw_replay|gr_drop|gr_ed_axis_custom|gr_ed_capture|gr_ed_db|gr_ed_dialog_util|gr_edit|gr_editviewopts|gr_example|gr_example2|gr_export|gr_play|gr_print|gr_qscheme|gr_query|gr_read|gr_redo|gr_rename|gr_replay|gr_save|gr_set|gr_setscheme|gr_table|gr_undo|gr_use|graph|graph7|grebar|greigen|greigen_7|greigen_8|grmeanby|grmeanby_7|gs_fileinfo|gs_filetype|gs_graphinfo|gs_stat|gsort|gwood|h|hadimvo|hareg|hausman|haver|he|heck_d2|heckma_p|heckman|heckman_fix_stripe|heckman_restore_stripe|heckp_lf|heckpr_p|heckprob|hel|help|hereg|hetpr_lf|hetpr_p|hetprob|hettest|hexdump|hilite|hist|hist_7|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_7|intreg_p|intrg2_ll|intrg_ll|intrg_ll2|ipolate|iqreg|ir|irf|irf_create|irfm|iri|is_st|is_svy|is_svysum|is_xt|isid|istdize|ivprob_1_lf|ivprob_lf|ivprobit|ivprobit_estat|ivprobit_footnote|ivprobit_p|ivreg|ivreg_footnote|ivregress|ivregress_epilog|ivregress_estat|ivregress_p|ivregress_prolog|ivtob_1_lf|ivtob_lf|ivtobit|ivtobit_footnote|ivtobit_p|jackknife|jacknife|jknife|jknife_6|jknife_8|jkstat|joinby|kalarma1|kap|kap_3|kapmeier|kappa|kapwgt|kdensity|kdensity_7|keep|ksm|ksmirnov|ktau|kwallis|l|la|lab|labe|label|labelbook|ladder|levels|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|loc|loca|local|log|logi|logis_lf|logistic|logistic_p|logit|logit_10|logit_estat|logit_p|loglogs|logrank|loneway|lookfor|lookup|lowess|lowess_7|lpoly|lpredict|lrecomp|lroc|lroc_7|lrtest|ls|lsens|lsens_7|lsens_x|lstat|ltable|ltable_7|ltable_9|ltriang|lv|lvr2plot|lvr2plot_7|m|ma|mac|macr|macro|makecns|man|mano|manov|manova|manova_estat|manova_p|manovatest|mantel|margin|margins|mark|markin|markout|marksample|mat|mat_capp|mat_order|mat_put_rr|mat_rapp|mata|mata_clear|mata_describe|mata_drop|mata_matdescribe|mata_matsave|mata_matuse|mata_memory|mata_mlib|mata_mosave|mata_rename|mata_which|matalabel|matcproc|matlist|matlist_10|matname|matr|matri|matrix|matrix_input__dlg|matstrik|mca|mca_estat|mca_lookup|mca_p|mca_parse_normalize|mcaplot|mcaprojection|mcc|mcci|md0_|md1_|md1debug_|md2_|md2debug_|mds|mds_classical|mds_dataheader|mds_display|mds_display_classical|mds_display_modern|mds_estat|mds_euclidean|mds_id2string|mds_modern|mds_p|mds_parse_cdopts|mds_parse_method|mds_parse_normalize|mds_parse_s2d|mds_s2d|mdsconfig|mdslong|mdsmat|mdsshepard|mdytoe|mdytof|me_derd|mean|means|median|memory|meqparse|mer|merg|merge|merge_10|merge_wrk_dlg|mfp|mfp_10|mfx|mhelp|mhodds|mi|mi_cmd_add|mi_cmd_append|mi_cmd_convert|mi_cmd_copy|mi_cmd_describe|mi_cmd_erase|mi_cmd_estimate|mi_cmd_expand|mi_cmd_export|mi_cmd_extract|mi_cmd_genericset|mi_cmd_import|mi_cmd_impute|mi_cmd_merge|mi_cmd_misstable|mi_cmd_passive|mi_cmd_ptrace|mi_cmd_query|mi_cmd_register|mi_cmd_rename|mi_cmd_replace0|mi_cmd_reset|mi_cmd_reshape|mi_cmd_select|mi_cmd_set|mi_cmd_stjoin|mi_cmd_stsplit|mi_cmd_svyset|mi_cmd_test|mi_cmd_testtransform|mi_cmd_unregister|mi_cmd_unset|mi_cmd_update|mi_cmd_varying|mi_cmd_xeq|mi_sub_expand_flongsep|mi_sub_replace0_flongsep|mi_sub_reshape|mi_sub_stjoin_flongsep|mi_sub_stsplit_flongsep|mi_sub_xeq_all|minbound|misstable|mixed_ll|mixed_ll_reparm|mkassert|mkdir|mkmat|mkspline|ml|ml_5|ml_adjs|ml_bhhhs|ml_c_d|ml_check|ml_clear|ml_cnt|ml_count_eval|ml_debug|ml_defd|ml_dots|ml_e0|ml_e0_bfgs|ml_e0_cycle|ml_e0_dfp|ml_e0i|ml_e1|ml_e1_bfgs|ml_e1_bhhh|ml_e1_cycle|ml_e1_dfp|ml_e2|ml_e2_cycle|ml_ebfg0|ml_ebfr0|ml_ebfr1|ml_ebh0q|ml_ebhh0|ml_ebhr0|ml_ebr0i|ml_ecr0i|ml_edfp0|ml_edfr0|ml_edfr1|ml_edr0i|ml_eds|ml_eer0i|ml_egr0i|ml_elf|ml_elf_bfgs|ml_elf_bhhh|ml_elf_cycle|ml_elf_dfp|ml_elfi|ml_elfs|ml_enr0i|ml_enrr0|ml_erdu0|ml_erdu0_bfgs|ml_erdu0_bhhh|ml_erdu0_bhhhq|ml_erdu0_cycle|ml_erdu0_dfp|ml_erdu0_nrbfgs|ml_exde|ml_footnote|ml_geqnr|ml_grad0|ml_graph|ml_hbhhh|ml_hd0|ml_hold|ml_init|ml_inv|ml_log|ml_max|ml_mlout|ml_mlout_8|ml_model|ml_nb0|ml_opt|ml_p|ml_plot|ml_query|ml_rdgrd|ml_repor|ml_s_e|ml_score|ml_searc|ml_showh|ml_technique|ml_unhold|mleval|mlf_|mlmatbysum|mlmatsum|mlog|mlogi|mlogit|mlogit_10|mlogit_footnote|mlogit_p|mlogit_p_10|mlopts|mlsum|mlvecsum|mnl0_|mopt|mopt_check_program|mopt_post|mopt_quietly|mopt_trace|mor|more|mov|move|mprobit|mprobit_lf|mprobit_p|mrdu0_|mrdu1_|mvdecode|mvencode|mvreg|mvreg_estat|mvtest|mvtest_chi2test|mvtest_corr|mvtest_cov|mvtest_dups|mvtest_ftest|mvtest_manotab|mvtest_mean|mvtest_norm|mvtest_samples|n|nbreg|nbreg_al|nbreg_lf|nbreg_p|nbreg_sw|nestreg|net|newey|newey_7|newey_estat|newey_p|news|nl|nl_7|nl_9|nl_9_p|nl_p|nl_p_7|nlcom|nlcom_p|nlexp2|nlexp2_7|nlexp2a|nlexp2a_7|nlexp3|nlexp3_7|nlgom3|nlgom3_7|nlgom4|nlgom4_7|nlinit|nllog3|nllog3_7|nllog4|nllog4_7|nlog_rd|nlogit|nlogit_estat|nlogit_lf|nlogit_p|nlogitgen|nlogittree|nlpred|nlsur|nlsur_estat|nlsur_p|no|nobreak|noi|nois|noisi|noisil|noisily|note|notes|notes_dlg|novarabbrev|nptrend|numlabel|numlist|odbc|old_ver|olo|olog|ologi|ologi_sw|ologit|ologit_10|ologit_p|ologitp|on|one|onew|onewa|oneway|op_colnm|op_comp|op_diff|op_inv|op_str|opr|opro|oprob|oprob_sw|oprobi|oprobi_p|oprobit|oprobit_10|oprobitp|opts_exclusive|order|orthog|orthpoly|ou|out|outf|outfi|outfil|outfile|outs|outsh|outshe|outshee|outsheet|ovtest|pac|pac_7|palette|parse|parse_dissim|pause|pca|pca_8|pca_display|pca_estat|pca_p|pca_rotate|pcamat|pchart|pchart_7|pchi|pchi_7|pcorr|pctile|pentium|pergram|pergram_7|permute|permute_8|personal|peto_st|pkcollapse|pkcross|pkequiv|pkexamine|pkexamine_7|pkshape|pksumm|pksumm_7|pl|playsnd|plo|plot|plugin|pnorm|pnorm_7|poisgof|poiss_lf|poiss_sw|poisso_p|poisson|poisson_estat|post|postclose|postfile|postrtoe|postutil|pperron|pr|prais|prais_e|prais_e2|prais_p|predict|predictnl|preserve|print|pro|prob|probi|probit|probit_10|probit_estat|probit_p|proc_time|procoverlay|procrustes|procrustes_estat|procrustes_p|profiler|prog|progr|progra|program|prop|proportion|prtest|prtesti|putmata|pwcorr|pwd|qby|qbys|qchi|qchi_7|qladder|qladder_7|qnorm|qnorm_7|qqplot|qqplot_7|qreg|qreg_c|qreg_p|qreg_sw|qu|quadchk|quantile|quantile_7|que|quer|query|qui|quie|quiet|quietl|quietly|range|ranksum|ratio|rchart|rchart_7|rcof|recast|recode|reg|reg3|reg3_10|reg3_p|regdw|regr|regre|regre_p2|regres|regres_p|regress|regress_estat|regriv_p|remap|ren|rena|renam|rename|renpfix|repeat|replace|reshape|reshape_10|restore|ret|retu|retur|return|rm|rmdir|robvar|roccomp|roccomp_7|roccomp_8|rocf_lf|rocfit|rocfit_8|rocgold|rocplot|rocplot_7|roctab|roctab_7|rolling|rologit|rologit_p|rot|rota|rotat|rotate|rotatemat|rreg|rreg_p|ru|run|runtest|rvfplot|rvfplot_7|rvpplot|rvpplot_7|sa|safesum|sample|sampsi|sav|save|savedresults|saveold|sc|sca|scal|scala|scalar|scatter|scm_mine|sco|scob_lf|scob_p|scobi_sw|scobit|scobit_footnote|scor|score|scoreplot|scoreplot_help|scree|screeplot|screeplot_help|sdr|sdtest|sdtesti|se|search|separate|seperate|serrbar|serrbar_7|serset|set|set_defaults|sfrancia|sh|she|shel|shell|shewhart|shewhart_7|signestimationsample|signrank|signtest|simul|simul_7|simulate|simulate_8|sktest|sleep|slogit|slogit_d2|slogit_footnote|slogit_p|smooth|snapshot|snapspan|so|sor|sort|spearman|spikeplot|spikeplot_7|spikeplt|spline_x|split|sqreg|sqreg_p|sret|sretu|sretur|sreturn|ssc|ssc_whatshot|sspace|sspace_estat|sspace_p|st|st_ct|st_hc|st_hcd|st_hcd_sh|st_is|st_issys|st_note|st_promo|st_set|st_show|st_smpl|st_subid|stack|statsby|statsby_8|stbase|stci|stci_7|stcox|stcox_estat|stcox_footnote|stcox_fr|stcox_fr_ll|stcox_p|stcox_sw|stcoxkm|stcoxkm_7|stcoxkm_9|stcrr|stcrr_lf|stcrre|stcrreg|stcrreg_p|stcstat|stcurv|stcurve|stcurve_7|stdes|stdescribe|stem|stepwise|stereg|stfill|stgen|stir|stjoin|stmc|stmh|stphplot|stphplot_7|stphplot_9|stphtest|stphtest_7|stpow|stpowe|stpower|stptime|strate|strate_7|streg|streg_p|streg_sw|streghet_footnote|streset|sts|sts_7|sts_9|stset|stsplit|stsum|sttocc|sttoct|stvary|stweib|su|suest|suest_8|sum|summ|summa|summar|summari|summariz|summarize|sunflower|sureg|survcurv|survsum|svar|svar_p|svmat|svy|svy_disp|svy_dreg|svy_est|svy_est_7|svy_estat|svy_get|svy_head|svy_header|svy_sub|svy_sub_7|svy_x|svy_x_7|svy_x_p|svydes|svydes_8|svydescribe|svygen|svygnbreg|svyheckman|svyheckprob|svyintreg|svyintreg_7|svyintrg|svyivreg|svylc|svylog_p|svylogit|svymarkout|svymarkout_8|svymean|svymlog|svymlogit|svynbreg|svyolog|svyologit|svyoprob|svyoprobit|svyopts|svypois|svypois_7|svypoisson|svyprobit|svyprobt|svyprop|svyprop_7|svyratio|svyreg|svyreg_p|svyregress|svyset|svyset_7|svyset_8|svytab|svytab_7|svytest|svytotal|sw|sw_8|swcnreg|swcox|swereg|swilk|swlogis|swlogit|swologit|swoprbt|swpois|swprobit|swqreg|swtobit|swweib|symmetry|symmi|symplot|symplot_7|syntax|sysdescribe|sysdir|sysuse|szroeter|ta|tab|tab1|tab2|tab_or|tabd|tabdi|tabdis|tabdisp|tabi|table|tabodds|tabodds_7|tabstat|tabu|tabul|tabula|tabulat|tabulate|te|tempfile|tempname|tempvar|tes|test|testnl|testparm|teststd|tetrachoric|time_it|timer|tis|tnbreg|tnbreg_cons|tnbreg_mean|tnbreg_p|tob|tobi|tobit|tobit_p|tobit_sw|token|tokeni|tokeniz|tokenize|tostring|total|tpoiss_d2|tpoisson|tpoisson_p|tpredict_p2|translate|translator|transmap|treat_ll|treatr_p|treatreg|treatreg_fix_stripe|treatreg_footnote|treatreg_restore_stripe|trim|trnb_cons|trnb_mean|trpoiss_d2|trunc_ll|truncr_p|truncreg|tsappend|tset|tsfill|tsline|tsline_ex|tsreport|tsrevar|tsrline|tsset|tssmooth|tsunab|ttest|ttesti|tut_chk|tut_wait|tutorial|tw|tware_st|two|twoway|twoway__fpfit_serset|twoway__function_gen|twoway__histogram_gen|twoway__ipoint_serset|twoway__ipoints_serset|twoway__kdensity_gen|twoway__lfit_serset|twoway__normgen_gen|twoway__pci_serset|twoway__qfit_serset|twoway__scatteri_serset|twoway__sunflower_gen|twoway_ksm_serset|ty|typ|type|typeof|u|u_mi_assert_set|u_mi_certify_data|u_mi_check_setvars|u_mi_curtime|u_mi_dots|u_mi_estimate|u_mi_estimate_chk_commonopts|u_mi_estimate_display|u_mi_estimate_get_commonopts|u_mi_estimate_table_header|u_mi_estimate_using|u_mi_fixchars|u_mi_get_flongsep_tmpname|u_mi_getstubname|u_mi_how_set|u_mi_imexport_fix_pre_suf|u_mi_impute_genexpr|u_mi_impute_get_cmdopts|u_mi_impute_init_em|u_mi_impute_initmat|u_mi_impute_parse_exp|u_mi_impute_parse_exp_ivars|u_mi_impute_replace_expr|u_mi_impute_xeq|u_mi_make_chars_equal|u_mi_map_style|u_mi_mustbe_registered_imputed|u_mi_no_sys_vars|u_mi_no_wide_vars|u_mi_not_mi_set|u_mi_postbv|u_mi_prefix_title|u_mi_recast_ivars|u_mi_save|u_mi_sets_okay|u_mi_sortback|u_mi_tests|u_mi_time_diff|u_mi_token_mustbe|u_mi_trcoef_legend|u_mi_use|u_mi_xeq_on_tmp_flongsep|u_mi_zap_chars|unab|unabbrev|unabcmd|unzipfile|update|us|use|use_option_wrk_dlg|uselabel|var|var_mkcompanion|var_p|varabbrev|varbasic|varfcast|vargranger|varirf|varirf_add|varirf_cgraph|varirf_create|varirf_ctable|varirf_describe|varirf_dir|varirf_drop|varirf_erase|varirf_graph|varirf_ograph|varirf_rename|varirf_set|varirf_table|varlmar|varm|varma|varman|varmana|varmanag|varmanage|varnorm|varsoc|varstable|varstable_w|varstable_w2|varwle|vce|vec|vec_fevd|vec_mkphi|vec_p|vec_p_w|vecirf_create|veclmar|veclmar_w|vecnorm|vecnorm_w|vecrank|vecstable|verinst|vers|versi|versio|version|view|viewsource|vif|vwls|vwls_p|wdatetof|webdescribe|webseek|webuse|weib1_lf|weib2_lf|weib_lf|weib_lf0|weibhet_glf|weibhet_glf_sh|weibhet_glfa|weibhet_glfa_sh|weibhet_gp|weibhet_ilf|weibhet_ilf_sh|weibhet_ilfa|weibhet_ilfa_sh|weibhet_ip|weibu_sw|weibul_p|weibull|weibull_c|weibull_s|weibullhet|wh|whelp|whi|which|whil|while|wilc_st|wilcoxon|win|wind|windo|window|winexec|wntestb|wntestb_7|wntestq|xchart|xchart_7|xcorr|xcorr_7|xi_6|xmlsav|xmlsave|xmluse|xpose|xsh|xshe|xshel|xshell|xt_iis|xt_tis|xtab_p|xtabond|xtbin_p|xtclog|xtcloglog|xtcloglog_8|xtcloglog_d2|xtcloglog_pa_p|xtcloglog_re_p|xtcnt_p|xtcorr|xtdata|xtdes|xtdescribe|xtdpd|xtdpd_estat|xtdpd_p|xtdpdsys|xtfront_p|xtfrontier|xtgee|xtgee_elink|xtgee_estat|xtgee_makeivar|xtgee_p|xtgee_plink|xtgee_robust_epilog|xtgee_robust_prolog|xtgls|xtgls_p|xthaus|xthausman|xtht_p|xthtaylor|xtile|xtint_p|xtintreg|xtintreg_8|xtintreg_d2|xtintreg_p|xtivp_1|xtivp_2|xtivreg|xtline|xtline_ex|xtlogit|xtlogit_8|xtlogit_d2|xtlogit_fe_p|xtlogit_pa_p|xtlogit_re_p|xtmelogit|xtmelogit_estat|xtmelogit_p|xtmepoisson|xtmepoisson_estat|xtmepoisson_p|xtmixed|xtmixed_estat|xtmixed_p|xtnb_fe|xtnb_lf|xtnbreg|xtnbreg_pa_p|xtnbreg_refe_p|xtpcse|xtpcse_p|xtpois|xtpoisson|xtpoisson_d2|xtpoisson_pa_p|xtpoisson_refe_p|xtpred|xtprobit|xtprobit_8|xtprobit_d2|xtprobit_re_p|xtps_fe|xtps_lf|xtps_ren|xtps_ren_8|xtrar_p|xtrc|xtrc_p|xtrchh|xtrefe_p|xtreg|xtreg_be|xtreg_fe|xtreg_ml|xtreg_pa_p|xtreg_re|xtregar|xtrere_p|xtset|xtsf_ll|xtsf_llti|xtsum|xttab|xttest0|xttobit|xttobit_8|xttobit_p|xttrans|xtunitroot|yx|yxview__barlike_draw|yxview_area_draw|yxview_bar_draw|yxview_dot_draw|yxview_dropline_draw|yxview_function_draw|yxview_iarrow_draw|yxview_ilabels_draw|yxview_normal_draw|yxview_pcarrow_draw|yxview_pcbarrow_draw|yxview_pccapsym_draw|yxview_pcscatter_draw|yxview_pcspike_draw|yxview_rarea_draw|yxview_rbar_draw|yxview_rbarm_draw|yxview_rcap_draw|yxview_rcapsym_draw|yxview_rconnected_draw|yxview_rline_draw|yxview_rscatter_draw|yxview_rspike_draw|yxview_spike_draw|zap_s|zinb|zinb_llf|zinb_plf|zip|zip_llf|zip_p|zip_plf|zipfile|zt_ct_5|zt_hc_5|zt_hcd_5|zt_is_5|zt_iss_5|zt_sho_5|zt_smp_5|ztbase_5|ztcox_5|ztdes_5|ztereg_5|ztfill_5|ztgen_5|ztir_5|ztjoin_5|ztnb|ztnb_p|ztp|ztp_p|zts_5|ztset_5|ztspli_5|ztsum_5|zttoct_5|ztvary_5|ztweib_5)\\b",
      "name": "keyword.operator.stata"
    },
    { "match": "\\b(?:estout|outreg|outreg2|psmatch2|ivreg2|ranktest|tabout|winsor|xtabond2|xtivreg2)\\b",
      "name": "keyword.control.stata"
    }
  ]
},
"numeric": {
  "patterns":  
    { "match": "(?<!\\w)([1-9][0-9]{0,2}(?:,[0-9]{3})+|[1-9][0-9]*+(?:\\.[0-9]+)?|0?\\.[0-9]+)(?!\\w)",
      "captures": {
        "1": { "name": "constant.numeric.stata" }
      }
    },
    { "match": "=\\+\\<\\>\\*\\$\/\\.&\\|:|//|//|]",
      "name": "punctuation.separator.stata"
    }
  ]
}

},
“uu,id”: “f6ac3ddf-5355-4c45-9f6a-179eec6d04d4”
}[/code]

0 Likes

#5

Two more things:

(1) I use it with the standard Twilight color scheme.

(2) To get the build functionality, create a file named “Stata.sublime-build” in the directory “~/Library/Application Support/Sublime Text 2/Packages/User” and copy and paste the code below into this file. Restart. And you can now use command-b to run the stata program in command-line mode (which is much faster). And you can use command-shift-p to find the alternative “Build: GUI” command, which runs the program in the full stata interface. (This may only work on OS X.)

I hope this helps,
MoJo

{ "selector": "source.stata", "working_dir": "$file_path", "cmd": "/Applications/Stata/StataSE.app/Contents/MacOS/stata-se","-qs","\"$file\""], "variants": { "cmd": "/Applications/Stata/StataSE.app/Contents/MacOS/StataSE","\"$file\""], "name": "GUI" } ] }

0 Likes