branch: elpa/scala-mode commit e79e62794c0c2901f44ada7a74105fbeb14c02f1 Author: Erik Osheim <d...@plastic-idolatry.com> Commit: Erik Osheim <d...@plastic-idolatry.com>
Fix highlighting for operators beginning with colon. This fixes an issue with operators named things like :=, :#:, etc. It's most noticable when editing sbt files, since := was being highlighted as a type ascription instead of a method. --- scala-mode-fontlock.el | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/scala-mode-fontlock.el b/scala-mode-fontlock.el index 327841e..6a96fe3 100644 --- a/scala-mode-fontlock.el +++ b/scala-mode-fontlock.el @@ -402,16 +402,22 @@ Does not continue past limit. (2 font-lock-constant-face nil t) (3 font-lock-type-face nil t))) - ;; type ascriptions (: followed by a type) + ;; type ascription (: followed by alpha type name) (,(rx (or (not (in "!#%&*+-/:<=>?@\\^|~")) line-start) (group ":") (0+ space) - (group (or - (and (in "a-zA-Z_") - (0+ (in "a-zA-Z0-9_")) - (\? (and "_" (1+ (in "!#%&*+-/:<=>?@\\^|~"))))) - (and (in "!#%&*+-/<=>?@\\^|~") (0+ (in "!#%&*+-/:<=>?@\\^|~")))))) + (group (in "a-zA-Z_") + (0+ (in "a-zA-Z0-9_")) + (\? (and "_" (1+ (in "!#%&*+-/:<=>?@\\^|~")))))) + (1 font-lock-keyword-face) (2 font-lock-type-face)) + + ;; type ascription (: followed by punctuation type name) + (,(rx + (or (not (in "!#%&*+-/:<=>?@\\^|~")) line-start) + (group ":") + (1+ space) + (group (1+ (in "-!#%&*+/:<=>?@\\^|~")))) (1 font-lock-keyword-face) (2 font-lock-type-face)) ;; extends followed by type