Syntax highlight problem about the ruby-mode in emacs

Hi

I edit ruby script in emacs, but sometimes I just cannot get ruby mode
syntax highlight successfully. I had googled this problem and found
that:
    http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/131654
  >I suspect that most font-lock problems like this are caused by the
  >internal use of ruby-mode-hook in ruby-mode.el. Suppose your .emacs
  >file contains

In my case, I had the following settings in my .emacs file.
(desktop-save-mode 1)
(global-font-lock-mode 1)
(setq font-lock-maximum-decoration t)
(setq font-lock-global-modes '(not text-mode))
(setq font-lock-verbose t)

If there is a opened ruby file the last time I exit the emacs, syntax
highlight will not work as expected.

When C-h v ruby-mode-hook to inspect the value of ruby-mode-hook,
I get the following value:

ruby-mode-hook's value is shown below.

Not documented as a variable.

Value:
((lambda nil
  (inf-ruby-keys))
turn-on-font-lock)

In the opposite, if I start Emacs without an ruby file opened. I will
get the correct ruby-mode-hook value.

ruby-mode-hook's value is shown below.

Not documented as a variable.

Value:
((lambda nil
    (make-local-variable 'font-lock-defaults)
    (make-local-variable 'font-lock-keywords)
    (make-local-variable 'font-lock-syntax-table)
    (make-local-variable 'font-lock-syntactic-keywords)
    (setq font-lock-defaults
    '((ruby-font-lock-keywords)
      nil nil))
    (setq font-lock-keywords ruby-font-lock-keywords)
    (setq font-lock-syntax-table ruby-font-lock-syntax-table)
    (setq font-lock-syntactic-keywords ruby-font-lock-syntactic-keywords))
  (lambda nil
    (inf-ruby-keys))
  turn-on-font-lock)

I want to know what make the difference.

BTW, if the enabled the rails-mode, the synatx highlight function
failed, too.

Eric

I have the same problem.

I have the following files in my site-lisp folder:

C:\emacs\site-lisp\find-recursive.el
C:\emacs\site-lisp\psvn.el
C:\emacs\site-lisp\snippet.el
C:\emacs\site-lisp\subdirs.el
C:\emacs\site-lisp\emacs-rails\ChangeLog
C:\emacs\site-lisp\emacs-rails\rails-core.el
C:\emacs\site-lisp\emacs-rails\rails-for-controller.el
C:\emacs\site-lisp\emacs-rails\rails-for-layout.el
C:\emacs\site-lisp\emacs-rails\rails-for-rhtml.el
C:\emacs\site-lisp\emacs-rails\rails-lib.el
C:\emacs\site-lisp\emacs-rails\rails-navigation.el
C:\emacs\site-lisp\emacs-rails\rails-ruby.el
C:\emacs\site-lisp\emacs-rails\rails-scripts.el
C:\emacs\site-lisp\emacs-rails\rails-ui.el
C:\emacs\site-lisp\emacs-rails\rails-webrick.el
C:\emacs\site-lisp\emacs-rails\rails.el
C:\emacs\site-lisp\emacs-rails\README
C:\emacs\site-lisp\ruby\inf-ruby.el
C:\emacs\site-lisp\ruby\README
C:\emacs\site-lisp\ruby\ruby-electric.el
C:\emacs\site-lisp\ruby\ruby-mode.el
C:\emacs\site-lisp\ruby\rubydb2x.el
C:\emacs\site-lisp\ruby\rubydb3x.el

And here is my .emacs file:

(custom-set-variables
  ;; custom-set-variables was added by Custom.
  ;; If you edit it by hand, you could mess it up, so be careful.
  ;; Your init file should contain only one such instance.
  ;; If there is more than one, they won't work right.
'(cua-mode t nil (cua-base))
'(debug-on-error t)
'(global-font-lock-mode t nil (font-core))
'(show-paren-mode nil)
'(transient-mark-mode t))
(custom-set-faces
  ;; custom-set-faces was added by Custom.
  ;; If you edit it by hand, you could mess it up, so be careful.
  ;; Your init file should contain only one such instance.
  ;; If there is more than one, they won't work right.
)

  ;;(autoload 'ruby-mode "ruby-mode" "Load ruby-mode")
  ;;(add-to-list 'auto-mode-alist '("\\.rb$" . ruby-mode))
  ;; uncomment the next line if you want syntax highlighting
  ;;(add-hook 'ruby-mode-hook 'turn-on-font-lock)

    (defun try-complete-abbrev (old)
   (if (expand-abbrev) t nil))

  (setq hippie-expand-try-functions-list
       '(try-complete-abbrev
         try-complete-file-name
         try-expand-dabbrev))

  (require 'rails)

···

--
Posted via http://www.ruby-forum.com/.