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"))