branch: elpa/scala-mode
commit 661337d8aa0a0cb418184c83757661603de3b2e3
Merge: a8ef177960 581ec8b027
Author: Heikki Vesalainen <[email protected]>
Commit: GitHub <[email protected]>

    Merge pull request #177 from LaurenceWarne/interpolation-string-fix
    
    Fix Fontification of Interpolation Strings in some Circumstances
---
 scala-mode-fontlock.el  |  2 +-
 scala-mode-syntax.el    |  4 +++-
 test/scala-mode-test.el | 12 ++++++++++++
 3 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/scala-mode-fontlock.el b/scala-mode-fontlock.el
index 469cb2cd75..15917adecd 100644
--- a/scala-mode-fontlock.el
+++ b/scala-mode-fontlock.el
@@ -487,7 +487,7 @@ Does not continue past limit.
     (scala-font-lock:mark-floatingPointLiteral . font-lock-constant-face)
     (scala-font-lock:mark-integerLiteral . font-lock-constant-face)
 
-    (scala-syntax:interpolation-matcher 0 font-lock-variable-name-face t)
+    (scala-syntax:interpolation-matcher 1 font-lock-variable-name-face t)
 
     ))
 
diff --git a/scala-mode-syntax.el b/scala-mode-syntax.el
index 235ab23017..ec2728d187 100644
--- a/scala-mode-syntax.el
+++ b/scala-mode-syntax.el
@@ -156,7 +156,9 @@
           "\\|" "null" "\\)"))
 
 (defconst scala-syntax:interpolation-re
-  (concat "\\(" "\\$"  scala-syntax:id-re "\\|" "\\${[^}\n\\\\]*}" "\\)"))
+  (concat "\\(?:\\=\\|[^\\$]\\)\\(?:\\$\\$\\)*\\(\\$"
+          (string-replace "\\$" "" scala-syntax:id-re)
+          "\\|" "\\${[^}\n\\\\]*}" "\\)"))
 
 (defun scala-syntax:interpolation-matcher (end)
   (let* ((pos nil)
diff --git a/test/scala-mode-test.el b/test/scala-mode-test.el
index 8a7a195424..95aa9b765a 100644
--- a/test/scala-mode-test.el
+++ b/test/scala-mode-test.el
@@ -176,3 +176,15 @@ comment. A concrete example may be viewed at 
https://github.com/scala/scala/blob
    "/* &*/"
    "110111"
    "DDDOOO"))
+
+(ert-deftest smt:syntax-class-and-font-lock-test-24 ()
+  (smt:test
+   "val c = s\"$$sum $$$sum $$$$sum\""
+   "2220201027112220111222011112227"
+   "KKK-V-K--SSSSSSSSSVVVVSSSSSSSSS"))
+
+(ert-deftest smt:syntax-class-and-font-lock-test-25 ()
+  (smt:test
+   "val c = s\"$sum$sum $sum$$sum\""
+   "22202010271222122201222112227"
+   "KKK-V-K--SVVVVVVVVSVVVVSSSSSS"))

Reply via email to