※追記20130728: インデントの問題、複数行コメントの問題
(Emacs24.3)
web-mode でやろうとしたら タブ に色付けできなかったり、設定変えるの面倒そうだったので jinja2-mode を使ってみる事にした
yasnippet
yasnippet の snippets に web-mode ディレクトリを作ってファイル作成
html-modeのスニペットをjinja2-modeで共用する
snippets /.yas-parents
html-mode
インデントがずれる問題
Djangoの特定のタグでインデントがずれるのでキーワードを追加した(jinja2-user-keywords )
複数行コメントの問題
このモード、複数行のコメントに対応してないのだが、Emacsで複数行で色付けする方法がわからない。
とりあえず {% comment %} と {% endcomment %} タグに色を付けてみた。
誰か ヘルプ ミー プリーズ。
init.el
(add-to-list 'auto-mode-alist '("\\.html\\'" . jinja2-mode)) (add-to-list 'ac-modes 'jinja2-mode) (add-hook 'jinja2-mode-hook (lambda () (defun jinja2-closing-keywords () (append jinja2-user-keywords '("if" "for" "block" "filter" "with" "raw" "macro" "autoescape" "trans" "call" "comment" "ifchanged" "ifequal" "ifnotequal" "spaceless" "with" "block" ))) (defun django-highlight-comment-tag () (interactive "p") (highlight-regexp "{% comment %}" 'hi-pink) (highlight-regexp "{% endcomment %}" 'hi-pink) ) (django-highlight-comment-tag) (setq sgml-basic-offset 4) (define-key jinja2-mode-map (kbd "C-M-n") 'sgml-skip-tag-forward) (define-key jinja2-mode-map (kbd "C-M-p") 'sgml-skip-tag-backward) (add-to-list 'ac-sources 'ac-source-yasnippet) (add-to-list 'ac-sources 'ac-source-dictionary) (add-to-list 'ac-sources 'ac-source-filename) (add-to-list 'ac-sources 'ac-source-words-in-all-buffer) ) )