diff options
-rw-r--r-- | lisp/ChangeLog | 5 | ||||
-rw-r--r-- | lisp/progmodes/ruby-mode.el | 3 | ||||
-rw-r--r-- | test/ChangeLog | 5 | ||||
-rw-r--r-- | test/automated/ruby-mode-tests.el | 8 |
4 files changed, 20 insertions, 1 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 92f3343db64..d04c42da4f1 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -14,6 +14,11 @@ (advice-add): Use them. (advice-member-p): Correctly handle macros. +2012-11-13 Dmitry Gutov <dgutov@yandex.ru> + + * progmodes/ruby-mode.el (ruby-font-lock-keywords): Never + font-lock the beginning of singleton class as heredoc. + 2012-11-13 Stefan Monnier <monnier@iro.umontreal.ca> * emacs-lisp/gv.el (gv-define-simple-setter): One more fix (bug#12871). diff --git a/lisp/progmodes/ruby-mode.el b/lisp/progmodes/ruby-mode.el index 67f25eda288..9d2c6fa51f7 100644 --- a/lisp/progmodes/ruby-mode.el +++ b/lisp/progmodes/ruby-mode.el @@ -1551,7 +1551,8 @@ See `font-lock-syntax-table'.") ruby-keyword-end-re) 2) ;; here-doc beginnings - (list ruby-here-doc-beg-re 0 'font-lock-string-face) + `(,ruby-here-doc-beg-re 0 (unless (ruby-singleton-class-p (match-beginning 0)) + 'font-lock-string-face)) ;; variables '("\\(^\\|[^_:.@$]\\|\\.\\.\\)\\b\\(nil\\|self\\|true\\|false\\)\\>" 2 font-lock-variable-name-face) diff --git a/test/ChangeLog b/test/ChangeLog index 4a9d215aa21..ad136117c1d 100644 --- a/test/ChangeLog +++ b/test/ChangeLog @@ -1,3 +1,8 @@ +2012-11-13 Dmitry Gutov <dgutov@yandex.ru> + + * automated/ruby-mode-tests.el (ruby-heredoc-font-lock) + (ruby-singleton-class-no-heredoc-font-lock): New tests. + 2012-11-12 Stefan Monnier <monnier@iro.umontreal.ca> * automated/advice-tests.el: New tests. diff --git a/test/automated/ruby-mode-tests.el b/test/automated/ruby-mode-tests.el index 8da0041e9a4..741692a07f7 100644 --- a/test/automated/ruby-mode-tests.el +++ b/test/automated/ruby-mode-tests.el @@ -76,6 +76,14 @@ VALUES-PLIST is a list with alternating index and value elements." (ruby-assert-state "foo <<asd\n" 3 ?\n) (ruby-assert-state "class <<asd\n" 3 nil)) +(ert-deftest ruby-heredoc-font-lock () + (let ((s "foo <<eos.gsub('^ *', '')")) + (ruby-assert-face s 9 'font-lock-string-face) + (ruby-assert-face s 10 nil))) + +(ert-deftest ruby-singleton-class-no-heredoc-font-lock () + (ruby-assert-face "class<<a" 8 nil)) + (ert-deftest ruby-deep-indent () (let ((ruby-deep-arglist nil) (ruby-deep-indent-paren '(?\( ?\{ ?\[ ?\] t))) |