Permalink
Switch branches/tags
Find file
Fetching contributors…
Cannot retrieve contributors at this time
362 lines (336 sloc) 13 KB
<?xml version="1.0" encoding="UTF-8"?>
<!--
This file is part of GtkSourceView
Authors: Waldir Pimenta
Copyright (C) 2013 Waldir Pimenta <waldir@email.com>
GtkSourceView is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
GtkSourceView is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-->
<language id="julia" _name="Julia" version="2.0" _section="Scientific" >
<metadata>
<property name="mimetypes" >text/x-julia;application/x-julia</property>
<property name="globs" >*.jl</property>
<property name="line-comment-start" >#</property>
</metadata>
<!--
A list of styles can be defined here, and optionally mapped to the default styles.
The full list of available styles can be found in the `def.lang` file:
https://git.gnome.org/browse/gtksourceview/tree/data/language-specs/def.lang
-->
<styles>
<style id="string" _name="String" map-to="def:string" />
<style id="character" _name="Character" map-to="def:character" />
<style id="number" _name="Number" map-to="def:number" />
<style id="boolean" _name="Boolean" map-to="def:boolean" />
<style id="math-constant" _name="Math constant" map-to="def:constant" />
<style id="special-constant" _name="Special constant" map-to="def:special-constant" />
<style id="operator" _name="Operator" map-to="def:operator" />
<style id="keyword" _name="Keyword" map-to="def:keyword" />
<style id="macro" _name="Macro" map-to="def:keyword" />
<style id="external-command" _name="External command" map-to="def:constant" />
<style id="builtin-function" _name="Built-in function" map-to="def:builtin" />
<style id="module" _name="Module" map-to="def:builtin" />
<style id="type" _name="Type" map-to="def:type" />
</styles>
<definitions>
<context id="string" style-ref="string" class="string" class-disabled="no-spell-check">
<start>"</start>
<end>"</end>
<include>
<context ref="def:escape" />
</include>
</context>
<!--
This context needs to be defined before the "operator" context,
so it takes precedence over the transpose operator, '
-->
<context id="character" style-ref="character">
<match extended="true">
'(
([^\\']|\\.) |
\\[0-7]{1,3} |
\\x[0-9a-fA-F]{1,2} |
\\u[0-9a-fA-F]{1,3} |
\\u[0-9a-cA-C][0-9a-fA-F]{3} |
\\u[dD][0-7][0-9a-fA-F]{2} |
\\U[0-9a-fA-F]{1,5} |
\\U10[0-9a-fA-F]{4}
)'
</match>
</context>
<context id="number" style-ref="number">
<match extended="true">
(?&lt;!\w) 0b[01]+ | # binary
(?&lt;!\w) 0o[0-7]+ | # octal
(?&lt;!\w) 0x[0-9a-fA-F]+ | # hexadecimal
(?&lt;!\w) (\d+(\.\d+)?|\.\d+)([eE][+-]?\d+)? # decimal
</match>
</context>
<context id="boolean" style-ref="boolean">
<keyword>true|false</keyword>
</context>
<context id="math-constant" style-ref="math-constant">
<match extended="true">
(?&lt;=\d|\b) pi \b |
(?&lt;=\d|\b) e \b |
(?&lt;=\d|\b) im \b |
(?&lt;=\d|\b) Inf(32)? \b |
(?&lt;=\d|\b) NaN(32)? \b
</match>
</context>
<context id="special-constant" style-ref="special-constant">
<keyword>nothing</keyword>
<!-- https://docs.julialang.org/en/latest/stdlib/constants/ -->
<keyword>ARGS</keyword>
<keyword>LOAD_PATH</keyword>
<keyword>CPU_CORES</keyword>
<keyword>C_NULL</keyword>
<keyword>WORD_SIZE</keyword>
<keyword>VERSION</keyword>
<!-- exports.jl -->
<keyword>ENDIAN_BOM</keyword>
<keyword>ENV</keyword>
<keyword>STDERR</keyword>
<keyword>STDIN</keyword>
<keyword>STDOUT</keyword>
<!-- type-related -->
<keyword>ANY</keyword>
</context>
<!-- https://docs.julialang.org/en/latest/manual/mathematical-operations.html -->
<context id="operator">
<include>
<context ref="octave:operator" />
<context id="julia-operators" style-ref="operator">
<match extended="true">
[$%]=? |
\.[&lt;&gt;%'] |
\.[&lt;&gt;=!]=
</match>
</context>
</include>
</context>
<!-- https://docs.julialang.org/en/latest/stdlib/punctuation.html -->
<context id="punctuation" style-ref="operator">
<match extended="true">
\(|\) |
\[|\] |
\{|\} |
\.|,|;|\? |
\.\.\.
</match>
</context>
<context id="keyword" style-ref="keyword">
<!-- code blocks -->
<keyword>begin</keyword>
<keyword>do</keyword>
<keyword>for</keyword>
<keyword>in</keyword>
<keyword>function</keyword>
<keyword>if</keyword>
<keyword>struct</keyword>
<keyword>let</keyword>
<keyword>quote</keyword>
<keyword>try</keyword>
<keyword>mutable type</keyword>
<keyword>while</keyword>
<keyword>catch</keyword>
<keyword>finally</keyword>
<keyword>else</keyword>
<keyword>elseif</keyword>
<keyword>end</keyword>
<!-- keywords -->
<keyword>abstract type</keyword>
<keyword>primitive type</keyword>
<keyword>break</keyword>
<keyword>ccall</keyword>
<keyword>const</keyword>
<keyword>continue</keyword>
<keyword>export</keyword>
<keyword>global</keyword>
<keyword>import</keyword>
<keyword>importall</keyword>
<keyword>local</keyword>
<keyword>macro</keyword>
<keyword>module</keyword>
<keyword>baremodule</keyword>
<keyword>return</keyword>
<keyword>typealias</keyword>
<keyword>using</keyword>
</context>
<!-- See https://docs.julialang.org/en/latest/manual/running-external-programs/ -->
<context id="external-command" style-ref="external-command" >
<start>`</start>
<end>`</end>
</context>
<!-- jl_init_primitives() in src/builtins.c -->
<!-- TODO: once the standard library is stabilized,
add more from exports.jl -->
<context id="builtin-function" style-ref="builtin-function">
<keyword>is</keyword>
<keyword>typeof</keyword>
<keyword>isa</keyword>
<keyword>typeassert</keyword>
<keyword>apply</keyword>
<keyword>kwcall</keyword>
<keyword>throw</keyword>
<keyword>tuple</keyword>
<keyword>Union</keyword>
<keyword>method_exists</keyword>
<keyword>applicable</keyword>
<keyword>invoke</keyword>
<keyword>eval</keyword>
<keyword>isdefined</keyword>
<keyword>yieldto</keyword>
</context>
<context id="module" style-ref="module">
<!-- https://docs.julialang.org/en/latest/manual/modules/#standard-modules -->
<keyword>Base</keyword>
<keyword>Core</keyword>
<keyword>Main</keyword>
<!-- exports.jl -->
<keyword>Collections</keyword>
<keyword>Test</keyword>
<keyword>Pkg</keyword>
<keyword>Operators</keyword>
<keyword>Meta</keyword>
<keyword>Graphics</keyword>
</context>
<!-- Sources: base/exports.jl and examples/typetree.jl -->
<context id="type" style-ref="type">
<keyword>Any|Void</keyword>
<keyword>Type(Constructor|Name|Var|_Array)?|(Union|Data|NonTuple)Type</keyword>
<keyword>(Abstract|Strided|Bit)?(Array|Matrix|Vector)</keyword>
<keyword>Abstract(Cmd|RNG|SparseMatrix)</keyword>
<keyword>(Abstract|Strided)?VecOrMat</keyword>
<keyword>SparseMatrixCSC</keyword>
<keyword>(D|Sub((Or)?D)?)Array</keyword>
<keyword>Chars?</keyword>
<keyword>(Abstract|ASCII|Byte|Char|DirectIndex|Generic|Rep|Rev|Rope|Sub|UTF8)String</keyword>
<keyword>Bool</keyword>
<keyword>Number</keyword>
<keyword>Real</keyword>
<keyword>Rational</keyword>
<keyword>ImaginaryUnit</keyword>
<keyword>Signed|Unsigned</keyword>
<keyword>Int(eger|Set|8|16|32|64|128)?</keyword>
<keyword>UInt(8|16|32|64|128)?</keyword>
<keyword>Float(ingPoint|16|32|64)</keyword>
<keyword>Complex(Pair|64|128)?</keyword>
<keyword>Big(Int|Float)</keyword>
<keyword>C(float|double|ptrdiff_t|u?(int|long(long)?|char|short)|s?size_t|wchar_t)</keyword>
<keyword>(Argument|Bounds|Divide|Domain|EOF|Inexact|Key|Load|Memory|Method|Parse|(Stack)?Overflow|System|Type|UV|UndefRef)Error</keyword>
<keyword>(Error|Interrupt|Disconnect)?Exception</keyword>
<keyword>Algorithm</keyword>
<keyword>Associative</keyword>
<keyword>Box</keyword>
<keyword>BunchKaufman</keyword>
<keyword>CPUinfo</keyword>
<keyword>CallStack</keyword>
<keyword>Callback</keyword>
<keyword>Cholesky</keyword>
<keyword>CholeskyPivoted</keyword>
<keyword>Cmd(Redirect)?</keyword>
<keyword>(And|Or)Cmds</keyword>
<keyword>Colon</keyword>
<keyword>LU|(((Sym|LDLT|LU)?Tr|B)id|D)iagonal</keyword>
<keyword>Dict</keyword>
<keyword>EachLine</keyword>
<keyword>Eigen</keyword>
<keyword>EmptyCallStack</keyword>
<keyword>Enumerate</keyword>
<keyword>EnvHash</keyword>
<keyword>Executable</keyword>
<keyword>Expr(Node)?</keyword>
<keyword>Factorization</keyword>
<keyword>FDWatcher</keyword>
<keyword>(Abstract)?File</keyword>
<keyword>File(Monitor|Offset)</keyword>
<keyword>Filter</keyword>
<keyword>(Intrinsic)?Function</keyword>
<keyword>Hermitian</keyword>
<keyword>Hessenberg</keyword>
<keyword>IO(Buffer|Stream)?</keyword>
<keyword>IPAddr|IPv[46]</keyword>
<keyword>InetAddr</keyword>
<keyword>(Key|Value)Iterator</keyword>
<keyword>LambdaInfo</keyword>
<keyword>LocalProcess</keyword>
<keyword>Long(Expr|Symbol|Tuple)</keyword>
<keyword>MersenneTwister</keyword>
<keyword>Method(Table)?</keyword>
<keyword>MmapArrayInfo</keyword>
<keyword>Module</keyword>
<keyword>NTuple</keyword>
<keyword>(Getfield|Goto|Label|LineNumber|Quote)Node</keyword>
<keyword>NotFound</keyword>
<keyword>OS_FD</keyword>
<keyword>ObjectIdDict</keyword>
<keyword>Pipe</keyword>
<keyword>PollingFileWatcher</keyword>
<keyword>Process(Chain(OrNot)?|Group)?</keyword>
<keyword>Ptr</keyword>
<keyword>QR(Pivoted)?</keyword>
<keyword>Range(s|1|Index|VecIntList)?</keyword>
<keyword>RawOrBoxedHandle</keyword>
<keyword>Redirectable</keyword>
<keyword>Regex(Match(Iterator)?)?</keyword>
<keyword>Rest</keyword>
<keyword>Reverse</keyword>
<keyword>(Generalized)?(SVD|Schur)</keyword>
<keyword>Set</keyword>
<keyword>Socket</keyword>
<keyword>(Merge|Insertion|Tim|Quick)Sort</keyword>
<keyword>SpawnNullStream</keyword>
<keyword>Stat</keyword>
<keyword>StateUpdate</keyword>
<keyword>StaticVarInfo</keyword>
<keyword>Symbol(Node)?</keyword>
<keyword>TCPSocket</keyword>
<keyword>TTY</keyword>
<keyword>Task</keyword>
<keyword>TmStruct</keyword>
<keyword>Top(Node)?</keyword>
<keyword>Triangular</keyword>
<keyword>UV(Handle|PollingWatcher|Stream)</keyword>
<keyword>UDPSocket</keyword>
<keyword>Undef(RefTag)?</keyword>
<keyword>VarTable</keyword>
<keyword>Vararg</keyword>
<keyword>VersionNumber</keyword>
<keyword>Wait(For|Task)</keyword>
<keyword>Weak(KeyDict|Ref)</keyword>
<keyword>(Timeout|Idle|Single)?AsyncWork</keyword>
<keyword>Work(er|Item)</keyword>
<keyword>Zip</keyword>
</context>
<context id="julia" class="no-spell-check">
<include>
<context ref="def:shebang" />
<context ref="def:shell-like-comment" />
<context ref="string" />
<context ref="character" />
<context ref="number" />
<context ref="boolean" />
<context ref="math-constant" />
<context ref="special-constant" />
<context ref="operator" />
<context ref="punctuation" />
<context ref="keyword" />
<context ref="external-command" />
<context ref="builtin-function" />
<context ref="module" />
<context ref="type" />
<context ref="octave:function-handle" style-ref="macro" />
</include>
</context>
</definitions>
</language>