牌語備忘録 -pygo

あくまでもメモです。なるべくオフィシャルの情報を参照してください。

牌語備忘録 -pygo

CSS のリアルタイム文法チェックを Emacs の Flymake で Python の cssutils を使ってやってみた

EmacsのFlymakeでJavascriptとHTMLの構文チェックしてみる - 牌語備忘録 - pygo」の続き


(環境: MacOSX10.6, Python2.6 in MacPorts)


EmacsWiki: Flymake CSS」の下部に書いてある『cssutils』を利用する方法です。

Pythonのパッケージ『cssutils』をインストール

http://zoomquiet.org/res/scrapbook/ZqFLOSS/data/20081023004150/
上記リンク掲載の通り『cssutils』をインストール。コマンドラインの使い方とかも。
easy_install はPythonのモジュールをインスコとかしてくれるツール。詳しくはこのあたりで(easy_installとは

easy_install cssutils 

すると『cssparse』がインストールされるはず。
自分はMacPortsに色々放り込んでいるので

/opt/local/Library/Frameworks/Python.framework/Versions/2.6/bin/cssparse

で発見。

(require 'flymake)

(when (load "flymake" t)
  ;; FlymakeCSS with cssutils (Install cssutils with pip or easy_install)
  ;; http://www.emacswiki.org/emacs/FlymakeCSS
  ;; http://zoomquiet.org/res/scrapbook/ZqFLOSS/data/20081023004150/
  ;; http://pypi.python.org/pypi/cssutils/
  (defun flymake-css-init ()
    (let* ((temp-file (flymake-init-create-temp-buffer-copy
                       'flymake-create-temp-inplace))
           (local-file (file-relative-name
                        temp-file
                        (file-name-directory buffer-file-name))))
      (list "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/bin/cssparse" (list local-file))))
  (add-to-list 'flymake-allowed-file-name-masks
               '("\\.css$" flymake-css-init))
  (add-to-list 'flymake-err-line-patterns
               '("\\(.*\\) \\[\\([0-9]+\\):\\([0-9]+\\): \\(.*\\)\\]"
                 nil 2 3 1))
  (add-hook 'css-mode-hook
            (lambda () (flymake-mode t)))

  )