Skip to content

Instantly share code, notes, and snippets.

@baptiste
Created May 28, 2023 07:24
Show Gist options
  • Save baptiste/6b8efd23b324399c06d607b12cacee2c to your computer and use it in GitHub Desktop.
Save baptiste/6b8efd23b324399c06d607b12cacee2c to your computer and use it in GitHub Desktop.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language SYSTEM "language.dtd">
<language name="Julia" section="Scientific"
version="0"
extensions="*.jl"
mimetype="text/x-juliascript"
author="Andreas Nordal (andreas.nordal@gmail.com)"
license="public domain">
<highlighting>
<list name="keywords">
<item> abstract </item>
<item> begin </item>
<item> bitstype </item>
<item> break </item>
<item> catch </item>
<item> const </item>
<item> continue </item>
<item> else </item>
<item> elseif </item>
<item> end </item>
<item> export </item>
<item> for </item>
<item> function </item>
<item> global </item>
<item> if </item>
<item> import </item>
<item> let </item>
<item> local </item>
<item> macro </item>
<item> quote </item>
<item> return </item>
<item> try </item>
<item> type </item>
<item> typealias </item>
<item> while </item>
</list>
<list name="types">
<item> AbstractArray </item>
<item> AbstractVector </item>
<item> AbstractMatrix </item>
<item> Any </item>
<item> Array </item>
<item> Bool </item>
<item> Buffer </item>
<item> ByteString </item>
<item> Char </item>
<item> Complex </item>
<item> Complex128 </item>
<item> Complex64 </item>
<item> ComplexNum </item>
<item> DArray </item>
<item> Exception </item>
<item> Float </item>
<item> Float32 </item>
<item> Float64 </item>
<item> Function </item>
<item> Index </item>
<item> Int </item>
<item> Int8 </item>
<item> Int16 </item>
<item> Int32 </item>
<item> Int64 </item>
<item> Integer </item>
<item> Matrix </item>
<item> None </item>
<item> Number </item>
<item> NTuple </item>
<item> Ptr </item>
<item> Range </item>
<item> Range1 </item>
<item> Real </item>
<item> Regex </item>
<item> Scalar </item>
<item> Size </item>
<item> SparseMatrixCSC </item>
<item> StridedArray </item>
<item> StridedVector </item>
<item> StridedMatrix </item>
<item> StridedVecOrMat </item>
<item> String </item>
<item> SubArray </item>
<item> Symbol </item>
<item> Tuple </item>
<item> Task </item>
<item> Type </item>
<item> Uint </item>
<item> Uint8 </item>
<item> Uint16 </item>
<item> Uint32 </item>
<item> Uint64 </item>
<item> Union </item>
<item> UTF8String </item>
<item> VecOrMat </item>
<item> Vector </item>
<item> Void </item>
</list>
<list name="functions">
<item> ccall </item>
<item> convert </item>
<item> error </item>
<item> eval </item>
<item> dlopen </item>
<item> dlsym </item>
<item> include </item>
<item> isa </item>
<item> new </item>
</list>
<contexts>
<context name="normal" attribute="Normal" lineEndContext="#pop">
<DetectChar context="string" attribute="String" char="&quot;"/>
<DetectChar context="backtick" attribute="Backtick" char="`"/>
<HlCChar context="#stay" attribute="Char"/>
<HlCHex context="#stay" attribute="Hex">
<StringDetect context="#stay" attribute="Hex" String="im"/>
</HlCHex>
<Float attribute="Float" context="#stay">
<StringDetect context="#stay" attribute="Float" String="im"/>
</Float>
<Int attribute="Decimal" context="#stay">
<StringDetect context="#stay" attribute="Decimal" String="im"/>
</Int>
<StringDetect context="escstring" attribute="String" String="E&quot;"/>
<StringDetect context="intstring" attribute="String" String="I&quot;"/>
<RegExpr context="#stay" attribute="Comment" String="#.*$"/>
<RegExpr context="#stay" attribute="String" String="r&quot;.*&quot;"/>
<RegExpr context="#stay" attribute="String" String="L&quot;.*&quot;"/>
<!-- Universal Character Name -->
<RegExpr attribute="Char" context="#stay" String="'\\(u[0-9a-fA-F]{1,4}|U[0-9a-fA-F]{1,8})'"/>
<!-- if ' did not start a Char by now, it is the adjoint operator -->
<!-- special identifiers -->
<keyword context="#stay" attribute="Keyword" String="keywords"/>
<keyword context="#stay" attribute="Datatype" String="types"/>
<keyword context="#stay" attribute="Function" String="functions"/>
<DetectIdentifier/>
<!-- color the "instance of" operator like the type itself -->
<StringDetect context="#stay" attribute="Datatype" String="::"/>
<!-- count parenthesis depth to know when to pop -->
<AnyChar String=")]" context="#pop"/>
<AnyChar String="([" context="normal"/>
</context>
<context name="string" attribute="String" lineEndContext="#stay">
<DetectChar attribute="String" context="#pop" char="&quot;"/>
<HlCStringChar attribute="Char" context="#stay"/>
<Detect2Chars attribute="Char" context="#stay" char="\" char1="$"/>
<RegExpr attribute="Char" context="#stay" String="\\(u[0-9a-fA-F]{1,4}|U[0-9a-fA-F]{1,8})"/>
<DetectChar context="interpol" char="$" lookAhead="1"/>
</context>
<context name="escstring" attribute="String" lineEndContext="#stay">
<DetectChar attribute="String" context="#pop" char="&quot;"/>
<HlCStringChar attribute="Char" context="#stay"/>
<Detect2Chars attribute="Char" context="#stay" char="\" char1="$"/>
<RegExpr attribute="Char" context="#stay" String="\\(u[0-9a-fA-F]{1,4}|U[0-9a-fA-F]{1,8})"/>
</context>
<context name="intstring" attribute="String" lineEndContext="#stay">
<DetectChar attribute="String" context="#pop" char="&quot;"/>
<DetectChar context="interpol" char="$" lookAhead="1"/>
</context>
<context name="backtick" attribute="Backtick" lineEndContext="#stay">
<DetectChar attribute="Backtick" context="#pop" char="`"/>
<DetectChar context="doublequote" char="&quot;"/>
<DetectChar context="singlequote" char="'"/>
<DetectChar context="esconce" char="\"/>
<DetectChar context="interpol" char="$" lookAhead="1"/>
</context>
<context name="doublequote" attribute="Backtick" lineEndContext="#stay">
<DetectChar context="#pop" char="&quot;"/>
<DetectChar context="interpol" char="$" lookAhead="1"/>
<StringDetect context="#stay" attribute="Char" String="\&quot;"/>
</context>
<context name="singlequote" attribute="Backtick" lineEndContext="#stay">
<DetectChar context="#pop" char="'"/>
</context>
<context name="esconce" attribute="Char" lineEndContext="#stay">
<RegExpr context="#pop" String="."/><!-- consume 1 character -->
</context>
<!-- interpole: expect one of $(expression) $[expression] ${word} $word -->
<context name="interpol" attribute="Interpol" lineEndContext="#stay" fallthroughContext="#pop" fallthrough="1">
<Detect2Chars attribute="Interpol" context="normal" char="$" char1="("/>
<Detect2Chars attribute="Interpol" context="normal" char="$" char1="["/>
<RegExpr attribute="Interpol" context="#pop" String="\$(\w+|\{\w+\})"/>
<RegExpr attribute="Error" context="#stay" String="\$."/>
</context>
</contexts>
<itemDatas>
<itemData name="Normal" defStyleNum="dsNormal" spellChecking="0"/>
<itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="0"/>
<itemData name="Datatype" defStyleNum="dsDataType" spellChecking="0"/>
<itemData name="Function" defStyleNum="dsFunction" bold="1" spellChecking="0"/>
<itemData name="Decimal" defStyleNum="dsDecVal" spellChecking="0"/>
<itemData name="Float" defStyleNum="dsFloat" spellChecking="0"/>
<itemData name="Hex" defStyleNum="dsBaseN" spellChecking="0"/>
<itemData name="Char" defStyleNum="dsChar" spellChecking="0"/>
<itemData name="Interpol" defStyleNum="dsOthers" spellChecking="0"/>
<itemData name="Backtick" defStyleNum="dsOthers" color="#F80" spellChecking="0"/>
<itemData name="String" defStyleNum="dsString" spellChecking="0"/>
<itemData name="Comment" defStyleNum="dsComment"/>
<itemData name="Error" defStyleNum="dsError" spellChecking="0"/>
</itemDatas>
</highlighting>
<general>
<comments>
<comment name="singleLine" start="#"/>
</comments>
</general>
</language>
<!-- kate: space-indent on; indent-width 2; replace-tabs on; -->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment