diff options
| author | bors <bors@rust-lang.org> | 2013-10-17 20:56:18 -0700 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2013-10-17 20:56:18 -0700 |
| commit | 737413d72a714e55ff53e591e8190b490c194a53 (patch) | |
| tree | 2deda375a9af32920ef11f64afc788b2ac9ec397 | |
| parent | d8d1b8f8be250b9e19bb70aa0968c1b4a4aec2f8 (diff) | |
| parent | 58b336d90b3155cb42a31de6c914bb784aad47bc (diff) | |
| download | rust-737413d72a714e55ff53e591e8190b490c194a53.tar.gz rust-737413d72a714e55ff53e591e8190b490c194a53.zip | |
auto merge of #9921 : sp3d/rust/master, r=alexcrichton
Refactors parsing of numerical literals to make it more readable. Removes 'float'/the 'f' literal suffix and invalid character literals ''' and '\'. Also makes attribute highlighting more robust and allows urls in attributes to be recognized.
| -rw-r--r-- | src/etc/gedit/share/gtksourceview-3.0/language-specs/rust.lang | 68 |
1 files changed, 46 insertions, 22 deletions
diff --git a/src/etc/gedit/share/gtksourceview-3.0/language-specs/rust.lang b/src/etc/gedit/share/gtksourceview-3.0/language-specs/rust.lang index 1869024e20b..1c1bb0a0012 100644 --- a/src/etc/gedit/share/gtksourceview-3.0/language-specs/rust.lang +++ b/src/etc/gedit/share/gtksourceview-3.0/language-specs/rust.lang @@ -85,7 +85,6 @@ <keyword>u64</keyword> <keyword>f32</keyword> <keyword>f64</keyword> - <keyword>float</keyword> <keyword>char</keyword> <keyword>str</keyword> <keyword>Either</keyword> @@ -205,16 +204,36 @@ </include> </context> + <define-regex id="int_suffix" extended="true"> + (i8|i16|i32|i64|i|u8|u16|u32|u64|u) + </define-regex> + + <define-regex id="exponent" extended="true"> + ([eE][+-]?[0-9_]+) + </define-regex> + + <define-regex id="float_suffix" extended="true"> + (\%{exponent}?(f32|f64)?)|(\.[0-9][0-9_]*\%{exponent}?)?(f32|f64)?|\. + </define-regex> + + <define-regex id="num_suffix" extended="true"> + \%{int_suffix}|\%{float_suffix} + </define-regex> + + <define-regex id="hex_digit" extended="true"> + [0-9a-fA-F] + </define-regex> + <context id="number" style-ref="number"> <match extended="true"> - (?<![\w\.]) + ((?<=\.\.)|(?<![\w\.])) ( - 0x[0-9a-fA-F_]+(u8|u16|u32|u64|i8|i16|i32|i64|u|i)?| - 0b[0-1_]+(u8|u16|u32|u64|i8|i16|i32|i64|u|i)?| - [0-9][0-9_]*\.[0-9_]*([eE][+-]?[0-9_]+)?(f32|f64|f)?| - [0-9][0-9_]*(u8|u16|u32|u64|i8|i16|i32|i64|u|i)? + [1-9][0-9_]*\%{num_suffix}?| + 0[0-9_]*\%{num_suffix}?| + 0b[01_]+\%{int_suffix}?| + 0x(\%{hex_digit}|_)+\%{int_suffix}? ) - (?![\w\.]) + ((?![\w\.].)|(?=\.\.)) </match> </context> @@ -234,32 +253,37 @@ </match> </context> + <define-regex id="common_escape" extended="true"> + '|"| + \\|n|r|t| + x\%{hex_digit}{2}| + u\%{hex_digit}{4}| + U\%{hex_digit}{8} + </define-regex> + + <context id="string_escape" style-ref="def:special-char"> + <match>\\\%{common_escape}</match> + </context> + <context id="string" style-ref="string" class="string" class-disabled="no-spell-check"> <start>"</start> <end>"</end> <include> - <context ref="def:escape"/> + <context ref="string_escape"/> <context ref="def:line-continue"/> </include> </context> - <define-regex id="hex_digit" extended="true"> - [0-9a-fA-F] - </define-regex> - - <define-regex id="common_escape" extended="true"> - (n|r|t)| - x\%{hex_digit}{2}| - u\%{hex_digit}{4}| - U\%{hex_digit}{8} - </define-regex> - - <context id="char" style-ref="char" class="char"> - <match extended="true">'([^\\]|\\\%{common_escape})'</match> + <context id="char" style-ref="char"> + <match extended="true">'([^\\']|\\\%{common_escape})'</match> </context> <context id="attribute" style-ref="attribute" class="attribute"> - <match extended="true">\#\[[^\]]+\]</match> + <start extended="true">\#\[</start> + <end>\]</end> + <include> + <context ref="def:in-comment"/> + </include> </context> <context id="rust" class="no-spell-check"> |
