«前の日記(2006.10.01 / Sunday) 最新 次の日記(2006.10.04 / Wednesday)» 編集

Hena Hena Nikki

2003|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|10|11|12|
2012|01|02|03|04|05|06|07|08|10|12|
2013|01|02|04|06|

2006.10.02 / Monday [長年日記]

* [computer/emacsen] Re: develock 使用時の c-indent-command の挙動がおかしい

c-mode, c++-mode, java-modeindent-tabs-modenil にしている人は、 前回の修正で「おいおい、挙動が変じゃないか!」ってことになったはず。 とりあえずパッチ。 …ついでに 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 への本格的な対応は時間があったらやります。 今年の末まではかなりの頻度で使いそうなので。

* [computer/update] Java 2 SDK (Standard Edition) 5.0 Update 9

Java の開発・実行環境。 約 2 ヶ月ぶりの version up。

* [computer/update] develock.el ver.0.30

開発者向けに font-lock のキーワードを追加する elisp。

上記のパッチを取り込んでいただきました。 しかし反応早いなぁ、山岡さん。 :-)


  • この日記には本日 名の方が訪問してくださっているようです。 また、昨日は 名の方が訪問してくださったようです。
  • この日記の更新情報の取得には antenna.lirs を利用するのがおすすめです。