javascript-mode

javascriptの編集も java-mode で兼用してたが、 Ruby屋としては要らぬセミコロンを打たない派なので、 セミコロンがない次の行がどんどんずれてく java-mode はボツ。

で、javascript-mode.el を頂いて来たが、インデントがおかしい。 行の途中に漢字があるとそこでカラムカウントがずれて、 カーソルがあらぬところ(次の行)に行っちゃう。 emacs23で (corrent-column) が漢字文字列以降で使えないせいか。 js2.el ってのはいいらしいが、要バイトコンパイルなんでめんどい。 うーん、最短の手間でなんとかしたい。ええい、こうだ。 元の javascript-indent-line を save-excursiion でwrapしてまえ。

(setq javascript-mode-hook
      '(lambda ()
	 (setq javascript-indent-level 2)
	 (or (fboundp 'saved-javascript-indent-line)
	     (fset 'saved-javascript-indent-line
		   (symbol-function 'javascript-indent-line)))
	 (defun javascript-indent-line ()
	   "Indent the current line as JavaScript source text."
	   (save-excursion
	     (saved-javascript-indent-line))
	   (skip-chars-forward " \t"))))

今風にやるなら、defadvice使うべき。