Skip to content

Instantly share code, notes, and snippets.

@mutterer
Created June 23, 2020 13:48
Show Gist options
  • Save mutterer/46eb53e1b45d396097ae22e31208c4ff to your computer and use it in GitHub Desktop.
Save mutterer/46eb53e1b45d396097ae22e31208c4ff to your computer and use it in GitHub Desktop.
jEdit mode (syntax highlighting file) for ImageJ macros
<?xml version="1.0"?>
<!DOCTYPE MODE SYSTEM "xmode.dtd">
<MODE>
<PROPS>
<PROPERTY NAME="commentStart" VALUE="/*" />
<PROPERTY NAME="commentEnd" VALUE="*/" />
<PROPERTY NAME="lineComment" VALUE="//" />
<PROPERTY NAME="wordBreakChars" VALUE=",+-=&lt;&gt;/?^&amp;*" />
<!-- Auto indent -->
<PROPERTY NAME="indentOpenBrackets" VALUE="{" />
<PROPERTY NAME="indentCloseBrackets" VALUE="}" />
<PROPERTY NAME="indentNextLine"
VALUE="\s*(((if|while)\s*\(|else\s*|else\s+if\s*\(|for\s*\(.*\))[^{;]*)" />
<!-- set this to 'true' if you want to use GNU coding style -->
<PROPERTY NAME="doubleBracketIndent" VALUE="false" />
<PROPERTY NAME="lineUpClosingBracket" VALUE="true" />
</PROPS>
<RULES ESCAPE="\"
IGNORE_CASE="FALSE"
HIGHLIGHT_DIGITS="TRUE"
DIGIT_RE="(0x[[:xdigit:]]+[lL]?|[[:digit:]]+(e[[:digit:]]*)?[lLdDfF]?)">
<!-- Silly comment -->
<SEQ TYPE="COMMENT1">/**/</SEQ>
<!-- Java comment (C style) -->
<SPAN TYPE="COMMENT1">
<BEGIN>/*</BEGIN>
<END>*/</END>
</SPAN>
<SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE">
<BEGIN>"</BEGIN>
<END>"</END>
</SPAN>
<SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE">
<BEGIN>'</BEGIN>
<END>'</END>
</SPAN>
<EOL_SPAN TYPE="COMMENT2">//</EOL_SPAN>
<SEQ TYPE="OPERATOR">=</SEQ>
<SEQ TYPE="OPERATOR">!</SEQ>
<SEQ TYPE="OPERATOR">&gt;=</SEQ>
<SEQ TYPE="OPERATOR">&lt;=</SEQ>
<SEQ TYPE="OPERATOR">+</SEQ>
<SEQ TYPE="OPERATOR">-</SEQ>
<SEQ TYPE="OPERATOR">/</SEQ>
<!-- workaround to stop "*" from being colorized
in import statements. -->
<SEQ TYPE="NULL">.*</SEQ>
<SEQ TYPE="OPERATOR">*</SEQ>
<SEQ TYPE="OPERATOR">&gt;</SEQ>
<SEQ TYPE="OPERATOR">&lt;</SEQ>
<SEQ TYPE="OPERATOR">%</SEQ>
<SEQ TYPE="OPERATOR">&amp;</SEQ>
<SEQ TYPE="OPERATOR">|</SEQ>
<SEQ TYPE="OPERATOR">^</SEQ>
<SEQ TYPE="OPERATOR">~</SEQ>
<SEQ TYPE="OPERATOR">}</SEQ>
<SEQ TYPE="OPERATOR">{</SEQ>
<!-- Annotation types -->
<SEQ_REGEXP AT_LINE_START="FALSE" TYPE="LABEL">macro.*(?=\{)</SEQ_REGEXP>
<MARK_FOLLOWING TYPE="KEYWORD3">Table.</MARK_FOLLOWING>
<MARK_FOLLOWING TYPE="KEYWORD3">String.</MARK_FOLLOWING>
<MARK_FOLLOWING TYPE="KEYWORD3">Stack.</MARK_FOLLOWING>
<MARK_FOLLOWING TYPE="KEYWORD3">RoiManager.</MARK_FOLLOWING>
<MARK_FOLLOWING TYPE="KEYWORD3">Roi.</MARK_FOLLOWING>
<MARK_FOLLOWING TYPE="KEYWORD3">Property.</MARK_FOLLOWING>
<MARK_FOLLOWING TYPE="KEYWORD3">Plot.</MARK_FOLLOWING>
<MARK_FOLLOWING TYPE="KEYWORD3">Overlay.</MARK_FOLLOWING>
<MARK_FOLLOWING TYPE="KEYWORD3">Math.</MARK_FOLLOWING>
<MARK_FOLLOWING TYPE="KEYWORD3">List.</MARK_FOLLOWING>
<MARK_FOLLOWING TYPE="KEYWORD3">IJ.</MARK_FOLLOWING>
<MARK_FOLLOWING TYPE="KEYWORD3">Fit.</MARK_FOLLOWING>
<MARK_FOLLOWING TYPE="KEYWORD3">File.</MARK_FOLLOWING>
<MARK_FOLLOWING TYPE="KEYWORD2">Dialog.</MARK_FOLLOWING>
<MARK_FOLLOWING TYPE="KEYWORD3">Array.</MARK_FOLLOWING>
<!-- Function calls -->
<MARK_PREVIOUS TYPE="FUNCTION" EXCLUDE_MATCH="TRUE">(</MARK_PREVIOUS>
<KEYWORDS>
<KEYWORD1>abs</KEYWORD1>
<KEYWORD1>acos</KEYWORD1>
<KEYWORD1>asin</KEYWORD1>
<KEYWORD1>atan</KEYWORD1>
<KEYWORD1>atan2</KEYWORD1>
<KEYWORD1>autoUpdate</KEYWORD1>
<KEYWORD1>beep</KEYWORD1>
<KEYWORD1>bitDepth</KEYWORD1>
<KEYWORD1>calibrate</KEYWORD1>
<KEYWORD1>call</KEYWORD1>
<KEYWORD1>changeValues</KEYWORD1>
<KEYWORD1>charCodeAt</KEYWORD1>
<KEYWORD1>close</KEYWORD1>
<KEYWORD1>cos</KEYWORD1>
<KEYWORD1>d2s</KEYWORD1>
<KEYWORD1>doCommand</KEYWORD1>
<KEYWORD1>doWand</KEYWORD1>
<KEYWORD1>drawLine</KEYWORD1>
<KEYWORD1>drawOval</KEYWORD1>
<KEYWORD1>drawRect</KEYWORD1>
<KEYWORD1>drawString</KEYWORD1>
<KEYWORD1>dump</KEYWORD1>
<KEYWORD1>endsWith</KEYWORD1>
<KEYWORD1>eval</KEYWORD1>
<KEYWORD1>exec</KEYWORD1>
<KEYWORD1>exit</KEYWORD1>
<KEYWORD1>exp</KEYWORD1>
<KEYWORD1>Ext</KEYWORD1>
<KEYWORD1>fill</KEYWORD1>
<KEYWORD1>fillOval</KEYWORD1>
<KEYWORD1>fillRect</KEYWORD1>
<KEYWORD1>floodFill</KEYWORD1>
<KEYWORD1>floor</KEYWORD1>
<KEYWORD1>fromCharCode</KEYWORD1>
<KEYWORD1>getArgument</KEYWORD1>
<KEYWORD1>getBoolean</KEYWORD1>
<KEYWORD1>getBoundingRect</KEYWORD1>
<KEYWORD1>getCursorLoc</KEYWORD1>
<KEYWORD1>getDateAndTime</KEYWORD1>
<KEYWORD1>getDimensions</KEYWORD1>
<KEYWORD1>getDirectory</KEYWORD1>
<KEYWORD1>getFileList</KEYWORD1>
<KEYWORD1>getHeight</KEYWORD1>
<KEYWORD1>getHistogram</KEYWORD1>
<KEYWORD1>getImageID</KEYWORD1>
<KEYWORD1>getImageInfo</KEYWORD1>
<KEYWORD1>getInfo</KEYWORD1>
<KEYWORD1>getLine</KEYWORD1>
<KEYWORD1>getList</KEYWORD1>
<KEYWORD1>getLocationAndSize</KEYWORD1>
<KEYWORD1>getLut</KEYWORD1>
<KEYWORD1>getMetadata</KEYWORD1>
<KEYWORD1>getMinAndMax</KEYWORD1>
<KEYWORD1>getNumber</KEYWORD1>
<KEYWORD1>getPixel</KEYWORD1>
<KEYWORD1>getPixelSize</KEYWORD1>
<KEYWORD1>getProfile</KEYWORD1>
<KEYWORD1>getRawStatistics</KEYWORD1>
<KEYWORD1>getResult</KEYWORD1>
<KEYWORD1>getResultLabel</KEYWORD1>
<KEYWORD1>getSelectionBounds</KEYWORD1>
<KEYWORD1>getSelectionCoordinates</KEYWORD1>
<KEYWORD1>getSliceNumber</KEYWORD1>
<KEYWORD1>getStatistics</KEYWORD1>
<KEYWORD1>getString</KEYWORD1>
<KEYWORD1>getStringWidth</KEYWORD1>
<KEYWORD1>getThreshold</KEYWORD1>
<KEYWORD1>getTime</KEYWORD1>
<KEYWORD1>getTitle</KEYWORD1>
<KEYWORD1>getValue</KEYWORD1>
<KEYWORD1>getVoxelSize</KEYWORD1>
<KEYWORD1>getVersion</KEYWORD1>
<KEYWORD1>getWidth</KEYWORD1>
<KEYWORD1>getZoom</KEYWORD1>
<KEYWORD1>imageCalculator</KEYWORD1>
<KEYWORD1>indexOf</KEYWORD1>
<KEYWORD1>is</KEYWORD1>
<KEYWORD1>isActive</KEYWORD1>
<KEYWORD1>isKeyDown</KEYWORD1>
<KEYWORD1>isNaN</KEYWORD1>
<KEYWORD1>isOpen</KEYWORD1>
<KEYWORD1>lastIndexOf</KEYWORD1>
<KEYWORD1>lengthOf</KEYWORD1>
<KEYWORD1>lineTo</KEYWORD1>
<KEYWORD1>log</KEYWORD1>
<KEYWORD1>makeLine</KEYWORD1>
<KEYWORD1>makeOval</KEYWORD1>
<KEYWORD1>makePoint</KEYWORD1>
<KEYWORD1>makePolygon</KEYWORD1>
<KEYWORD1>makeRectangle</KEYWORD1>
<KEYWORD1>makeSelection</KEYWORD1>
<KEYWORD1>matches</KEYWORD1>
<KEYWORD1>maxOf</KEYWORD1>
<KEYWORD1>minOf</KEYWORD1>
<KEYWORD1>moveTo</KEYWORD1>
<KEYWORD1>newArray</KEYWORD1>
<KEYWORD1>newImage</KEYWORD1>
<KEYWORD1>newMenu</KEYWORD1>
<KEYWORD1>nImages</KEYWORD1>
<KEYWORD1>nResults</KEYWORD1>
<KEYWORD1>nSlices</KEYWORD1>
<KEYWORD1>open</KEYWORD1>
<KEYWORD1>parseFloat</KEYWORD1>
<KEYWORD1>parseInt</KEYWORD1>
<KEYWORD1>PI</KEYWORD1>
<KEYWORD1>pow</KEYWORD1>
<KEYWORD1>print</KEYWORD1>
<KEYWORD1>random</KEYWORD1>
<KEYWORD1>rename</KEYWORD1>
<KEYWORD1>replace</KEYWORD1>
<KEYWORD1>requires</KEYWORD1>
<KEYWORD1>reset</KEYWORD1>
<KEYWORD1>resetMinMax</KEYWORD1>
<KEYWORD1>resetThreshold</KEYWORD1>
<KEYWORD1>restorePreviousTool</KEYWORD1>
<KEYWORD1>restoreSettings</KEYWORD1>
<KEYWORD1>return</KEYWORD1>
<KEYWORD1>roiManager</KEYWORD1>
<KEYWORD1>round</KEYWORD1>
<KEYWORD1>run</KEYWORD1>
<KEYWORD1>runMacro</KEYWORD1>
<KEYWORD1>save</KEYWORD1>
<KEYWORD1>saveAs</KEYWORD1>
<KEYWORD1>saveSettings</KEYWORD1>
<KEYWORD1>screenHeight</KEYWORD1>
<KEYWORD1>screenWidth</KEYWORD1>
<KEYWORD1>selectionName</KEYWORD1>
<KEYWORD1>selectionType</KEYWORD1>
<KEYWORD1>selectImage</KEYWORD1>
<KEYWORD1>selectWindow</KEYWORD1>
<KEYWORD1>setAutoThreshold</KEYWORD1>
<KEYWORD1>setBackgroundColor</KEYWORD1>
<KEYWORD1>setBatchMode</KEYWORD1>
<KEYWORD1>setColor</KEYWORD1>
<KEYWORD1>setFont</KEYWORD1>
<KEYWORD1>setForegroundColor</KEYWORD1>
<KEYWORD1>setJustification</KEYWORD1>
<KEYWORD1>setKeyDown</KEYWORD1>
<KEYWORD1>setLineWidth</KEYWORD1>
<KEYWORD1>setLocation</KEYWORD1>
<KEYWORD1>setLut</KEYWORD1>
<KEYWORD1>setMetadata</KEYWORD1>
<KEYWORD1>setMinAndMax</KEYWORD1>
<KEYWORD1>setOption</KEYWORD1>
<KEYWORD1>setPasteMode</KEYWORD1>
<KEYWORD1>setPixel</KEYWORD1>
<KEYWORD1>setResult</KEYWORD1>
<KEYWORD1>setRGBWeights</KEYWORD1>
<KEYWORD1>setSelectionLocation</KEYWORD1>
<KEYWORD1>setSelectionName</KEYWORD1>
<KEYWORD1>setSlice</KEYWORD1>
<KEYWORD1>setThreshold</KEYWORD1>
<KEYWORD1>setTool</KEYWORD1>
<KEYWORD1>setupUndo</KEYWORD1>
<KEYWORD1>setVoxelSize</KEYWORD1>
<KEYWORD1>setZCcoordinate</KEYWORD1>
<KEYWORD1>showMessage</KEYWORD1>
<KEYWORD1>showMessageWithCancel</KEYWORD1>
<KEYWORD1>showProgress</KEYWORD1>
<KEYWORD1>showStatus</KEYWORD1>
<KEYWORD1>sin</KEYWORD1>
<KEYWORD1>snapshot</KEYWORD1>
<KEYWORD1>split</KEYWORD1>
<KEYWORD1>sqrt</KEYWORD1>
<KEYWORD1>startsWith</KEYWORD1>
<KEYWORD1>substring</KEYWORD1>
<KEYWORD1>tan</KEYWORD1>
<KEYWORD1>toBinary</KEYWORD1>
<KEYWORD1>toHex</KEYWORD1>
<KEYWORD1>toLowerCase</KEYWORD1>
<KEYWORD1>toolID</KEYWORD1>
<KEYWORD1>toScaled</KEYWORD1>
<KEYWORD1>toUnscaled</KEYWORD1>
<KEYWORD1>toString</KEYWORD1>
<KEYWORD1>toUpperCase</KEYWORD1>
<KEYWORD1>updateDisplay</KEYWORD1>
<KEYWORD1>updateResults</KEYWORD1>
<KEYWORD1>value</KEYWORD1>
<KEYWORD1>var</KEYWORD1>
<KEYWORD1>wait</KEYWORD1>
<KEYWORD1>waitForUser</KEYWORD1>
<KEYWORD3>function</KEYWORD3>
<KEYWORD3>false</KEYWORD3>
<KEYWORD3>true</KEYWORD3>
<KEYWORD3>for</KEYWORD3>
<KEYWORD3>if</KEYWORD3>
<KEYWORD3>else</KEYWORD3>
<KEYWORD3>while</KEYWORD3>
<KEYWORD3>do</KEYWORD3>
<!-- Java 1.5 -->
</KEYWORDS>
</RULES>
</MODE>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment