summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTimothy Southwick <NickNackGus@gmail.com>2022-01-19 12:38:13 -0500
committerChristian Hergert <chergert@redhat.com>2022-01-19 14:04:41 -0800
commit8df9d444a654c6204c1b260892be17d4522a13e0 (patch)
treefba616cfb9e97189cff45ab681210aac264d341b
parent1a21656ca895a45a4bf9322b3fc76b514fa66291 (diff)
downloadgtksourceview-8df9d444a654c6204c1b260892be17d4522a13e0.tar.gz
json.lang: Fix styles for floating point values
This fixes a bug where characters from the start of a floating point value up to the second character before the decimal point or exponent would be highlighted as integer values. This was noticeable in themes that differentiate between the two numeric types. The json test file has been updated to verify this change. Fixes #250.
-rw-r--r--data/language-specs/json.lang12
-rw-r--r--tests/syntax-highlighting/file.json1
2 files changed, 7 insertions, 6 deletions
diff --git a/data/language-specs/json.lang b/data/language-specs/json.lang
index 6f9bc817..338d87c0 100644
--- a/data/language-specs/json.lang
+++ b/data/language-specs/json.lang
@@ -39,8 +39,8 @@
<style id="null-value" name="Null Value" map-to="js:null-value"/>
<style id="boolean" name="Boolean Value" map-to="js:boolean"/>
<style id="error" name="Error" map-to="def:error"/>
- <style id="decimal" name="Decimal" map-to="def:decimal"/>
<style id="float" name="Floating point number" map-to="def:floating-point"/>
+ <style id="decimal" name="Decimal" map-to="def:decimal"/>
</styles>
<definitions>
@@ -92,12 +92,12 @@
</include>
</context>
- <context id="decimal" style-ref="decimal">
- <match>-?(?:[1-9][0-9]*|0)(?![.eE])</match>
+ <context id="float" style-ref="float">
+ <match>(?![+.])-?(?:[1-9][0-9]*|0)(?=\.[0-9]|[eE][+-]?[0-9])(?:\.[0-9]+)?(?:[Ee][+-]?[0-9]+)?</match>
</context>
- <context id="float" style-ref="float">
- <match>-?(?:[1-9][0-9]*|0)(?:\.[0-9]+)?(?:[eE][+\-]?[0-9]+)?</match>
+ <context id="decimal" style-ref="decimal">
+ <match>-?(?:[1-9][0-9]*|0)(?![.eE])</match>
</context>
<context id="catchall" style-ref="error" extend-parent="false">
@@ -108,8 +108,8 @@
<context ref="object"/>
<context ref="array"/>
<context ref="string"/>
- <context ref="decimal"/>
<context ref="float"/>
+ <context ref="decimal"/>
<context ref="js-lit:null-value" style-ref="null-value"/>
<context ref="js-lit:boolean" style-ref="boolean"/>
<context ref="catchall"/>
diff --git a/tests/syntax-highlighting/file.json b/tests/syntax-highlighting/file.json
index 3707e739..601f07ad 100644
--- a/tests/syntax-highlighting/file.json
+++ b/tests/syntax-highlighting/file.json
@@ -2,6 +2,7 @@
"hi": -1.1e1, "b": 2,
"abc": "hi",
"dce": [
+ -100.0, 299.79e6,
1.2, 2e10, -3,
1, 2,
"string"