1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

jEditのJavaScriptのインデントをいい感じにする

Posted at

jEditというのはJavaで開発されているオープンソースのエディターです。
名前は似ていますが某Mac OS X向け国産エディタとは別物ですあしからず。

jEditに限りませんが、JavaScriptでコールバック関数を直に書くとき、例えばインデントを 2 に設定していても、

$(function() {
    //4つインデントされてる

みたいなことになることがあります。
関数呼び出しの括弧 ( と、 function のブロックの始まりの { の両方を解釈して、二回分インデントしてくれやがるわけですね。

jEditでこれをどうにかできたので、残しておきます。

方法は簡単です。
jEditをインストールいたディレクトリの modes ディレクトリを開いて、 javascript.xmlを適当なエディタで開いてください。
その javascript.xml の 15-16行目を、下のようにコメントアウトしてください。

javascript.xml
		<!-- Auto indent -->
		<PROPERTY NAME="indentOpenBrackets" VALUE="{[" />
		<PROPERTY NAME="indentCloseBrackets" VALUE="]}" />
<!--	ここをコメントアウトした				 -->
<!--		<PROPERTY NAME="unalignedOpenBrackets" VALUE="(" /> -->
<!--		<PROPERTY NAME="unalignedCloseBrackets" VALUE=")" /> -->
		<PROPERTY NAME="indentNextLine"
			VALUE="\s*(((if|while)\s*\(|else\s*|else\s+if\s*\(|for\s*\(.*\))[^{;]*)" />
		<PROPERTY NAME="unindentThisLine"
			VALUE="^.*(default:\s*|case.*:.*)$" />

このようにすると ( が閉じられていないまま改行してもインデントされなくなり、結果的にコールバック関数を直に書くときや無名関数を利用して変数を隠ぺいするときなどにいい感じにインデントするはずです。

しかし、前述したとおり このようにすると ( が閉じられていないまま改行してもインデントされなくなる ので注意!

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?