Version History: --------------- 1.17.0.0 Big Changes * Updated for Stata 17 with the usual adding and deprecating Stata commands. There are many large changes to make installation easier. * Commands/ados from sysdirs (PERSONAL, PLUS, SITE, and OLDPLACE) now get fontified automatically, so there is no longer a need to write your own ado-mode-hook to do this. The ado-mode functions for adding and removing font-lock keywords were overhauled to do this more efficiently. * Added ado-add-sysdir-font-lock flag for auto-loading commands from sysdirs.This defaults to t, but if you do not want to fontify these commands, you can set it to nil. * Made the so-called `new' directory default to PERSONAL. If you have it customized already, nothing will change. New users no longer need to specify it. * Reorganized the customization groupings, because of simplifying the installation instructions. The most-needed settings are now under ado-main. . * Added ado-font-lock-refresh to refresh font locking without having to reload ado-mode. Finally. Other Feature Changes * Added overlooked Stata/IC to script for sending to Stata in unix (thanks to Mark Clements) * Added Stata/BE to keep up with Stata renaming Stata/IC to Stata/BE. For them that like Stata history: Stata/IC was once the fancy-pants version of Stata (as 'Intercooled' is a kind of turbocharger). Bug Fixes (not inclusive) * Fixed the bug which would error out when trying to grab a block when outside of a block. Note * This is the last update which will include the *.elc files in the zipped package. This is being done because it is really a bad practice to include them in a repository, as they can be generated from the contents of the repo. If you use MELPA, Emacs will create the *.elc files when you grab the package. If you are installing by hand, you'll have to do the compilations on your own. 1.16.1.6 No feature changes. Fixes for MELPA and for a dumb bug introduced in the last batch of MELPA changes. 1.16.1.5 Again, no feature changes. Did make changes for submitting code to Stata which should not affect behavior. Bumped version number for MELPA versioning and testing. 1.16.1.4 No feature changes. Just taking care of programming conventions for MELPA. Needed to bump the number for versioning on MELPA. 1.16.1.3 Feature changes * Fixed highlighting problems with local macro names caused by sloppy code for allowing emojis in 1.16.1.1. * Made \ an escape character, again, so that it is possible to escape double-quotes. It had been made a regular character long ago for a now-forgotten reason. * Added ado-clean-buffer for turning lines with just whitespace into empty lines. * Changed indenting to use extra indentation for continuations inside of functions (specifically for extended -cond()-s. Backward compatibility changes(!) * Changed default keybindings, because some violated rules found in the Key Binding Conventions in the Emacs Lisp manual ado-help-at-point now defaults to C-c C-k ado-help-command now defaults to C-c M-k The only reasons for k is that is not yet taken and it kinda looks like an h. * Changed names of three very old functions (the first ones I put into ado-mode) and one relatively new function electric-ado-closing-brace -> ado-electric-closing-brace electric-ado-brace -> ado-electric-brace electric-ado-semi -> ado-electric-semi set-ado-signature-file -> ado-set-ado-signature-file If you ever wrote any lisp code depending on these (I sure hope not!), then you'll witness the first backward compatibility break for ado-mode. MELPA-requested changes * MELPA requested that the syntax tester files not be included in the official package, so I moved them into another package. If you really want the syntax testers, you can find them here: https://github.com/louabill/ado-mode-syntax-checkers * Many many coding changes requested by MELPA to make the code more modern. None of these should affect features. * Many many changes to docstrings as requested by MELPA. Git-repo notes * I put the .elc files into .gitignore, and then removed them from the list of tracked files. (Repos really shouldn't have easily-reproduced files in them, as it bloats the history.) The .elc files were originally included so that people could unzip a file and have ado-mode work quickly without the added instruction to byte-compile the lisp directory. MELPA byte-compiles files when doing installations, so the .elc files have become redundant. NOTE: if you pulled from this repo in the past, from now on, you'll need to byte-compile the lisp directory after pulling: M-x d M-x byte-recompile-directory will do the trick. * About moving the syntax checkers: I did this in the most primitive way possible, to help with backwards compatibility: I made a new repo, moved the files in the syntax_testers there, and then deleted the syntax_testers directory from this repo. I did _not_ go back and alter the git commits. The syntax testers were there on purpose, not by mistake, but when using a package manager like MELPA, they are out of place. If you want to try your hand at changing ado-mode, you'll want the syntax testers, because they'll give you feedback about constructions that may or may not highlight properly. Stata is not a regular/rational language, so highlighting will always have some problems. 1.16.1.2 * No feature changes (I hope). Just trying to make Melpa-ready. 1.16.1.1 * Fixed bug where sending code to Stata via a do-file (or include file) on the Mac would mess up any multibyte unicode characters (i.e. anything other than unaccented Latin letters). * Fixed highlighting of names containing emojis. Too bad variable names in Stata cannot start with emojis, though. 1.16.1.0 * Added new -set- subcommands * Multiple fixes to incomplete and otherwise-missed commands * Minor fixes to -estat- subcommands 1.16.0.0 * Finally got all the changes for Stata 16 added. * Added some missing command abbreviations. 1.15.1.6 * Tried fixing mysterious 'Not enough arguments for format string' error message which could pop up when there were %-symbols in commands being sent to Stata. * Fixed highlighting bug in class declarations. 1.15.1.5 * Made ado-mode better at guessing names of help files. * Added undocumented commands associated with -cscript- (see -help cscript-). * Added menu items for opening help and source files. * Small syntax highlighting fixes. * Put in embarrassing omission of 4 erm commands. * Put in embarrassing omission of fmm prefix (had svy: fmm: but not fmm:). * Cleaned up syntax_tester.ado to make it easier to pull all possible Stata commands from it. (Future project). * Replaced some emacs-obsolete variables with their newer versions, meaning that ado-mode now requires Emacs 24.1 or later. * Updated header info to be more modern in all files. * Had to change some function names and arguments to make things more compliant with emac usage: (ado-delimit-is-semi) was changed to (ado-delimit-is-semi-p) (ado-find-ado-dirs) changed to require the subdir instead of defaulting to an obscure directory on my computer (oops) 1.15.1.4 * Unicode names finally work. * Updated syntax highlighting to try and be smarter about highlighting Stata keywords appearing in the middle of text. This needed to be fixed because of the nice new Stata commands which allow mixing narrative and Stata. The fix cannot be perfect because Stata is not a regular language, so it is hard to detect what any piece of a code line means. There are some known shortcomings. ** Continued lines highlight as a series of independent lines. ** Items which occur mid-line (such as returned values or smcl) still highlight, but that is their nature. ** Mata reserved words and keywords highlight, because they don't follow Stata syntax. ** The first word after a colon (:) will be considered a possible command in most cases, simply because checking for legal prefix commands is nigh-on impossible. This being said, commands for which a prefix command _could_ be legal, but is likely silly will not highlight after a colon. ** All added unofficial commands are assumed to allow prefix commands (cannot be changed). * Fixed highlighting of local macros which start with numbers. ** Commands like -foreach whatever of global/local- now highlight legal names for locals, but allow globals to have names just like locals (with leading 0's or unicode symbols). This won't likely get fixed, as it'll take a bit of work to make something halfways maintainable. Also: globals are supposed to be exceedingly rare. * Changed highlighting of local macros to include the opening ` and closing '. It doesn't look that great, but it makes nested local macros, such as `foo`bar'' and ``foo'bar' highlight similarly. * Fixed some other bugs in highlighting and added highlighting for AssociativeArray methods. 1.15.1.3 * Added a submenu to the Ado-mode > Options menu for changing values for interacting with Stata (version, flavor, instance, etc.) The instance is useful only in MS-Windows. 1.15.1.2 * Took out some debugging code which caused extra messages in Windows * Updated copyright dates in files which had been changed some time recently 1.15.1.1 * Fixed a bug for sending to Stata in Windows * Made sure -version 15.1- highlighed properly (duh) 1.15.1.0 * Thanks to a good tip from Helge Liebert to point things in the right direction, it is now possible in linux to communicate with Stata directly from Emacs! This requires xsel and xdotool, which can be downloaded via sudo apt-get install xsel xdotool in Ubuntu/Debian and sudo pacman -S xsel xdotool in Arch * Highlighting user-written commands found on the ado-path now works in linux, also * Added the one new command, -dataex- * [Programmers only]: Changed the default behavior of the ado-command-to-clip function to strip leading and trailing whitespace 1.15.0.0 * Updated for Stata 15, finally * Changed the keybinding for ado-help-command from C-c C-c to C-c M-h. This was done out of confusion that newer Emacs (>= 25.2) bound another function to C-c C-c. This was false, but I left the change in because it is more consistent with other bindings. After all, C-c C-h is for ado-help-at-point, C-c M-h is a generalization * Fixed -tssmooth- to display as harmful face * Fixed highlighting of -manlink-, -manlinki-, -manpage-, and -mansection- to only accept proper abbreviations for manual names (like R or P or SVY). * Fixed a bug in indentation of abbreviations of #delimit * Fixed a bug in creating help file filenames. 1.14.2.0 * Thanks to leo, fixed ado-send-to-stata to allow spaces in file names * Added -icd10 search- (in reality, this had been added earlier, incorrectly, in ado-mode 1.14.0.0) * Updated version to accept 14.2 1.14.1.0 * Updated -ci- highlighting for new subcommands of -ci-. * Fixed up sending to Stata for Windows. It seems that the text has to be translated into utf16 for the pasting to work properly. If you have trouble with this, try setting emacs to use utf8 as its encoding. * Added a new template called testado.blp. It makes a dofile which -includes- the ado file of the same name within a self-logging do-file so that debugging goes faster. * Updated the saving of new programs (ado-files) to ask about saving to ado-personal-dir if ado-new-dir doesn't exist (and ado-personal-dir does). The whole concept of the 'new' directory was a leftover from when Stata first introduced the adopath but didn't separate downloads from personal programs. (The last remnant of this in official Stata is in c(sysdir_oldplace)). * Made the embarrassing fix to the default location of the windows executable. By default, ado-mode assumes that you installed a 64-bit version in Windows. * Changed the templates so that if you tell emacs where Stata lives by setting ado-stata-home, the templates will have the version of your Stata. No more updating templates for each version of Stata. * Changed the way that templates work, so that it is easier to have more complex templates. If you used the ado-new-generic function to create your own commands for templates, those commands might break. Look at the readme in the templates directory for more information. 1.14.0.0 * Updated for Stata 14 syntax * Had to change script for sending text to Stata for Windows to use method equivalent to copy and paste (This happened because of the change of the control type for the Command window to a type which doesn't let its text get set.) * Updated templates for .ado, .do, and .mata files to use -version 14- commands 1.13.1.1 * Fixed an embarrassing omission in the customization group for ado-mode * Fixed a small bug with version numbers in non-ado, non-class, non-do files * Fixed a problem introduced by the cmd-S saving in 1.13.1.0 which allowed a newly created file to overwrite an existing file without warning. * Small fixes to templates. 1.13.1.0 * Updated for Stata 13.1 * Finally fixed up saving files so that standard save-file methods (e.g. cmd-S in Aquamacs Emacs, File > Save File in all OS's) update timestamps and keep backup copies. * Fixed highlighting bug for // comments starting at the beginning of a line * Fixed indenting bug for -mata- groups (things were fine for -mata:- groups). * Changed help.blp to say 'stored results' instead of 'saved results'. * Now am getting warning about syntax-propertize replacing font-lock-syntactic-keywords for emacs 24.1 and later. I'm not going to worry about this, yet---it is used for #delimit and #review. 1.13.0.0 * Updated for Stata 13 * Fixed highlighting bugs for -irf- and its subcommands 1.12.1.1: (never released) * updated templates to 'version 12.1' * noticed that in Stata 12 for MS Windows, if you open the filter on the review window, AutoIt changes the number of the Command window, so that attempting to send commands to Stata sends the commands to the filter instead. To fix the problem, move the Command window to the top of the screen. There is no possible workaround for the problem, as it is a bug in AutoIt. * fixed a bug where the automatic naming of help files got fooled by help files for topics with spaces in their names (e.g. regress postestimation). * changed the way that // comments are recognized so that url's don't get highlighted as comments * minor highlighting and behavior bug fixes 1.12.1.0: * fixed a bug introduced by the Emacs 24 change to the filter-buffer-substring command * Added ado-statacorp-defaults which sets indentations, timestamps and the like to match StataCorp's style for editing. * Re-fixed the bugs related to semi-colon delimited files. Maybe this time the fix will be real. * Now replace multiple tabs/spaces with a single space when sending a command to the clipboard for consumption by the Command window. Necessary because the command window does not understand tab characters. * Fixed minor fontification bugs. 1.12.0.2: not released to general public 1.12.0.1: * Added two new commands for opening any file on the adopath (think: editing in place of -viewsource-): ado-open-command, which tries to identify the current command and open its ado-file, and ado-open-any-file which will open any file. By default, these files are opened in read-only mode, to protect against accidental editing. This behavior can be customized as usual, and can be set temporarily in the Ado-mode > Options menu. * Added/Changed some keybindings: C-c C-o and C-c C-f allow you to open any file on your default adopath. C-c M-o and C-c M-f allow you to open the current command. C-c C-e is the new binding for inserting a -foreach- loop. * ado-stata-home is now set by default to be the typical installation directory for Stata on the three platforms to: Mac OS X: /Applications/Stata/ Windows 7/Vista/XP: c:/Program Files/Stata12 Unix: /usr/local/stata12 * Added commands for (re)setting the named parts of the adopath to their values at the start of a Stata session: ado-reset-personal-dir, ado-reset-plus-dir, etc. * Fixed a bug where submitting the whole buffer would submit only the current command if the buffer was dirty. * Changed how ado-mode decides on file types, because of changes to how .sthlp files are made in Stata 12. This should also help in ado-files with long sets of *! comments at the top. * Semi-fixed bug after #delimit ; so blocks of commands are sent to Stata properly, as version 1.12.0.2 notes. * Fixed minor fontification (highlighting) bugs. 1.12.0.0: * Updated for Stata 12 * Added different highlighting for commands requiring a subcommand. Incomplete multi-word commands should now be clearer. This is likely to be a little incomplete, so please send reports to me about it. * Added a new function (ado-input-to-stata) which asks for a command in the minibuffer, and then sends the command to Stata. This is bound to C-c C-t by default. * Changed indenting so that continuations inside of parens or braces take the parens or braces into account. This (should) be an improvement. * Changed the way to name .sthlp files, so that the name can be found both for Stata 12 as well as pre-Stata 12 help files. This was needed because of the new quick access tags at the start of Stata 12 helpfiles. * Updated the help.blp template greatly, so that it contained new smcl tags and also contained sections useful for user-written commands. Thus, it now differs from the template in the Users Guide. * Included a better way of pasting to the Command window under MS Windows, thanks to Daniel Green passing on some code from Jeffery Arnold and Matthew Botsch. Should be much faster now, especially when pasting large blocks of code. * Changed formatting in this version history to make it more readable. 1.11.2.1: * Fixed bug for sending via do-file on the Mac, where the working directory would be changed to the users tmp directory * Added a new way of sending commands to Stata (as suggested by David Lucca): "include". This option is the same as sending via a do-file, except that the command sent is -include ...-. The advantage of this is that local macros defined earlier will still be defined, allowing incremental work inside larger do-files. Thanks, David, for a Very Good Idea. * Stopped adding an extra when working via the do-file editor or includes, because this should be handled by the script passing the clipboard to Stata. 1.11.2.0: * Updated to allow -version 11.2- * Fixed bug in AutoIt script for Windows where adomode would get confused if there was a Graph window open (or even any web browser pointed at Stata's website). AutoIt now uses a regexp to find either "Small Stata" or "Stata/(IC|SE|MP)". This should be good unless you are visiting a site like http://www.stata.com/statamp while using ado-mode. (Checking the window class for a Stata window doesn't help, so this will be as good as it gets.) * Put in better error-checking for a bad value in ado-script-dir. * Fixed up code for sending to Stata under Windows so that spaces are allowed in filenames. I think. * Tried to fix highlighting of commands when followed by a special character like a paren, because 'generate' should highlight, but 'generate(' should not. * Fixed minor highlighting bugs. * Cleaned up font highlighting of added commands. * Anyone finding bugs, please report. Passing code to Windows is complicated because there can be no passing of the clipboard AND waiting to see if there was an error in passing code, so debugging is really hard for me, being a non-Windows user. 1.11.1.2: * BEHAVIOR CHANGE: if you have a .ado-signature file, see the last item. * Added support for sending code to Stata when there are multiple instances of Stata running (MS Windows only). How the code is sent is ruled by 5 options: ado-send-to-all-flag: if this is t, then all instances get the sent code. ado-stata-version, ado-stata-flavor, and ado-stata-instance: When these filters are specified, emacs will look at all running instances and count the number of these that are matched (note that the default values will match any Stata). If ado-strict-match-flag is nil (the default), *all* Statas which tie for most matches are considered candidates for the code. (This is done so that when all are at their default values, they will always match any running Stata.) If ado-strict-match-flag is t, then only those which match all 3 filters are candidates. Some examples: For each of the following, suppose that there are two instances of StataMP 11.1, one instance of StataSE 10.1 running, and one instance of StataMP 10.1 running. If no filters are set, the ado-strict-match-flag is nil, there will be 4 matching Statas. If the ado-send-to-all-flag is false, you will get an error, if the ado-send-to-all flag is true, all 4 instances will get the same command. If ado-strict-match-flag is t, there will also be 4 matching Statas. If ado-stata-flavor is "SE", and the other filters are unset, there will be 1 matching Stata, regardless of the state of the ado-strict-match-flag. If ado-stata-version is 12, and ado-stata-flavor is "MP", there will be 0 matching Statas if the ado-strict-match-flag is t (because no Stata is Stata 12), but there will be 3 matching Statas if ado-strict-matching is nil, because the 3 StataMP instances will all match 2 out of 3 filters (the "MP" filter and the unset filter). * Added new functions for working with blocks of codes: ado-balance-braces will balance {[()]} outside of strings and comments. Used multiple times, it will keep expanding matching pairs. It is bound to C-c C-b. While this is nice, ado-grab-block is nicer. It will balance only {}, which is useful for grabbing blocks of commands. Because this will often be used with loops, it will also grab whatever defines the loop. Repeated use will grab the nesting blocks. For both of the above, a region is selected, so the region can be sent to Stata in the usual fashion. If you are sure that you want to submit the current narrowest block, you can use ado-send-block-to-stata, which is simply an ado-grab-block followd by an ado-send-command-to-stata. This is bound to C-c M-b. One warning: in this initial version, emacs' default behavior is followed, where different braces can match if there are unbalanced braces. Thus {these DO balance]. * Added menu item Ado > New > Do-file * Updated help-file template to match the not-so-new way that Stata likes its help files, using the synopt table for options before the Description section. * Changed the authorship routine so it is easier to not have any author (good for me working at Stata). There is a new flag ado-help-author-flag---if it is nil, the Author section will be deleted, otherwise the Author section will be included. The behavior of ado-signature-prompt-flag now makes more sense; if nil, the user will be prompted to give a signature file only if the signature file is missing. This will affect approximately 0 people. * If you have a .ado-signature file for filling in the authorship section of a sthlp file, you might need to change it. It should now just have your info, without any paragraph-mode items. So... the following is good: Bill Rising, StataCorp{break} email: brising@stata.com{break} web: {browse "http://homepage.mac.com/brising":http://homepage.mac.com/brising} This will affect at least one person (me). 1.11.1.1: * Added fontification for ado files in Stata's -sysdir- locations. So, for example, if you download the command -renvars-, -renvars- will now use have syntax highlighting in emacs. For this to work, you *must* run M-x customize-group RET ado-path to tell emacs what directories house your customizations. Look at the personal_scrap.el file for more help on doing this automatically. It's magical. Really. Since this is so magical, its features might change based on feedback. * Added new functions ado-next-error and ado-prev-error, which search for something indicating an error (in a text file, a non-zero return code, in a smcl file an {err} tag). If tracing is on, this will jump to the line creating the error rather than the tag or error code itself. * Fixed an embarrassing bug for using the comeback flag in windows. It looks like I didn't test it much originally, if at all. 1.11.1.0: * Updated for Stata 11.1 * Big internal change: got rid of make-regexps in favor of regexp-opt, so that all called functions were part of standard emacs. Though make-regexps was nice to use, it was way out of date. * Split all the endless font-locking code into its own file, so that others who would like to use it in their own packages will have an easier time. * Fixed the silly *Async Shell Command* buffer problem when sending code to Stata in MS Windows. * Various highlighting bug fixes. 1.11.0.1: * Fixed a bug where sending code to Stata from MS Windows via a do-file failed. 1.11.0.0: * Added functionality for sending code to Stata in MS Windows. So...it is now possible to send code to Stata from both Mac OS X and MS Windows. The default keystroke is M-RET. (MS Windows note: when sending to Stata, *Async Shell Command* buffer will open. Since you cannot avoid this, just make the pane as small as possible. I cannot figure out how to get autoit's executable to run synchronously with emacs.) * Added functionality for getting help for commands directly from emacs. C-cC-c gets help for the command, C-cC-h gets help for word at point. Because these work via sending commands, they are also Mac/Win only. * Fixed highlighting for -estat classification- abbreviations * Fixed problems with spaces in paths when using ado-send-to-stata * Fixed some typos in the documentation of functions * Updated for Staga 11 commands, including new commands and marking obsolete commands as such * Changed the templates to default to version 11 1.10.1.2: * (Finally) changed the update of the time stamp to not add the old timestamp to the kill ring. * Fixed a bug where stripping comments failed when there were tabs as part of the whitespace before the comment string. This could occur when lines were split. To shut off tabs when splitting lines, set indent-tabs-mode to nil. 1.10.1.1: * Added functionality for sending regions or commands to Stata, at least inside Mac OS X(!). The design *should* make it possible to implement the same behavior in MS Windows or Unix, because the code for putting the proper information on the clipboard is written to be platform independent. The methods for getting the clipboard to Stata itself are not (of course). All that is needed is something which will paste the clipboard/pasteboard into Stata's command window. Everything else is internal to emacs. Look inside ado-to-stata.el to see how things are sent via applescript on the Mac. If you come up with a script for unix or windows, please send it to me, so I can change the functionality of ado-mode to be more platform-agnostic (brising at mac dot com). If you use MS Windows or Unix, there is some consolation, because running M-RET will take the function containing the point (or the region if one is selected) and put it in the clipboard in a way the Commmand window can use it. All you need to do is paste into the Command window. * Along with this functionality is the ability to get help from Stata for the word at point. (ado-help-at-point, bound to C-c C-h, and ado-help-command, bound to C-c C-c) * A key binding has changed. Meta-Return now sends the region/command to Stata, and Shift-Meta-Return splits a line. In OSes which don't work directly with Stata, Meta-Return will put a version of the region or the command in which point is sitting on the clipboard, so it can be pasted in the command window. * Fixed up the methods for determining the type of file and the default name. NOTE: for .ado or .class files, the name of the program or class must come in the first 200 characters of the file. Lesson: if you use a helper program in a do-file, be sure to wait a little before defining it. The 200-character cutoff is entirely arbitrary. * Added a newer (and better) definition of `how-many' to the ado-hacks.el file for users who haven't yet updated to emacs 22.1.1. * Added ado-new-ado for a new ado file. This is identical to ado-new-program. * Added do.blp and ado-new-do to make do-files which both log and can be nested. * Added mata.blp and ado-new-mata to make mata definition files. * Fixed ado-new-generic to be smarter about naming new files (like mata files). * Added new preference flag for updating timestamps... they now can be shut off. This is accessible from the Ado-mode->Options menu, like all other flags for formatting. * Added new random number generating functions. * Finally made ado-insert-nice-current-date to interactively insert timestamps. * Finally put in leading * comment highlighting. * Updated the template for help files. 1.10.0.0: Added several bits of functionality suggested by Uli Kohler: * changed method for indenting so that do-files are properly indented: the indentation is incremented by each defined program (program [define]) and decremented by each end statement. * it is now possible to choose a default column for continuation strings in similarly to that for comments. This column is respected by ado-split-line if ado-line-up-continuations is non-nil. * created ado-macify-selection-or-word which will put `' around the current selection. If nothing is selected, but the point is in a word, it will put `' around the current word. Finally if the point surrounded by whitespace it will insert `' and leave point inside the macro. * created ado-stringify-selection, which will put `""' around the current selection (if any). If nothing is selected, inserts `""' and leaves the point inside the quotations. * created ado-strmacify-selection-or-word which macifies and then stringifies the object of interest. Other changes: * added Stata 10 commands, functions, and the like. * now try to highlight ++ and -- following local macro defs as obsolete, as a warning to people like me who forget that the incrementation must preceed the macro name. * changed indenting, so that mata: alone on a line will cause the following lines to indent (until an end statement is found). * changed name of ado-help-file to ado-new-help. * added new customizable variable ado-help-extension which can be toggled between its default of 'sthlp' and 'hlp' using ado-toggle-help-extension. * added ado-new-cscript for starting cert scripts. * changed the menus a little to take advantage of contextual menus. * changed versioning numbers, but kept increasing sequence. * arbitrary bug fixes to some of the more complicated highlighting. 0.92.0: Added additional functions introduced in online updates. Some are from before the 20jan2006 update, sad to say. Fixed bug for indentation before special commands (like end or version). This changed the behavior of ado-beginning-of-command [M-a] to sit still when in a blank line when the delimiter is cr. * fixed bad fontification ** of local when used as local ``foo'' with double quotes. ** of tempvar, tempfile, tempname when followed by quoted local macro. * added code which runs if the user is using Aquamacs emacs. Not sure of the wisdom of having this in the main file, perhaps it will be broken out in the future. 0.91.2: Added Mata functions introduced in the 20jan2006 update to Stata, and added the ado-hacks.el file, which includes a function defined in Stata 22, but not earlier: line-number-at-pos. This handy function is good for complicated indentations and for jumping back to the beginning of commands... but missing it will break emacs 21.whatever. 0.91.1: Separated change history off. * changed format of new history entries * changed all my addresses to my new job forgot this in 0.91.0. * changed behavior for saving files to be more emacs-like. ** When saving a file under its old name, there is no confirmation, like usual emacs saving ** if ado-mode, ahem, corrects the file name *and* there is a saved file of that name in the default directory already, it *will* prompt, to avoid mistaken overwrites. ** thanks to Brendan Halpin for pointing this out * fixed some minor programming badness, such as using insert-file when insert-file-contents was the proper command to use. * fixed and improved indentation, so that continued commands with embedded comments are indented properly. * fixed bugs in indentation when using a semi-colon for the delimiter * changed method for comment indentation, so that /* and */ on different lines will line up, with the text on in-between lines indented to one extra level of indentation. (requested by Patrick Ball) * Mata changes ** added new faces for current mata keywords, future mata keywords, and mata functions (though the mata function face defaults to the regular function face. ** included all the mata functions, as far as I can tell. ** did not change anything else with indentation for Mata functions. 0.91.0: Fixed highlighting to work with all new Stata commands except the new Mata commands. They will arrive in another update. No real changes to the underpinnings. 0.82.5: Fixed numerous problems with indenting and moving to the beginning and end of commands when using semi-colons as the delimiter. Bound M-e to ado-end-of-command. Fixed the behavior of this and ado-beginning-of-command. 0.82.4: Hacked the highlighting to make embedded strings, a la `"this is "embedded", you know"' look right. Emacs won't treat them properly internally, but at least they will look like strings. 0.82.3: Added the new commands related to time series from the July 23, 2004 update of Stata. Made the now obsolete -varfcast- and -varinf- show up as obsolete. 0.82.2: Fixed the bug where ado-mode got confused by opening .do files which had subprogram defined in them. 0.82.1: Added the new commands, macro extended commands and new SMCL directives from the July 1, 2004 update of Stata. Minor stuff. 0.82: Changed behavior when -do- files are saved to fix the bug that would cause -do- files which defined programs to get saved as -ado- files named after the first locally defined program. Other bug fixes for highlighting of some lesser-used constructions. 0.81: Changed behavior of open and close quotes (` and ') so that they no longer behave like parentheses, meaning that they don't flash and don't affect indentation. This should have been done earlier when ' was allowed for matrix transposition. 0.80: Serious upgrade: made to work with Stata 8, customization groups added, font-locking made more flexible, buffer-local changes to indentation and the like added. <0.80: Updates for Stata changes - out-of-date emacs code.