[gtksourceview/gnome-3-24] groovy.lang: correctly highlight ${}	placeholders with braces in them
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc: 
- Subject: [gtksourceview/gnome-3-24] groovy.lang: correctly highlight ${}	placeholders with braces in them
- Date: Wed, 26 Jun 2019 18:46:09 +0000 (UTC)
commit 02b533c6f251237cda803e9e3f514852780e9e88
Author: Роман Донченко <dpb corrigendum ru>
Date:   Sun Jun 23 00:44:19 2019 +0300
    groovy.lang: correctly highlight ${} placeholders with braces in them
    
    Currently, the first closing brace encountered in such a placeholder
    is assumed to end it, even if it actually just ends a nested block.
    To correct this, treat braced blocks as nested contexts.
 data/language-specs/groovy.lang       | 13 +++++++++++++
 tests/syntax-highlighting/file.groovy |  2 +-
 2 files changed, 14 insertions(+), 1 deletion(-)
---
diff --git a/data/language-specs/groovy.lang b/data/language-specs/groovy.lang
index b491121a..82121a6c 100644
--- a/data/language-specs/groovy.lang
+++ b/data/language-specs/groovy.lang
@@ -324,6 +324,19 @@
         <context ref="operator"/>
         <context ref="null-value"/>
         <context ref="boolean"/>
+
+        <!--
+          To be able to tell apart closing braces that end a ${} placeholder
+          and ones that end a block inside such a placeholder,
+          treat braced blocks as nested contexts.
+        -->
+        <context>
+          <start>\{</start>
+          <end>\}</end>
+          <include>
+            <context ref="groovy"/>
+          </include>
+        </context>
       </include>
     </context>
   </definitions>
diff --git a/tests/syntax-highlighting/file.groovy b/tests/syntax-highlighting/file.groovy
index 82f01a05..ff8b7a88 100644
--- a/tests/syntax-highlighting/file.groovy
+++ b/tests/syntax-highlighting/file.groovy
@@ -36,7 +36,7 @@ def notSlashy = 1 /2/ 3 // not a slashy string; just two division operators
 def dollarSlashy = $/Dollar slashy string.
 
     There are three escape sequences: $$ $/ \
-    Interpolation works: $_ ${true}
+    Interpolation works: $_ ${x.collect { it + '\n' }.join('')}
     Dollars $ and backslashes \ on their own are interpreted literally./$
 
 0b10i + 0b0110_1011 // binary numbers
[
Date Prev][
Date Next]   [
Thread Prev][
Thread Next]   
[
Thread Index]
[
Date Index]
[
Author Index]