Sublime Text 3 syntax definition, snippets, and commenting for Datamine macros
- Total 29
- Win 25
- OS X 2
- Linux 2
|Mar 24||Mar 23||Mar 22||Mar 21||Mar 20||Mar 19||Mar 18||Mar 17||Mar 16||Mar 15||Mar 14||Mar 13||Mar 12||Mar 11||Mar 10||Mar 9||Mar 8||Mar 7||Mar 6||Mar 5||Mar 4||Mar 3||Mar 2||Mar 1||Feb 28||Feb 27||Feb 26||Feb 25||Feb 24||Feb 23||Feb 22||Feb 21||Feb 20||Feb 19||Feb 18||Feb 17||Feb 16||Feb 15||Feb 14||Feb 13||Feb 12||Feb 11||Feb 10||Feb 9||Feb 8|
Sublime Text 3 Customizations for Datamine Studio RM Macros
These customizations add a colour scheme, snippets, and commenting support to Sublime Text 3 for Datamine macros.
Package Control to install the latest version:
- Press Ctrl + ⇧ + P to open the command palette.
Package Control: Install Packageand press enter. Then search for
Once installed open a Datamine macro file with the '.mac' extension. Go to the
View->Syntax->Open all with current extension as... menu and select
The macro language syntax highlighting definition allows special highlighting of process names and their parameters, variables, and comments in Datamine macros. This scheme defines sub-schemes for language elements of EXTRA, LET, PICREC, and the DOS batch language. Certain errors such as incorrect variable, keyword, and file names are highlighted to help reduce bugs in macro code.
I have tested this scheme with the Material and the Monokai Pro colour schemes, other colour schemes may not work as well.
Snippets are small pieces of code, mainly for Datamine macro processes. When you type the first letters of a Datamine keyword a prompt will appear at the cursor where you can select the snippet. Snippets are included for many processes with common options and defaults. These snippets are not exhaustive – I will add additional snippets to the repository as I need them.
The snippets have only been tested in Sublime Text 3 (they should work in version 2 and also in TextMate). The snippets were originally designed to work with Datamine Studio 3 but are in the process of being transferred to Studio RM. As such there may be commands or command options that will not work in Studio 3.
- All snippets are in lowercase except where certain Datamine field names are used. Field names are in uppercase as per Datamine conventions (e.g., BHID, FROM, TO, XMORIG, XINC).
- Because of the 80-character line length limit of Datamine macros the use of spaces (white space) in the snippets is minimized. No spaces are used if not strictly necessary for the code to be valid. The exception to this is a two-space indent for the second and subsequent lines of Datamine processes.
- By default snippets contain the full set of parameters even when this makes no sense – it is up to the user to modify the code according to its application. Some verbose commands may have one or more alternative forms for specific application (e.g. the ESTIMA command is presented in a simpler form without the unfolding parameters). Other forms are also present for specific common tasks such as a SELCOP command for copying a drillhole file with the required drillhole fields included:
!selcop &in(),&out(), *f1(BHID),*f2(FROM),*f3(TO),*f4(LENGTH), *f5(X),*f6(Y),*f7(Z),*f8(A0), *f9(B0),*f10(),*f11(),*f12(), *f13(),*f14(),*f15(),*f16(), @keepall=0
- Snippet place-holder variables are used for all parameters. Where a parameter has a default value in Datamine this default is present in in the place-holder. Sometimes the Datamine default is overridden if another default is more common (e.g., the Datamine default for COMPDH's MODE parameter is 0 but the snippet is defaulted to 1). The override of default values is purely based on my personal preference.
- Some documentation of parameters is provided as a Datamine comment below the command. This is slowly being implemented for the more complicated commands:
!mgsort &in(),&out(), *key1(),*key2(),*key3(),*key4(), @order=1,@keyfrst=1,@roworder=1 # &in input file; &out sorted output file; *key1*...n any number of key # fields for sorting; @order sort order (1: ascending; 2: decending); # @keyfrst (0: output field in same order as input; 1: key fields first); # @roworder (0: rows with identical keyfield in any order -- faster; # 1: rows in input file order -- slowest).
With commenting support when you select lines in a macro and type Ctrl + / the lines will be commented with '#'. If the lines are already commented they will be un-commented.
My favourite Sublime Text settings (optional)
These are some of the setting I use in Sublime Text 3.
Fira has an excellent coding font that includes programming ligatures, now supported in Sublime Text 3. Go to the Fira Code website to install and then and the following to your Sublime Text settings file:
"font_face": "Fira Code Retina",
Assuming you have a HDI monitor, the following setting may improve the quality of text rendering on Windows machines:
"font_options": [ "directwrite", "subpixel_antialias" ],
I am now using the excellent Monokai Pro theme and colour scheme (Filter Machine variant). Use package control to install this theme and colour scheme and then select it under
Preferences->Package Settings->Theme - Monokai Pro->Select Theme. This process will install the following in your settings file:
"color_scheme": "Packages/Theme - Monokai Pro/Monokai Pro (Filter Machine).tmTheme", "theme": "Monokai Pro (Filter Machine).sublime-theme",