ヒアドキュメントと、phpタグ以外の部分と、コンパイラ停止、を認識しやすくします。
背景色をつけるだけですので、インデントすると EOF; の部分などが破壊されます。
(始めの部分)<?php ... ?>(終わりの部分) は背景色は変わりません。
(require 'mmm-mode)
(setq mmm-global-mode 'maybe)
(setq mmm-submode-decoration-level 1)
(invert-face 'mmm-default-submode-face nil)
(set-face-background 'mmm-default-submode-face "navy")
(setq mmm-font-lock-available-p t)
(mmm-add-mode-ext-class nil "\\.php\\'" 'php-others)
(mmm-add-group
'php-others
'(
(php-heredoc
:include-front t
:include-back t
:front-offset 0
:back-offset 0
:front "<<<\\s-*[\"\']?\\([a-zA-Z_][a-zA-Z0-9_]+\\)"
:back "^\\s-*~1;$"
:save-matches 1
:submode fundamental-mode
:face mmm-code-submode-face
:delimiter-mode nil
)
(php-outside
:include-front nil
:include-back nil
:front-offset 0
:back-offset 0
:front "\\(\\?\\|%\\)>"
:back "<\\(\\?\\|%\\)"
:save-matches 1
:submode fundamental-mode
:face mmm-code-submode-face
:delimiter-mode nil
)
(php-halt-compiler
:include-front t
:include-back t
:front-offset 0
:back-offset 0
:front "__halt_compiler\\s-*("
:back ")\\s-*;"
:save-matches 1
:submode fundamental-mode
:face mmm-code-submode-face
:delimiter-mode nil
)
))
コメント部分にphpの開始タグ、終了タグがあると失敗します。
phpの開始タグ、終了タグの%,?の種類が違うと失敗します。
背景色が変化した部分をインデントすると失敗します。
xml宣言などのphpの開始タグ、終了タグと同じ文字があると失敗します。
phpの文字列に <?, ?> などがあると失敗します。
mmm-sample.el に perl, bash 用のヒアドキュメントと php-mode 用のサンプルがあります。
(例) /usr/share/emacs/site-lisp/mmm-mode/mmm-sample.el
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/31151
http://d.hatena.ne.jp/Tetsujin/20070808/1186582582
http://d.hatena.ne.jp/jimo1001/20071111/1194770814
http://www.bookshelf.jp/pukiwiki/pukiwiki.php?refer=MeadowMemo&cmd=read&page=MeadowMemo%2F%CA%A3%BF%F4%A4%CE%A5%E1%A5%B8%A5%E3%A1%BC%A5%E2%A1%BC%A5%C9%A4%F2%B6%A6%C2%B8%A1%BDmmm-mode
http://www.emacswiki.org/emacs/HtmlModeDeluxe
0 件のコメント:
コメントを投稿