[gtksourceview] Add support for the Julia language



commit b6e29a6ec2799d6d9f5b2723935f8f7bc3111116
Author: Waldir Pimenta <waldir email com>
Date:   Wed May 15 21:14:16 2013 +0100

    Add support for the Julia language
    
    See http://julialang.org
    
    Signed-off-by: Carnë Draug <carandraug+dev gmail com>

 data/language-specs/Makefile.am |    1 +
 data/language-specs/julia.lang  |  379 +++++++++++++++++++++++++++++++++++++++
 po/POTFILES.in                  |    1 +
 3 files changed, 381 insertions(+), 0 deletions(-)
---
diff --git a/data/language-specs/Makefile.am b/data/language-specs/Makefile.am
index 4bf0318..da45bd0 100644
--- a/data/language-specs/Makefile.am
+++ b/data/language-specs/Makefile.am
@@ -53,6 +53,7 @@ LANGUAGES =                   \
        java.lang               \
        javascript.lang         \
        json.lang               \
+       julia.lang              \
        latex.lang              \
        libtool.lang            \
        lua.lang                \
diff --git a/data/language-specs/julia.lang b/data/language-specs/julia.lang
new file mode 100644
index 0000000..8a72c0e
--- /dev/null
+++ b/data/language-specs/julia.lang
@@ -0,0 +1,379 @@
+<?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>
+      <!-- http://docs.julialang.org/en/latest/stdlib/constants/ -->
+      <keyword>ARGS</keyword>
+      <keyword>LOAD_PATH</keyword>
+      <keyword>CPU_CORES</keyword>
+      <keyword>OS_NAME</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>T</keyword>
+      <keyword>ANY</keyword>
+    </context>
+
+    <!-- http://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>
+
+    <!-- http://docs.julialang.org/en/latest/stdlib/punctuation.html -->
+    <context id="punctuation" style-ref="operator">
+      <match extended="true">
+        \(|\)        |
+        \[|\]        |
+        \{|\}        |
+        \.|,|;|\?    |
+        \.\.\.
+      </match>
+    </context>
+
+    <!-- See *lang_keywords[] in ui/repl-readline.c for a list -->
+    <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>immutable</keyword>
+      <keyword>let</keyword>
+      <keyword>quote</keyword>
+      <keyword>try</keyword>
+      <keyword>type</keyword>
+      <keyword>while</keyword>
+      <keyword>catch</keyword>
+      <keyword>finally</keyword>
+      <keyword>else</keyword>
+      <keyword>elseif</keyword>
+      <keyword>end</keyword>
+      <!-- keywords -->
+      <keyword>abstract</keyword>
+      <keyword>bitstype</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 http://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>subtype</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">
+      <!-- http://docs.julialang.org/en/latest/manual/modules/#standard-modules -->
+      <keyword>Base</keyword>
+      <keyword>Core</keyword> 
+      <keyword>Main</keyword> 
+      <!-- exports.jl -->
+      <keyword>PCRE</keyword>
+      <keyword>FFTW</keyword>
+      <keyword>Collections</keyword>
+      <keyword>DSP</keyword>
+      <keyword>LinAlg</keyword>
+      <keyword>LibRandom</keyword>
+      <keyword>Random</keyword>
+      <keyword>Math</keyword>
+      <keyword>MPFR</keyword>
+      <keyword>GMP</keyword>
+      <keyword>Sort</keyword>
+      <keyword>Test</keyword>
+      <keyword>Pkg</keyword>
+      <keyword>Operators</keyword>
+      <keyword>Errno</keyword>
+      <keyword>Meta</keyword>
+      <keyword>Graphics</keyword>
+    </context>
+
+    <!-- Sources: base/exports.jl and examples/typetree.jl -->
+    <context id="type" style-ref="type">
+      <keyword>Any|None|Nothing|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>(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|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>AsyncStream</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>InetAddr</keyword>
+      <keyword>IpAddr|IPv[46]</keyword>
+      <keyword>(Key|Value)Iterator</keyword>
+      <keyword>LambdaStaticData</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>NamedPipe</keyword>
+      <keyword>(Getfield|Goto|Label|LineNumber|Quote)Node</keyword>
+      <keyword>NotFound</keyword>
+      <keyword>OS_FD</keyword>
+      <keyword>ObjectIdDict</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>RemoteRef</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>TTY</keyword>
+      <keyword>Task</keyword>
+      <keyword>TcpSocket</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>Woodbury</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>
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 8273b73..0accf6f 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -51,6 +51,7 @@ data/language-specs/java.lang
 data/language-specs/javascript.lang
 data/language-specs/j.lang
 data/language-specs/json.lang
+data/language-specs/julia.lang
 data/language-specs/latex.lang
 data/language-specs/libtool.lang
 data/language-specs/lua.lang


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]