- nxml-mode
(defun aka:init-nxml ()
(add-to-list 'auto-mode-alist
'("\\.\\(xml\\|xsl\\|rng\\|atom\\|html\\|xhtml\\)\\'" . nxml-mode))
(add-hook 'nxml-mode-hook
(lambda ()
(setq auto-fill-mode -1)
(setq nxml-slash-auto-complete-flag t)
(setq nxml-child-indent 2)
(setq indent-tabs-mode t)
(setq tab-width 2))))
- javascript-mode
(defun aka:init-javascript ()
(add-to-list 'auto-mode-alist '("\\.js$" . javascript-mode))
(autoload 'javascript-mode "javascript" nil t)
(setq javascript-indent-level 4))
- css-mode
(defun aka:init-css ()
(autoload 'css-mode "css-mode")
(setq auto-mode-alist (cons '("\\.css$" . css-mode) auto-mode-alist))
(setq cssm-indent-function #'cssm-c-style-indenter))
- mmm-mode
(defun aka:init-mmm ()
(load-library "mmm-mode")
(require 'mmm-auto)
(setq mmm-global-mode 'maybe)
(setq mmm-submode-decoration-level 3)
(setq mmm-font-lock-available-p t)
(set-face-background 'mmm-default-submode-face "black")
(mmm-add-classes
'((embedded-css
:submode css-mode
:front "<style[^>]*>"
:back "</style>")))
(mmm-add-mode-ext-class nil "\\.html?\\'" 'embedded-css)
(mmm-add-classes
'((html-javascript
:submode javascript-mode
:front "<script[^>]*>"
:back "</script>")))
(mmm-add-mode-ext-class nil "\\.html?\\'" 'html-javascript))
- mmm-modeのパッチ
- mmm-modeでnxml-modeを使うための修正
PTWithyさん作成
diff -c /Users/ptw/.emacs.d/site-lisp/mmm-vars.el.\~1\~ /Users/ptw/.emacs.d/site-lisp/mmm-vars.el
*** /Users/ptw/.emacs.d/site-lisp/mmm-vars.el.~1~ Wed Jun 16 10:14:18 2004
--- /Users/ptw/.emacs.d/site-lisp/mmm-vars.el Thu Nov 23 09:46:31 2006
***************
*** 293,298 ****
--- 293,309 ----
;; Abbrev mode
abbrev-mode
local-abbrev-table
+ ;; nxml-mode makes these local
+ adaptive-fill-mode
+ forward-sexp-function
+ indent-line-function
+ fill-paragraph-function
+ comment-indent-function
+ comment-start
+ comment-start-skip
+ comment-end
+ comment-end-skip
+ comment-line-break-function
;; And finally the syntax table and local map.
((syntax-table . set-syntax-table))
((current-local-map . use-local-map) buffer)
Diff finished. Thu Nov 23 09:51:15 2006
- この取り扱いは正式には次のようにすべき。
- リポジトリのソースパッケージを修正して、ローカル修正版のデビアンパッケージを作成。このときバージョンの枝番を上げる。
- PINでそのバージョンで止める。
- 修正要請をパッケージメンテナに投げる。
- 今回はアドホックに次のようにしちゃう。
- デビアンパッケージ(バイナリ)でインストールされたelファイルを直接いじる。
- emacsen用にバイトコンパイルされたelcを削除する。
- 利用したいEmacsで該当elをバイトコンパイルして、生成されたelcを適切なディレクトリに移設。
- nxml-modeが、CSS部、ECMAScript部を適切に無視するようにする。
これは、Web標準XHTMLの書き振りで対応。
<script type="text/javascript">
/* <![CDATA[ */
for (i = 0; i < 100; i++);
/* ]]> */
</script>
なんぞ。