Sublime Text 3 syntax definition, snippets, and commenting for Datamine macros
- Total 9
- Win 8
- OS X 1
- Linux 0
|Aug 18||Aug 17||Aug 16||Aug 15||Aug 14||Aug 13||Aug 12||Aug 11||Aug 10||Aug 9||Aug 8||Aug 7||Aug 6||Aug 5||Aug 4||Aug 3||Aug 2||Aug 1||Jul 31||Jul 30||Jul 29||Jul 28||Jul 27||Jul 26||Jul 25||Jul 24||Jul 23||Jul 22||Jul 21||Jul 20||Jul 19||Jul 18||Jul 17||Jul 16||Jul 15||Jul 14||Jul 13||Jul 12||Jul 11||Jul 10||Jul 9||Jul 8||Jul 7||Jul 6||Jul 5||Jul 4|
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",