branch: elpa/scala-mode commit 6f49104c182ec1cc8b30314dc92d02f4752106cf Author: Josef Vlach <vlach.jo...@gmail.com> Commit: Sam Halliday <sam.halli...@gmail.com>
scala-syntax:propertize-dollar --- scala-mode-syntax.el | 14 ++++++++++---- test/scala-mode-test.el | 19 +++++++++++++++++++ 2 files changed, 29 insertions(+), 4 deletions(-) diff --git a/scala-mode-syntax.el b/scala-mode-syntax.el index 05e6dd1..3535d89 100644 --- a/scala-mode-syntax.el +++ b/scala-mode-syntax.el @@ -616,9 +616,14 @@ symbol constituents (syntax 3)." (save-excursion (goto-char start) (while (re-search-forward scala-syntax:quotedid-re end t) - (let ((match-beg (match-beginning 0)) - (match-end (match-end 0))) - (put-text-property match-beg match-end 'syntax-table '(3 . nil)))))) + (scala-syntax:put-syntax-table-property 0 '(3 . nil))))) + +(defun scala-syntax:propertize-dollar (start end) + "Mark all $ occurences as punctuation (syntax 1)" + (save-excursion + (goto-char start) + (while (re-search-forward "\\$" end t) + (scala-syntax:put-syntax-table-property 0 '(1 . nil))))) (defun scala-syntax:propertize (start end) "See syntax-propertize-function" @@ -626,7 +631,8 @@ symbol constituents (syntax 3)." (scala-syntax:propertize-shell-preamble start end) (scala-syntax:propertize-underscore-and-idrest start end) (scala-syntax:propertize-special-symbols start end) - (scala-syntax:propertize-quotedid start end)) + (scala-syntax:propertize-quotedid start end) + (scala-syntax:propertize-dollar start end)) ;;;; ;;;; Syntax navigation functions diff --git a/test/scala-mode-test.el b/test/scala-mode-test.el index 9b51b85..d729cd1 100644 --- a/test/scala-mode-test.el +++ b/test/scala-mode-test.el @@ -32,6 +32,7 @@ object Ensime { ('font-lock-comment-delimiter-face "D") ('font-lock-doc-face "U") ('font-lock-type-face "T") + ('font-lock-string-face "S") (_ "?"))) (ert-deftest smt:syntax-class-and-font-lock-test-1 () @@ -147,3 +148,21 @@ object Ensime { "val c = 1 /////////// big comment" "222020102011111111111022202222222" "KKK-V-K-C-DDDDDDDDDDDDOOOOOOOOOOO")) + +(ert-deftest smt:syntax-class-and-font-lock-test-20 () + (smt:test + "val c = s\"result $sum\"" + "2220201027222222012227" + "KKK-V-K--SSSSSSSSVVVVS")) + +(ert-deftest smt:syntax-class-and-font-lock-test-21 () + (smt:test + "val c = s\"$sum-123\"" + "2220201027122212227" + "KKK-V-K--SVVVVSSSSS")) + +(ert-deftest smt:syntax-class-and-font-lock-test-22 () + (smt:test + "val c = s\"${sum.getOrElse(\"\")} - $sum\"" + "22202010271422212222222224775501012227" + "KKK-V-K--SSSSSSSSSSSSSSSSSSSSSSSSSSSSS"))