ヒアドキュメントと、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