[Date Prev][Date Next][Thread Prev][][Date Index][Thread Index]

Re: view-source で font-lock



>> On Sat, 16 Jul 2005 10:06:43 +0900
>> hiroshi.fujishima@gmail.com (Hiroshi Fujishima) said as follows:

>HTML のソースを表示するときに、font-lock-defaults を設定するように変
>更してみました。

w3m-fontify-after-hook, w3m-display-functions または w3m-display-hook 
を利用した実装の方が独立性が高くて良いと思います.まだ,

  ・バッファローカル変数の指定によるセキュリティ面を考慮しきれていない
  ・about://source/http://emacs-w3m.namazu.org/ のように / で終わって
    いる場合に対処していない

と問題があるのですが,サンプルコードを以下に示します.

  (defun w3m-font-lock (url)
    (when (string= "text/plain"
                   (or (w3m-arrived-content-type url)
                       (w3m-content-type url)))
      (let ((variables (buffer-local-variables)))
        (unwind-protect
            (let ((buffer-file-name (expand-file-name (file-name-nondirectory url)
                                                      w3m-profile-directory)))
              (set-auto-mode))
          (font-lock-set-defaults)
          (font-lock-fontify-buffer)
          (w3m-mode)
          (dolist (element variables)
            (when (string-match "\\`w3m-" (symbol-name (car element)))
              (set (make-local-variable (car element)) (cdr element))))
          (let (buffer-read-only)
            (w3m-header-line-insert))))))
  (add-hook 'w3m-display-hook 'w3m-font-lock)

この設定をした上で,http://namazu.org/~tsuchiya/elisp/shell-command.el 
などを見に行くと,emacs-lisp のソースに色がついて楽しいです.

おそらく,auto-mode-alist を使うだけではなくて,サーバによって指定され
た MIME 型とバッファの内容に基づく推定(= Emacs22 の magic-mode-alist 
相当)が必要です.

-- 
土屋 雅稔 ( TSUCHIYA Masatoshi )