c-mode
, c++-mode
, java-mode
で
indent-tabs-mode
を nil
にしている人は、
前回の修正で「おいおい、挙動が変じゃないか!」ってことになったはず。
とりあえずパッチ。
…ついでに ruby-mode にも (簡単にですが) 対応してみました。
--- develock.el.orig 2006-10-02 01:39:04.000000000 +0900 +++ develock.el 2006-10-02 18:22:34.000000000 +0900 @@ -9,7 +9,7 @@ ;; Created: 2001/06/28 ;; Revised: 2006/09/25 ;; Keywords: font-lock emacs-lisp change-log texinfo c java perl html -;; tcl mail news +;; tcl ruby mail news ;; Develock is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by @@ -68,7 +68,8 @@ ;; (add-hook 'html-mode-hook 'turn-on-font-lock) ;; (add-hook 'html-helper-mode-hook 'turn-on-font-lock) ;; (add-hook 'message-mode-hook 'turn-on-font-lock) -;; (add-hook 'tcl-mode-hook 'turn-on-font-lock))) +;; (add-hook 'tcl-mode-hook 'turn-on-font-lock) +;; (add-hook 'ruby-mode-hook 'turn-on-font-lock))) ;; ;; Note that `jde-mode' activates the `font-lock-mode' by default ;; because of the `jde-use-font-lock' variable. @@ -404,7 +405,8 @@ 'mail-mode t 'message-mode t 'cmail-mail-mode t - 'tcl-mode 79) + 'tcl-mode 79 + 'ruby-mode 79) "Plist of `major-mode's and limitation values for long lines. The part of a line that is longer than the limitation value according to the `major-mode' is highlighted. Value `w' means one subtracted @@ -576,6 +578,9 @@ (defvar tcl-font-lock-keywords-x nil "Extraordinary level font-lock keywords for the Tcl mode.") +(defvar ruby-font-lock-keywords-x nil + "Extraordinary level font-lock keywords for the Ruby mode.") + (defvar develock-keywords-alist '((emacs-lisp-mode lisp-font-lock-keywords-x develock-lisp-font-lock-keywords) @@ -608,7 +613,9 @@ (cmail-mail-mode cmail-font-lock-keywords-x develock-mail-font-lock-keywords) (tcl-mode tcl-font-lock-keywords-x - develock-tcl-font-lock-keywords)) + develock-tcl-font-lock-keywords) + (ruby-mode ruby-font-lock-keywords-x + develock-ruby-font-lock-keywords)) "*Alist of keyword symbols for major modes. Each element should be triple symbols of the following form: @@ -1118,6 +1125,37 @@ :group 'develock :group 'font-lock) +(defcustom develock-ruby-font-lock-keywords + '(;; a long line + (develock-find-long-lines + (1 'develock-long-line-face-1 t) + (2 'develock-long-line-face-2 t)) + ;; long spaces + (develock-find-tab-or-long-space + (1 'develock-whitespace-face-2) + (2 'develock-whitespace-face-3 nil t)) + ;; trailing whitespace + ("[^\t\n ]\\([\t ]+\\)$" + (1 'develock-whitespace-face-1 t)) + ;; spaces before tabs + ("\\( +\\)\\(\t+\\)" + (1 'develock-whitespace-face-1 t) + (2 'develock-whitespace-face-2 t)) + ;; tab space tab + ("\\(\t\\) \t" + (1 'develock-whitespace-face-2 append)) + ;; only tabs or spaces in the line + ("^[\t ]+$" + (0 'develock-whitespace-face-2 append)) + ;; reachable E-mail addresses + ("<?[-+.0-9A-Z_a-z]+@[-0-9A-Z_a-z]+\\(\\.[-0-9A-Z_a-z]+\\)+>?" + (0 'develock-reachable-mail-address-face t))) + "Extraordinary level highlighting for the Ruby mode." + :type develock-keywords-custom-type + :set 'develock-keywords-custom-set + :group 'develock + :group 'font-lock) + (defmacro develock-find-font-lock-defaults (modesym) "Get the font-lock defaults based on the major mode." (if (featurep 'xemacs) @@ -1632,7 +1670,9 @@ (looking-at "[\t ]*") (or (setq mod (buffer-modified-p)) (setq orig (match-string 0))) - (tabify (point) (match-end 0)) + (if indent-tabs-mode + (tabify (point) (match-end 0)) + (untabify (point) (match-end 0))) (develock-Orig-c-indent-line syntax quiet ignore-point-pos) (setq pt (point)) (or mod
ruby-mode への本格的な対応は時間があったらやります。 今年の末まではかなりの頻度で使いそうなので。
Java の開発・実行環境。 約 2 ヶ月ぶりの version up。
開発者向けに font-lock のキーワードを追加する elisp。
上記のパッチを取り込んでいただきました。 しかし反応早いなぁ、山岡さん。 :-)