[gtksourceview] rust.lang: Add invalid number highlighting



commit 1119d208db1c00b8561abf5f575bb95733e237cf
Author: Garrett Regier <garrettregier gmail com>
Date:   Fri Aug 26 10:06:48 2016 -0700

    rust.lang: Add invalid number highlighting

 data/language-specs/rust.lang |   22 +++++++++++++++++++---
 1 files changed, 19 insertions(+), 3 deletions(-)
---
diff --git a/data/language-specs/rust.lang b/data/language-specs/rust.lang
index 8ea2c58..744cb38 100644
--- a/data/language-specs/rust.lang
+++ b/data/language-specs/rust.lang
@@ -163,6 +163,10 @@ except according to those terms.
       \%{int-suffix}|\%{float-suffix}
     </define-regex>
 
+    <define-regex id="bin-digit" extended="true">
+      [01]
+    </define-regex>
+
     <define-regex id="hex-digit" extended="true">
       [0-9a-fA-F]
     </define-regex>
@@ -175,9 +179,8 @@ except according to those terms.
       <match extended="true">
         ((?&lt;=\.\.)|(?&lt;![\w\.]))
         (
-        [1-9][0-9_]*\%{num-suffix}?|
-        0[0-9_]*\%{num-suffix}?|
-        0b[01_]+\%{int-suffix}?|
+        [0-9][0-9_]*\%{num-suffix}?|
+        0b(\%{bin-digit}|_)+\%{int-suffix}?|
         0o(\%{oct-digit}|_)+\%{int-suffix}?|
         0x(\%{hex-digit}|_)+\%{int-suffix}?
         )
@@ -185,6 +188,18 @@ except according to those terms.
       </match>
     </context>
 
+    <context id="invalid-number" style-ref="error">
+      <match extended="true">
+        ((?&lt;=\.\.)|(?&lt;![\w\.]))
+        (
+        0b(\%{bin-digit}|_)*(?!\%{bin-digit}|_).\w*\%{int-suffix}?|
+        0o(\%{oct-digit}|_)*(?!\%{oct-digit}|_).\w*\%{int-suffix}?|
+        0x(\%{hex-digit}|_)*(?!\%{hex-digit}|_).\w*\%{int-suffix}?
+        )
+        ((?![\w\.].)|(?=\.\.))
+      </match>
+    </context>
+
     <define-regex id="ident" extended="true">
       ([^[:cntrl:][:space:][:punct:][:digit:]]|_)([^[:cntrl:][:punct:][:space:]]|_)*
     </define-regex>
@@ -281,6 +296,7 @@ except according to those terms.
         <context ref="macro"/>
         <context ref="boolean"/>
         <context ref="number"/>
+        <context ref="invalid-number"/>
         <context ref="scope"/>
         <context ref="string"/>
         <context ref="byte-string"/>


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