Warning, /frameworks/syntax-highlighting/data/syntax/julia.xml is written in an unsupported language. File is not indexed.
0001 <?xml version="1.0" encoding="UTF-8"?> 0002 <!-- 0003 ==================================================================== 0004 Julia syntax highlighting file for the KDE editors Kate and Kwrite 0005 ==================================================================== 0006 0007 This was adapted from the Matlab syntax highlighting file 0008 0009 Most of this XML file is straightforward. Only the character ' (') 0010 needs nontrivial treatment, since it is both a postfix operator indicating 0011 complex conjugate transpose (adjoint) and a character delimiter. It is an 0012 adjoint operator in the following positions: 0013 1) immediately after an identifier (variable, function, but not keyword) 0014 2) immediately after a number literal 0015 3) immediately after the closing parenthesis ), ] and } 0016 4) immediately after a simple transpose operator .' 0017 5) immediately after another adjoint operator ' 0018 Otherwise it is a character delimiter. 0019 0020 This is implemented using look-ahead regexps. If one of the entities in the 0021 above cases 1-4 (identifier, number literal, ...) matches and look-ahead 0022 shows that it is followed by a ', the entity is highlighted and control is 0023 passed to the special context _adjoint, whose sole purpose is to correctly 0024 highlight a series of ' (thus covering case 5 as well). _adjoint immediately 0025 returns to the default context _normal. 0026 0027 Author: Timothy E. Holy, Washington University in St. Louis 0028 --> 0029 0030 <!DOCTYPE language 0031 [ 0032 <!ENTITY int "[0-9]+(_[0-9]+)*"> 0033 <!ENTITY hex "[0-9a-fA-F]+(_[0-9a-fA-F]+)*"> 0034 <!ENTITY function_disallowed_chars "\s.,(){}\[\];:%'"&$=/?\|^#@"> 0035 <!ENTITY function_disallowed_first_char "0-9!&function_disallowed_chars;"> 0036 <!ENTITY function_begin_boundary "(?:(?<=[&function_disallowed_chars;!]|^)(?=[^&function_disallowed_first_char;]))"> 0037 ]> 0038 0039 <language name="Julia" style="julia" indenter="julia" section="Sources" version="14" kateversion="5.62" extensions="*.jl" casesensitive="1" priority="5" license="MIT"> 0040 0041 <highlighting> 0042 <list name="cflow_begin"> 0043 <item>for</item> 0044 <item>while</item> 0045 <item>if</item> 0046 <item>begin</item> 0047 <item>do</item> 0048 </list> 0049 <list name="cflow_eb"> 0050 <item>else</item> 0051 <item>elseif</item> 0052 <item>try</item> 0053 <item>catch</item> 0054 <item>finally</item> 0055 </list> 0056 <list name="cflow"> 0057 <item>break</item> 0058 <item>return</item> 0059 <item>continue</item> 0060 </list> 0061 <list name="block_begin"> 0062 <item>function</item> 0063 <item>let</item> 0064 <item>quote</item> 0065 <item>type</item> 0066 <item>struct</item> 0067 <item>module</item> 0068 <item>baremodule</item> 0069 <item>macro</item> 0070 </list> 0071 <list name="block_end"> 0072 <item>end</item> 0073 </list> 0074 <list name="keywords"> 0075 <item>abstract</item> 0076 <item>bitstype</item> 0077 <item>ccall</item> 0078 <item>const</item> 0079 <item>export</item> 0080 <item>global</item> 0081 <item>in</item> 0082 <item>local</item> 0083 <item>macro</item> 0084 <item>module</item> 0085 <item>where</item> 0086 <item>new</item> 0087 <item>in</item> 0088 <item>struct</item> 0089 <item>ans</item> 0090 <!-- C Interface --> 0091 <item>ccall</item> 0092 </list> 0093 <list name="import_keywords"> 0094 <item>import</item> 0095 <item>using</item> 0096 </list> 0097 <list name="types"> 0098 <item>AbstractArray</item> 0099 <item>AbstractMatrix</item> 0100 <item>AbstractVector</item> 0101 <item>Any</item> 0102 <item>Array</item> 0103 <item>ASCIIString</item> 0104 <item>Associative</item> 0105 <item>Bool</item> 0106 <item>ByteString</item> 0107 <item>Char</item> 0108 <item>Complex</item> 0109 <item>Complex64</item> 0110 <item>Complex128</item> 0111 <item>ComplexPair</item> 0112 <item>DArray</item> 0113 <item>Dict</item> 0114 <item>Exception</item> 0115 <item>Expr</item> 0116 <item>Float</item> 0117 <item>Float32</item> 0118 <item>Float64</item> 0119 <item>Function</item> 0120 <item>ObjectIdDict</item> 0121 <item>Int</item> 0122 <item>Int8</item> 0123 <item>Int16</item> 0124 <item>Int32</item> 0125 <item>Int64</item> 0126 <item>Integer</item> 0127 <item>IntSet</item> 0128 <item>IO</item> 0129 <item>IOStream</item> 0130 <item>Matrix</item> 0131 <item>Nothing</item> 0132 <item>None</item> 0133 <item>NTuple</item> 0134 <item>Number</item> 0135 <item>Ptr</item> 0136 <item>Range</item> 0137 <item>Range1</item> 0138 <item>Ranges</item> 0139 <item>Rational</item> 0140 <item>Real</item> 0141 <item>Regex</item> 0142 <item>RegexMatch</item> 0143 <item>Set</item> 0144 <item>Signed</item> 0145 <item>StridedArray</item> 0146 <item>StridedMatrix</item> 0147 <item>StridedVecOrMat</item> 0148 <item>StridedVector</item> 0149 <item>String</item> 0150 <item>SubArray</item> 0151 <item>SubString</item> 0152 <item>Symbol</item> 0153 <item>Task</item> 0154 <item>Tuple</item> 0155 <item>Type</item> 0156 <item>UInt</item> 0157 <item>UInt8</item> 0158 <item>UInt16</item> 0159 <item>UInt32</item> 0160 <item>UInt64</item> 0161 <item>Union</item> 0162 <item>Unsigned</item> 0163 <item>UTF8String</item> 0164 <item>VecOrMat</item> 0165 <item>Vector</item> 0166 <item>Void</item> 0167 <item>WeakRef</item> 0168 <!-- Essentials --> 0169 <item>Missing</item> 0170 <item>Cmd</item> 0171 <item>EnvDict</item> 0172 <item>VersionNumber</item> 0173 <item>ArgumentError</item> 0174 <item>AssertionError</item> 0175 <item>BoundsError</item> 0176 <item>CompositeException</item> 0177 <item>DimensionMismatch</item> 0178 <item>DivideError</item> 0179 <item>DomainError</item> 0180 <item>EOFError</item> 0181 <item>ErrorException</item> 0182 <item>InexactError</item> 0183 <item>InterruptException</item> 0184 <item>KeyError</item> 0185 <item>LoadError</item> 0186 <item>MethodError</item> 0187 <item>MissingException</item> 0188 <item>OutOfMemoryError</item> 0189 <item>ReadOnlyMemoryError</item> 0190 <item>OverflowError</item> 0191 <item>StackOverflowError</item> 0192 <item>SystemError</item> 0193 <item>TypeError</item> 0194 <item>UndefKeywordError</item> 0195 <item>UndefRefError</item> 0196 <item>UndefVarError</item> 0197 <item>StringIndexError</item> 0198 <item>InitError</item> 0199 <item>ExponentialBackOff</item> 0200 <item>Timer</item> 0201 <item>AsyncCondition</item> 0202 <item>ParseError</item> 0203 <!-- Collections and Data Structures --> 0204 <item>IteratorEltype</item> 0205 <item>AbstractRange</item> 0206 <item>OrdinalRange</item> 0207 <item>AbstractUnitRange</item> 0208 <item>StepRange</item> 0209 <item>UnitRange</item> 0210 <item>LinRange</item> 0211 <item>IdDict</item> 0212 <item>WeakKeyDict</item> 0213 <item>ImmutableDict</item> 0214 <item>BitSet</item> 0215 <item>Pair</item> 0216 <!-- Math --> 0217 <item>OneTo</item> 0218 <item>StepRangeLen</item> 0219 <item>RoundingMode</item> 0220 <!-- Numbers --> 0221 <item>AbstractFloat</item> 0222 <item>AbstractIrrational</item> 0223 <item>Float16</item> 0224 <item>Float32</item> 0225 <item>Float64</item> 0226 <item>BigFloat</item> 0227 <item>Int128</item> 0228 <item>UInt128</item> 0229 <item>BigInt</item> 0230 <item>ComplexF16</item> 0231 <item>ComplexF32</item> 0232 <item>ComplexF64</item> 0233 <item>Irrational</item> 0234 <item>UnionAll</item> 0235 <item>NamedTuple</item> 0236 <item>Val</item> 0237 <item>Vararg</item> 0238 <item>Some</item> 0239 <!-- String --> 0240 <item>AbstractChar</item> 0241 <item>SubstitutionString</item> 0242 <item>AbstractString</item> 0243 <!-- Array --> 0244 <item>UndefInitializer</item> 0245 <item>DenseArray</item> 0246 <item>DenseVector</item> 0247 <item>DenseMatrix</item> 0248 <item>BitArray</item> 0249 <item>IndexStyle</item> 0250 <item>IndexLinear</item> 0251 <item>IndexCartesian</item> 0252 <item>BroadcastStyle</item> 0253 <item>AbstractArrayStyle</item> 0254 <item>ArrayStyle</item> 0255 <item>DefaultArrayStyle</item> 0256 <item>Colon</item> 0257 <item>CartesianIndex</item> 0258 <item>CartesianIndices</item> 0259 <item>Dims</item> 0260 <item>LinearIndices</item> 0261 <item>PermutedDimsArray</item> 0262 <!-- Tasks --> 0263 <item>Condition</item> 0264 <item>Channel</item> 0265 <!-- Threads --> 0266 <item>Atomic</item> 0267 <item>AbstractLock</item> 0268 <item>ReentrantLock</item> 0269 <item>Mutex</item> 0270 <item>SpinLock</item> 0271 <item>RecursiveSpinLock</item> 0272 <item>Semaphore</item> 0273 <!-- Filesystem (Libc) --> 0274 <item>RawFD</item> 0275 <!-- I/O and Network --> 0276 <item>IOBuffer</item> 0277 <item>IOContext</item> 0278 <item>TextDisplay</item> 0279 <item>AbstractDisplay</item> 0280 <!-- Sort --> 0281 <item>PartialQuickSort</item> 0282 <!-- Iteration utilities --> 0283 <item>Stateful</item> 0284 <!-- Iterators --> 0285 <item>Pairs</item> 0286 <!-- C Interface --> 0287 <item>CFunction</item> 0288 <item>Ptr</item> 0289 <item>Ref</item> 0290 <item>Cchar</item> 0291 <item>Cuchar</item> 0292 <item>Cshort</item> 0293 <item>Cstring</item> 0294 <item>Cushort</item> 0295 <item>Cint</item> 0296 <item>Cuint</item> 0297 <item>Clong</item> 0298 <item>Culong</item> 0299 <item>Clonglong</item> 0300 <item>Culonglong</item> 0301 <item>Cintmax_t</item> 0302 <item>Cuintmax_t</item> 0303 <item>Csize_t</item> 0304 <item>Cssize_t</item> 0305 <item>Cptrdiff_t</item> 0306 <item>Cwchar_t</item> 0307 <item>Cwstring</item> 0308 <item>Cfloat</item> 0309 <item>Cdouble</item> 0310 <!-- C Standard Library --> 0311 <item>TmStruct</item> 0312 <!-- StackTraces --> 0313 <item>StackFrame</item> 0314 <item>StackTrace</item> 0315 <!-- Base64 --> 0316 <item>Base64EncodePipe</item> 0317 <item>Base64DecodePipe</item> 0318 <!-- Dates --> 0319 <item>Period</item> 0320 <item>CompoundPeriod</item> 0321 <item>Instant</item> 0322 <item>UTInstant</item> 0323 <item>TimeType</item> 0324 <item>DateTime</item> 0325 <item>Date</item> 0326 <item>Time</item> 0327 <item>DateFormat</item> 0328 <!-- Base.CoreLogging --> 0329 <item>LogLevel</item> 0330 <item>AbstractLogger</item> 0331 <item>NullLogger</item> 0332 <item>ConsoleLogger</item> 0333 <item>SimpleLogger</item> 0334 <!-- Mmap --> 0335 <item>Anonymous</item> 0336 <!-- Random --> 0337 <item>RandomDevice</item> 0338 <item>MersenneTwister</item> 0339 <!-- SharedArrays --> 0340 <item>SharedArray</item> 0341 <!-- Sockets --> 0342 <item>IPv4</item> 0343 <item>IPv6</item> 0344 <item>TCPSocket</item> 0345 <item>UDPSocket</item> 0346 <!-- SparseArrays --> 0347 <item>SparseVector</item> 0348 <item>SparseMatrixCSC</item> 0349 <!-- Others --> 0350 <item>AbstractChannel</item> 0351 <item>AbstractSet</item> 0352 <item>AbstractDict</item> 0353 <item>BitMatrix</item> 0354 <item>BitVector</item> 0355 <item>Enum</item> 0356 <item>CapturedException</item> 0357 <item>InvalidStateException</item> 0358 <item>ProcessFailedException</item> 0359 </list> 0360 0361 <list name="constants"> 0362 <!-- Constants --> 0363 <item>nothing</item> 0364 <item>PROGRAM_FILE</item> 0365 <item>ARGS</item> 0366 <item>C_NULL</item> 0367 <item>VERSION</item> 0368 <item>LOAD_PATH</item> 0369 <item>DEPOT_PATH</item> 0370 <!-- Sys --> 0371 <item>BINDIR</item> 0372 <item>CPU_THREADS</item> 0373 <item>WORD_SIZE</item> 0374 <item>KERNEL</item> 0375 <item>ARCH</item> 0376 <item>MACHINE</item> 0377 <!-- Essentials --> 0378 <item>missing</item> 0379 <item>devnull</item> 0380 <item>ENV</item> 0381 <!-- I/O and Network --> 0382 <item>stdout</item> 0383 <item>stderr</item> 0384 <item>stdin</item> 0385 <item>ENDIAN_BOM</item> 0386 <!-- Numbers --> 0387 <item>im</item> 0388 <item>pi</item> 0389 <item>π</item> 0390 <item>e</item> 0391 <item>ℯ</item> 0392 <item>catalan</item> 0393 <item>eulergamma</item> 0394 <item>ɣ</item> 0395 <item>golden</item> 0396 <item>φ</item> 0397 <item>Inf</item> 0398 <item>Inf64</item> 0399 <item>Inf32</item> 0400 <item>Inf16</item> 0401 <item>NaN</item> 0402 <item>NaN64</item> 0403 <item>NaN32</item> 0404 <item>NaN16</item> 0405 <!-- Math --> 0406 <item>RoundNearest</item> 0407 <item>RoundNearestTiesAway</item> 0408 <item>RoundNearestTiesUp</item> 0409 <item>RoundToZero</item> 0410 <item>RoundFromZero</item> 0411 <item>RoundUp</item> 0412 <item>RoundDown</item> 0413 <!-- Array --> 0414 <item>AbstractVecOrMat</item> 0415 <item>undef</item> 0416 <item>VecOrMat</item> 0417 <item>DenseVecOrMat</item> 0418 <item>StridedArray</item> 0419 <item>StridedVector</item> 0420 <item>StridedMatrix</item> 0421 <item>StridedVecOrMat</item> 0422 <!-- Sort --> 0423 <item>InsertionSort</item> 0424 <item>MergeSort</item> 0425 <item>QuickSort</item> 0426 <item>InsertionSort</item> 0427 <!-- Libc --> 0428 <item>MS_ASYNC</item> 0429 <item>MS_INVALIDATE</item> 0430 <item>MS_SYNC</item> 0431 </list> 0432 <list name="booleans"> 0433 <item>true</item> 0434 <item>false</item> 0435 </list> 0436 <list name="modules"> 0437 <item>Base</item> 0438 <item>Core</item> 0439 <item>Main</item> 0440 <item>Meta</item> 0441 <item>StackTraces</item> 0442 <item>Sys</item> 0443 <item>Libc</item> 0444 <item>Docs</item> 0445 <item>Threads</item> 0446 <item>Iterators</item> 0447 <item>Broadcast</item> 0448 <item>MathConstants</item> 0449 <item>Math</item> 0450 <item>Unicode</item> 0451 <item>Sort</item> 0452 <item>Artifacts</item> 0453 <item>Base64</item> 0454 <item>CRC32c</item> 0455 <item>Dates</item> 0456 <item>DelimitedFiles</item> 0457 <item>Distributed</item> 0458 <item>Downloads</item> 0459 <item>FileWatching</item> 0460 <item>Future</item> 0461 <item>InteractiveUtils</item> 0462 <item>LibGit2</item> 0463 <item>Libc</item> 0464 <item>Libdl</item> 0465 <item>LinearAlgebra</item> 0466 <item>Logging</item> 0467 <item>Mmap</item> 0468 <item>Pkg</item> 0469 <item>Printf</item> 0470 <item>Profile</item> 0471 <item>REPL</item> 0472 <item>Random</item> 0473 <item>SHA</item> 0474 <item>Serialization</item> 0475 <item>SharedArrays</item> 0476 <item>Sockets</item> 0477 <item>SparseArrays</item> 0478 <item>Statistics</item> 0479 <item>SuiteSparse</item> 0480 <item>TOML</item> 0481 <item>Test</item> 0482 <item>UUIDs</item> 0483 <item>CoreLogging</item> 0484 </list> 0485 <contexts> 0486 0487 <context name="_normal" attribute="Normal Text" lineEndContext="#stay"> 0488 <DetectSpaces /> 0489 0490 <!-- Blocks --> 0491 <keyword context="#stay" attribute="Keyword" String="block_begin" 0492 beginRegion="block" /> 0493 <keyword context="controlflow-block" attribute="Control Flow" String="cflow_begin" 0494 beginRegion="block" /> 0495 <keyword context="#stay" attribute="Control Flow" String="cflow"/> 0496 <WordDetect context="#stay" attribute="Keyword" String="end" 0497 endRegion="block" /> 0498 0499 <IncludeRules context="coderoot"/> 0500 </context> 0501 0502 <context name="subsetting" attribute="Normal Text" lineEndContext="#stay"> 0503 <DetectSpaces attribute="Normal Text"/> 0504 <WordDetect context="#stay" attribute="Keyword" String="end"/> 0505 <IncludeRules context="coderoot"/> 0506 <DetectChar attribute="Normal Text" context="#pop" char="]"/> 0507 </context> 0508 0509 <context name="coderoot" attribute="Normal Text" lineEndContext="#stay"> 0510 <!-- functions have to be before built-in types to properly match constructors --> 0511 <RegExpr context="#stay" attribute="Function" String="&function_begin_boundary;[^&function_disallowed_first_char;][^&function_disallowed_chars;]*!?(?=\.?\()" /> 0512 <RegExpr context="parametric-constructor" attribute="Function" String="&function_begin_boundary;[^&function_disallowed_first_char;][^&function_disallowed_chars;]*(?=\{.+\}.?\()" /> 0513 0514 <IncludeRules context="comment-rules"/> 0515 0516 <!-- Keywords, types --> 0517 <RegExpr context="#stay" attribute="Keyword" String="\b(abstract|primitive)\s+type\b|\bmutable\s+struct\b" beginRegion="block"/> 0518 <keyword context="#stay" attribute="Keyword" String="keywords" /> 0519 <keyword context="import" attribute="Import" String="import_keywords" /> 0520 <keyword context="#stay" attribute="Data Type" String="types" /> 0521 <keyword context="#stay" attribute="Boolean" String="booleans" /> 0522 <keyword context="#stay" attribute="Constant" String="constants" /> 0523 <keyword context="#stay" attribute="Module" String="modules" /> 0524 0525 <!-- Strings --> 0526 <StringDetect attribute="String" context="Block-String" String=""""" beginRegion="block-string"/> 0527 <DetectChar attribute="String" context="String" char="""/> 0528 <!-- Regular expressions --> 0529 <StringDetect attribute="String" context="Regex-Block-String" String="r"""" beginRegion="block-string"/> 0530 <Detect2Chars attribute="String" context="Regex-String" char="r" char1="""/> 0531 <!-- Byte Arrays --> 0532 <StringDetect attribute="String" context="Block-String" String="b"""" beginRegion="block-string"/> 0533 <Detect2Chars attribute="String" context="String" char="b" char1="""/> 0534 <!-- Version Number --> 0535 <Detect2Chars attribute="String" context="String" char="v" char1="""/> 0536 <!-- Raw Strings --> 0537 <StringDetect attribute="String" context="Raw-Block-String" String="raw"""" beginRegion="block-string"/> 0538 <StringDetect attribute="String" context="Raw-String" String="raw""/> 0539 <!-- Documentation --> 0540 <StringDetect attribute="String" context="Block-String" String="doc"""" beginRegion="block-string"/> 0541 <StringDetect attribute="String" context="String" String="doc""/> 0542 0543 <!-- For Running External Programs --> 0544 <StringDetect attribute="Command String" context="Block-Backtick-String" String="```" beginRegion="block-string"/> 0545 <DetectChar attribute="Command String" context="Backtick-String" char="`"/> 0546 0547 <!-- Subsetting. This is needed because the `end` keyword has a special meaning in subsetting operations and should not be used for folding --> 0548 <DetectChar attribute="Normal Text" context="subsetting" char="["/> 0549 0550 <Detect2Chars context="type-annotation" attribute="Operator" char=":" char1=":"/> 0551 0552 <!-- subtype operator --> 0553 <Detect2Chars context="type-annotation" attribute="Operator" char="<" char1=":"/> 0554 0555 <!-- Character operators 0556 this was generated semi-automatically using operators in https://github.com/JuliaLang/julia/blob/master/src/julia-parser.scm --> 0557 <RegExpr context="#stay" attribute="Operator" String="\.\.\.?|[:$]=?|\.?(?:>>>=|<-->|//=|<<=|>>=|-->|<--|===|!==|>>>|[-+*/\\^÷%|&⊻]=|=>|&&|\|\|?|>=|<=|==|!=|<\||\|>|\+\+|//|<<|>>|<:|>:|[\Q=≔⩴≕~←→↔↚↛↞↠↢↣↦↤↮⇎⇍⇏⇐⇒⇔⇴⇶⇷⇸⇹⇺⇻⇼⇽⇾⇿⟵⟶⟷⟹⟺⟻⟼⟽⟾⟿⤀⤁⤂⤃⤄⤅⤆⤇⤌⤍⤎⤏⤐⤑⤔⤕⤖⤗⤘⤝⤞⤟⤠⥄⥅⥆⥇⥈⥊⥋⥎⥐⥒⥓⥖⥗⥚⥛⥞⥟⥢⥤⥦⥧⥨⥩⥪⥫⥬⥭⥰⧴⬱⬰⬲⬳⬴⬵⬶⬷⬸⬹⬺⬻⬼⬽⬾⬿⭀⭁⭂⭃⭄⭇⭈⭉⭊⭋⭌←→⇜⇝↜↝↩↪↫↬↼↽⇀⇁⇄⇆⇇⇉⇋⇌⇚⇛⇠⇢↷↶↺↻><≥≤≡≠≢∈∉∋∌⊆⊈⊂⊄⊊∝∊∍∥∦∷∺∻∽∾≁≃≂≄≅≆≇≈≉≊≋≌≍≎≐≑≒≓≖≗≘≙≚≛≜≝≞≟≣≦≧≨≩≪≫≬≭≮≯≰≱≲≳≴≵≶≷≸≹≺≻≼≽≾≿⊀⊁⊃⊅⊇⊉⊋⊏⊐⊑⊒⊜⊩⊬⊮⊰⊱⊲⊳⊴⊵⊶⊷⋍⋐⋑⋕⋖⋗⋘⋙⋚⋛⋜⋝⋞⋟⋠⋡⋢⋣⋤⋥⋦⋧⋨⋩⋪⋫⋬⋭⋲⋳⋴⋵⋶⋷⋸⋹⋺⋻⋼⋽⋾⋿⟈⟉⟒⦷⧀⧁⧡⧣⧤⧥⩦⩧⩪⩫⩬⩭⩮⩯⩰⩱⩲⩳⩵⩶⩷⩸⩹⩺⩻⩼⩽⩾⩿⪀⪁⪂⪃⪄⪅⪆⪇⪈⪉⪊⪋⪌⪍⪎⪏⪐⪑⪒⪓⪔⪕⪖⪗⪘⪙⪚⪛⪜⪝⪞⪟⪠⪡⪢⪣⪤⪥⪦⪧⪨⪩⪪⪫⪬⪭⪮⪯⪰⪱⪲⪳⪴⪵⪶⪷⪸⪹⪺⪻⪼⪽⪾⪿⫀⫁⫂⫃⫄⫅⫆⫇⫈⫉⫊⫋⫌⫍⫎⫏⫐⫑⫒⫓⫔⫕⫖⫗⫘⫙⫷⫸⫹⫺⊢⊣⟂⫪⫫…⁝⋮⋱⋰⋯+-−¦|⊕⊖⊞⊟∪∨⊔±∓∔∸≏⊎⊻⊽⋎⋓⧺⧻⨈⨢⨣⨤⨥⨦⨧⨨⨩⨪⨫⨬⨭⨮⨹⨺⩁⩂⩅⩊⩌⩏⩐⩒⩔⩖⩗⩛⩝⩡⩢⩣*/⌿÷%&··⋅∘×\∩∧⊗⊘⊙⊚⊛⊠⊡⊓∗∙∤⅋≀⊼⋄⋆⋇⋉⋊⋋⋌⋏⋒⟑⦸⦼⦾⦿⧶⧷⨇⨰⨱⨲⨳⨴⨵⨶⨷⨸⨻⨼⨽⩀⩃⩄⩋⩍⩎⩑⩓⩕⩘⩚⩜⩞⩟⩠⫛⊍▷⨝⟕⟖⟗⨟^↑↓⇵⟰⟱⤈⤉⤊⤋⤒⤓⥉⥌⥍⥏⥑⥔⥕⥘⥙⥜⥝⥠⥡⥣⥥⥮⥯↑↓\E])" /> 0558 0559 <!-- Identifiers, numbers --> 0560 <!-- We can't use HlCHex, Int, and Float because we need to allow the "im" at the end of complex numbers --> 0561 <DetectIdentifier context="_adjoint" attribute="Variable" /> 0562 <RegExpr context="_adjoint" attribute="Float" String="0x(&hex;\.?|(&hex;)?\.&hex;)[pP][+-]?[0-9]+(im)?"/> 0563 <RegExpr context="_adjoint" attribute="Hex" String="0x&hex;(im)?" /> 0564 <RegExpr context="_adjoint" attribute="Octal" String="0o[0-7]+(_[0-7]+)*(im)?" /> 0565 <RegExpr context="_adjoint" attribute="Binary" String="0b[01]+(_[01]+)*(im)?" /> 0566 <RegExpr context="_adjoint" attribute="Float" String="(∫(\.∫)?|\.∫)([eEfF][+-]?\d+)?(im)?" /> 0567 0568 <!-- If ' is not the adjoint operator, it starts a character or an unterminated char --> 0569 <RegExpr context="#stay" attribute="Char" String="'[^']*(''[^']*)*'(?=[^']|$)" /> 0570 <RegExpr context="#stay" attribute="Incomplete Char" String="'[^']*(''[^']*)*" /> 0571 0572 <RegExpr context="#stay" attribute="Macro" String="@[a-zA-Z_]\w*" /> 0573 </context> 0574 0575 <!-- Context for user block (#BEGIN...#END) --> 0576 <context name="region_marker" lineEndContext="#pop" attribute="FoldingComment" > 0577 <IncludeRules context="1-comment" /> 0578 </context> 0579 0580 <!-- Context entered after encountering an identifier or a number --> 0581 <context name="_adjoint" attribute="Operator" lineEndContext="#pop" fallthroughContext="#pop"> 0582 <DetectChar attribute="Operator" char="'" /> 0583 </context> 0584 0585 <!-- Context entered after encountering an " (string) --> 0586 <context attribute="String" lineEndContext="#pop" name="String"> 0587 <DetectSpaces /> 0588 <LineContinue attribute="String" context="#stay"/> 0589 <HlCStringChar attribute="String Char" context="#stay"/> 0590 <IncludeRules context="string-interpolation-rules"/> 0591 <DetectChar attribute="String" context="#pop" char="""/> 0592 </context> 0593 <context attribute="String" lineEndContext="#stay" name="Block-String"> 0594 <DetectSpaces /> 0595 <StringDetect attribute="String" context="#pop" String=""""" endRegion="block-string"/> 0596 <IncludeRules context="string-interpolation-rules"/> 0597 <HlCStringChar attribute="String Char" context="#stay"/> 0598 </context> 0599 <!-- Raw String --> 0600 <context attribute="String" lineEndContext="#pop" name="Raw-String"> 0601 <DetectSpaces /> 0602 <LineContinue attribute="String" context="#stay"/> 0603 <RegExpr attribute="String Char" context="#stay" String="(\\\\)*\\"|(\\\\)+(?=")"/> 0604 <DetectChar attribute="String" context="#pop" char="""/> 0605 </context> 0606 <context attribute="String" lineEndContext="#stay" name="Raw-Block-String"> 0607 <DetectSpaces /> 0608 <StringDetect attribute="String" context="#pop" String=""""" endRegion="block-string"/> 0609 </context> 0610 <!-- Command String --> 0611 <context attribute="Command String" lineEndContext="#pop" name="Backtick-String"> 0612 <DetectSpaces /> 0613 <LineContinue attribute="Command String" context="#stay"/> 0614 <HlCStringChar attribute="String Char" context="#stay"/> 0615 <DetectChar attribute="Command String" context="#pop" char="`"/> 0616 </context> 0617 <context attribute="Command String" lineEndContext="#stay" name="Block-Backtick-String"> 0618 <DetectSpaces /> 0619 <StringDetect attribute="Command String" context="#pop" String="```" endRegion="block-string"/> 0620 <HlCStringChar attribute="String Char" context="#stay"/> 0621 </context> 0622 0623 <!-- Regular expressions --> 0624 <context attribute="String" lineEndContext="#pop" name="Regex-String"> 0625 <RegExpr attribute="String" context="#pop" String=""[imsx]{1,4}"/> 0626 <Detect2Chars attribute="Char" context="Regex-Square-Bracket" char="[" char1="^"/> 0627 <DetectChar attribute="Char" context="Regex-Square-Bracket" char="["/> 0628 <IncludeRules context="Default-Regex"/> 0629 <IncludeRules context="String"/> 0630 </context> 0631 <context attribute="String" lineEndContext="#stay" name="Regex-Block-String"> 0632 <RegExpr attribute="String" context="#pop" String=""{3}[imsx]{1,4}" endRegion="block-string"/> 0633 <Detect2Chars attribute="Char" context="Block-Regex-Square-Bracket" char="[" char1="^"/> 0634 <DetectChar attribute="Char" context="Block-Regex-Square-Bracket" char="["/> 0635 <IncludeRules context="Default-Regex"/> 0636 <IncludeRules context="Block-String"/> 0637 </context> 0638 0639 <context attribute="String" lineEndContext="#pop" name="Regex-Square-Bracket"> 0640 <LineContinue attribute="String" context="#stay"/> 0641 <RegExpr attribute="String Char" context="#stay" String="\\." /> 0642 <DetectChar attribute="Char" context="#pop" char="]"/> 0643 <DetectChar attribute="String" context="#pop" char=""" lookAhead="true"/> 0644 </context> 0645 <context attribute="String" lineEndContext="#stay" name="Block-Regex-Square-Bracket"> 0646 <RegExpr attribute="String Char" context="#stay" String="\\." /> 0647 <DetectChar attribute="Char" context="#pop" char="]"/> 0648 <StringDetect attribute="String" context="#pop" String=""""" lookAhead="true"/> 0649 </context> 0650 <context attribute="String" lineEndContext="#stay" name="Default-Regex"> 0651 <RegExpr attribute="String Char" context="#stay" String="\\." /> 0652 <Detect2Chars attribute="Char" context="#stay" char="(" char1="?"/> 0653 <AnyChar attribute="Char" context="#stay" String="()|"/> 0654 <AnyChar attribute="String Char" context="#stay" String="?+*." /> 0655 </context> 0656 0657 <context name="string-interpolation-rules" lineEndContext="#stay" attribute="String"> 0658 <Detect2Chars context="#stay" attribute="String" char="\" char1="$"/> 0659 <RegExpr context="string-interpolation" attribute="String Char" String="\$(?:\S)" lookAhead="true"/> 0660 </context> 0661 <context name="string-interpolation" lineEndContext="#stay" attribute="String"> 0662 <DetectChar attribute="String Char" char="$"/> 0663 <DetectIdentifier attribute="Variable" context="#pop"/> 0664 <DetectChar char="(" context="string-interpolation-extended" attribute="Normal Text"/> 0665 </context> 0666 <context name="string-interpolation-extended" lineEndContext="#stay" attribute="Normal Text"> 0667 <IncludeRules context="_normal"/> 0668 <DetectChar char="(" context="string-interpolation-internal" attribute="Normal Text"/> 0669 <DetectChar char=")" context="#pop#pop" attribute="Normal Text"/> 0670 </context> 0671 <context name="string-interpolation-internal" lineEndContext="#stay" attribute="Normal Text"> 0672 <IncludeRules context="_normal"/> 0673 <DetectChar char="(" context="string-interpolation-internal" attribute="Normal Text"/> 0674 <DetectChar char=")" context="#pop" attribute="Normal Text"/> 0675 </context> 0676 0677 <!-- 1-line comment: #pop@EOL --> 0678 <context name="1-comment" lineEndContext="#pop" attribute="Comment"> 0679 <DetectSpaces/> 0680 <IncludeRules context="##Comments"/> 0681 <DetectIdentifier/> 0682 </context> 0683 0684 <context name="block-comment" lineEndContext="#stay" attribute="Comment"> 0685 <Detect2Chars char="=" char1="#" context="#pop" attribute="Comment" endRegion="block-comment"/> 0686 <IncludeRules context="1-comment" /> 0687 </context> 0688 <context name="controlflow-block" lineEndContext="#stay" attribute="Normal Text"> 0689 <keyword context="#stay" attribute="Control Flow" String="cflow_eb" endRegion="block" beginRegion="block" /> 0690 <WordDetect context="#pop" attribute="Control Flow" String="end" endRegion="block" /> 0691 <IncludeRules context="_normal" /> 0692 </context> 0693 <context name="parametric-type" lineEndContext="#stay" attribute="Data Type"> 0694 <DetectChar char="{" context="parametric-type" attribute="Data Type"/> 0695 <DetectChar char="}" context="#pop" attribute="Data Type"/> 0696 </context> 0697 <context name="parametric-constructor" lineEndContext="#stay" attribute="Data Type"> 0698 <DetectChar char="{" context="parametric-type" attribute="Data Type"/> 0699 <AnyChar String=",;()=:><&%*?[]^" attribute="Normal Text" context="#pop"/> 0700 </context> 0701 0702 <!-- we have to allow spaces before the type, but switch to the parent context after the type --> 0703 <context name="type-annotation-internal" lineEndContext="#pop#pop" attribute="Data Type"> 0704 <DetectChar char="{" context="parametric-type" attribute="Data Type"/> 0705 <AnyChar String=",;()=:><&%*?[]^}" context="#pop#pop" attribute="Normal Text"/> 0706 <DetectSpaces context="#pop#pop"/> 0707 </context> 0708 <context name="type-annotation" lineEndContext="#pop" attribute="Data Type"> 0709 <DetectIdentifier context="type-annotation-internal" attribute="Data Type"/> 0710 </context> 0711 0712 <!-- rules for comments, to be used by other contexts --> 0713 <context name="comment-rules" lineEndContext="#pop" attribute="Comment"> 0714 <StringDetect String="#BEGIN" context="region_marker" attribute="FoldingComment" beginRegion="user_region" /> 0715 <StringDetect String="#END" context="region_marker" attribute="FoldingComment" endRegion="user_region" /> 0716 <Detect2Chars char="#" char1="=" context="block-comment" attribute="Comment" beginRegion="block-comment"/> 0717 <DetectChar char="#" context="1-comment" attribute="Comment"/> 0718 </context> 0719 0720 <!-- context for imports --> 0721 <context name="import" lineEndContext="#stay" lineEmptyContext="#stay" attribute="Normal Text"> 0722 <DetectSpaces attribute="Normal Text"/> 0723 <IncludeRules context="comment-rules"/> 0724 <RegExpr attribute="Module" context="import_list" String="[^:,\s]+"/> 0725 </context> 0726 <context name="import_list" lineEndContext="#pop#pop" attribute="Normal Text"> 0727 <DetectSpaces attribute="Normal Text"/> 0728 <IncludeRules context="comment-rules"/> 0729 <DetectChar attribute="Normal Text" context="#pop" char=","/> 0730 <DetectChar attribute="Normal Text" context="#pop!import_vars" char=":"/> 0731 </context> 0732 <context name="import_vars" lineEndContext="#stay" lineEmptyContext="#stay" attribute="Normal Text"> 0733 <DetectSpaces attribute="Normal Text"/> 0734 <IncludeRules context="comment-rules"/> 0735 <!-- we don't know if these are types, variables, or functions, 0736 so no highlighting here --> 0737 <RegExpr attribute="Normal Text" context="#stay" String="[^:,\s]+\s*(?=,)"/> 0738 <RegExpr attribute="Normal Text" context="#pop#pop" String="[^:,\s]+\s*(?![,:])"/> 0739 </context> 0740 </contexts> 0741 0742 <itemDatas> 0743 <itemData name="Normal Text" defStyleNum="dsNormal" /> 0744 <itemData name="Variable" defStyleNum="dsNormal" /> 0745 <itemData name="Operator" defStyleNum="dsOperator"/> 0746 <itemData name="Float" defStyleNum="dsFloat" /> 0747 <itemData name="Hex" defStyleNum="dsBaseN" /> 0748 <itemData name="Octal" defStyleNum="dsBaseN" /> 0749 <itemData name="Binary" defStyleNum="dsBaseN" /> 0750 <itemData name="String" defStyleNum="dsString"/> 0751 <itemData name="String Char" defStyleNum="dsSpecialChar"/> 0752 <itemData name="Char" defStyleNum="dsChar"/> 0753 <itemData name="Incomplete Char" defStyleNum="dsChar"/> 0754 <itemData name="Keyword" defStyleNum="dsKeyword"/> 0755 <itemData name="Import" defStyleNum="dsImport"/> 0756 <itemData name="Control Flow" defStyleNum="dsControlFlow" /> 0757 <itemData name="Data Type" defStyleNum="dsDataType"/> 0758 <itemData name="Constant" defStyleNum="dsConstant"/> 0759 <itemData name="Boolean" defStyleNum="dsConstant"/> 0760 <itemData name="Macro" defStyleNum="dsPreprocessor"/> 0761 <itemData name="Module" defStyleNum="dsBuiltIn"/> 0762 <itemData name="Function" defStyleNum="dsFunction"/> 0763 <itemData name="Command String" defStyleNum="dsSpecialString"/> 0764 <itemData name="Comment" defStyleNum="dsComment"/> 0765 <itemData name="FoldingComment" defStyleNum="dsRegionMarker" /> 0766 </itemDatas> 0767 0768 </highlighting> 0769 0770 <general> 0771 <comments> 0772 <comment name="singleLine" start="#" /> 0773 <comment name="multiLine" start="#=" end="=#" region="block-comment" /> 0774 </comments> 0775 <keywords casesensitive="1" weakDeliminator=""/> 0776 </general> 0777 0778 </language> 0779 0780 <!-- It's recommended to put the following line in the Variables field under Settings->Configure Kate->Open/Save->Modes&Filetypes --> 0781 <!-- kate: space-indent on; indent-width 2; mixed-indent off; indent-mode cstyle; -->