summaryrefslogtreecommitdiffstats
path: root/emacs.d/nxhtml/tests/in/emacswiki-erb-bug.el
blob: 4e565efa268713a98e4426876743d77e4e8312b0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
;;; This file is from a link on EmacsWiki to http://paste.lisp.org/display/59495
;;
;; As far as I can see this is a ruby-mode bug, not a mumamo bug.

;;; The problem is that when a ruby ERB template is loaded with an
;;; after-hook that modifies the font-lock keywords, nxhtml causes
;;; font-lock not to occur on strings and comments. What's more is
;;; this affects regular ruby-mode as well, not just within mumamo.

(require 'ruby-mode)

;; Extra keyword fontification for ruby
(defun emacswiki-erb-bug-keywords ()
  (font-lock-add-keywords nil
                          '(("\\<\\(FIX\\|TODO\\|FIXME\\|HACK\\|REFACTOR\\):"
                             1 font-lock-warning-face t))))

;; Adding the extra keywords at the beginning of ruby-mode-hook breaks
;; ruby-mode fontification (use the test case at the bottom):
(add-hook 'ruby-mode-hook 'emacswiki-erb-bug-keywords)
;; removing this hook makes it not break anymore:
(remove-hook 'ruby-mode-hook 'emacswiki-erb-bug-keywords)
;; However adding the extra keywords at the end of the hook works fine:
(add-hook 'ruby-mode-hook 'emacswiki-erb-bug-keywords t)


;; run this to test:
(progn
  (find-file "bar.rb")
  (insert "# Comments should be font-locked, but are not.
class Bar
  def baz
    \"strings should also be font-locked but are not.\"
  end
end"))