cypher256's blog

Pleiades とか作った

Play フレームワークの scala.html などの文字エンコード自動判別を無効化


Eclipse には JSP や HTML の文字エンコードを内容により自動的に判別する機能があります。ただ、これは JSP に include する断片ファイルや Play 2.0 フレームワークscala.html のように meta charset 指定などが無い部分的な HTML を持つ場合、UTF-8Shift_JIS と誤って判定され文字化けが発生します。


回避策として、下記の方が記載されているように、ファイルごとに文字エンコードを指定すれば対応可能ですがこれは面倒です。また、eclipse.ini に -Duser.language=en を指定すれば回避できますが、これは日時表記が英語になる問題があります。

htmlを開くと文字化けするとき - newta(にゅーた)の日記


原因は Dead Zone に記載されているように WST の日本語向けの自動判別のバグで、Eclipse 3.3 以降から現在の Juno でも改修されていません。

http://blog.goo.ne.jp/atlanto/e/f9c32302055b47f3521df3ee0967992d

Pleiades AOP で実行時にバグ修正: HTML 判別を無効化

そもそも内容から完全に文字コードを判別することはできないので Pleiades AOP で動的に無効化します。pleiades-config.xml に下記の AOP 定義を追加し -clean 起動することで回避できます。ちなみに meta タグに charset 指定がある場合はこの AOP 定義に関係なくそれが優先して使用されます。この AOP 定義は次回リリースの Pleiades に組み込む予定です。


plugins/jp.sourceforge.mergedoc.pleiades/conf/pleiades-config.xml

<!-- HTML 日本語文字エンコーディング自動判別無効化 (after) -->
<pointCut editPoint="execution" timing="after">
	<advice><![CDATA[
		return false;
	]]></advice>
	<jointPoint className="org.eclipse.wst.html.core.internal.contenttype.EncodingGuesser" methodName="canGuess"/>
</pointCut>

IDEA に Pleiades 日本語化プラグインを挿してみた

最新の IntelliJAndroid Studio などを日本語化する場合は、http://qiita.com/cypher256/items/a87179fbe8dd7f63ec4e を参照してください。




高速統合開発環境 IntelliJ IDEA に Pleiades を適用してみました。
ちょっとだけ日本語になりました。

やり方

  1. /plugins に pleiades.zip の plugins/jp.sourceforge.mergedoc.pleiades を配置
  2. /bin/idea.exe.vmoptions の末尾に -javaagent 追加

-Xms128m
-Xmx512m
-XX:MaxPermSize=250m
-XX:ReservedCodeCacheSize=64m
-ea
-javaagent:../plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar

IntelliJ IDEA ダウンロードページ
Pleiades 最新版ダウンロードページ

Juno スプラッシュ関連の Pleiades アップデート

Eclipse Juno Splash 画像

1.3.5.I20120722

  • Eclipse 4.2 翻訳差分追加
  • Eclipse 4.2 用の Pleiades スプラッシュ画像を追加
  • Eclipse 4.2 標準スプラッシュが画像サイズ変更によるクリーン・メッセージのサイズ可変対応
  • Eclipse 4.2 起動時の進捗バーがあまり進まない問題を AOP で改変修正
  • 起動オプションに -Xverify:none を指定すると Eclipse Workbench クラスの動的コンパイルに失敗する問題を修正

フリーズ不具合修正と eclipse.ini の設定値

E4 に対する Pleiades 本体の不具合を修正し、Pleiades All in One にも反映しました。

不具合修正・変更内容

Pleiades 1.3.5.I20120716
  • -clean 時などで発生していた E4 マルチスレッド強化によるデッドロック (フリーズ) 問題を修正
  • AOP ジョイントポイント判定の最適化により全体を高速化
  • 更新マネージャーからプラグインを更新した後の次回再始動時に -clean 動作するように修正
  • -clean 時、スプラッシュの下に「クリーンアップ中」メッセージを表示
Pleiades All in One 4.2.0.v20120716

Pleiades 更新
eclipse.ini の -Xmx を 1g に設定 (64 bit版)

Pleiades All in One の eclipse.ini メモリ設定

以下、ダウンロードページに記載したものを転載します。



ヒープの最小 Xms と最大 Xmx は同じにしたほういいの?

 サーバーで利用する Sun Server VMJRockit は同じサイズを指定して GC 回数を減らすことが推奨されています。ただし、これは GC の 1 回あたりの負荷が高くなり、コンカレント GC であってもクライアント GUI アプリケーションなどの場合は操作がブロックされるように感じられる場合があります。IBM JVM では、このような GC 負荷を減らすため -Xms にはアプリケーションで必要な最小サイズを指定することが推奨されています。Eclipse を実行する環境としても JVM の種類に関わらず -Xms には適切な最小サイズを指定することをお勧めします。

パーマネント領域の指定について

 -XX:MaxPermSize ではなく --launcher.XXMaxPermSize で指定しているのは、-XX:MaxPermSize が Sun JVM の拡張オプションであり、それ以外の JVM では起動できない場合があるためです。 Eclipse ではその問題を回避するために、--launcher.XXMaxPermSize が指定された場合、JVM ランチャーである eclipse.exe が Sun JVM に -XX:MaxPermSize を渡し、それ以外の JVM には何も渡しません。IBM JVM はパーマネント領域は自動制御されるため指定する必要がなく、JRockit ではパーマネント領域ではなくネイティブ領域 (物理メモリ - ヒープ) にクラス情報が格納されます。

-XX:MaxPermSize を指定しないと起動しない場合があるのはなぜ?

 前述の問題を eclipse.exe が解決するため、基本的には -XX:MaxPermSize を指定してはいけません。基本的にというのは、過去に少なくとも 2 つの問題があり、そのような場合は -XX:MaxPermSize の指定が必要な場合があります。1 つは Eclipse 3.3.0 が JVM に -XX:MaxPermSize を渡さないバグがありました。2 つ目は Sun が Oracle に買収されたときに、VM が保持する会社名文字列を Sun から Oracle に変更し (内部仕様変更として外部には告知されなかった)、不運にも eclipse.exe はこれを文字列判定していたため問題が発生していました。この問題は Java 6 update 21 で修正されています。

-Duser.name によるクラス作成時の Javadoc @author 自動補完

 デフォルトでは未設定ですが -vmargs 以降に下記のような指定を追加すると、クラス作成時に Javadoc @author タグに名前を自動補完することができます。
例)-Duser.name=cypher256

All in One 4.2 Juno の 32bit 版を追加

どれをダウンロードしたらいいか分かりにくいかもしれません。


eclipse.ini の -Xms を 256m に設定
Pleiades をマルチコア向けにパフォーマンス・チューニング
・64bit C/C++ 版の C++ ビルドで make や rm が必要だったため MSYS 追加 (mingw に上書き)

4.2.0 Juno (ジュノー) 対応 Pleiades リリース内容

cypher2562012-06-28


eclipse.org から統合開発環境 Eclipse 4.2 Juno がリリースされました。

Pleiades All in One 日本語 Eclipse 4.2.0

3 系のパッケージがなくなったため、Pleiades All in One も 4 系に移行し、ついでに 64 bit 版に移行しました。 ⇒ 2012/07/07 32bit 版もリリースしました。

4.2.0.v20110627

  • プラグインミドルウェアの 64bit 版への変更とバージョンアップ
  • JRE あり版に同梱の Java を 5, 6, 7 の 3 つから 6, 7 の 2 つに変更
  • JRE あり版に同梱の Tomcat を 5.5, 6, 7 の 3 つから 6, 7 の 2 つに変更
  • Subversiveネクター SVNKit 1.3.7 に加え 1.7.4 を追加 (設定で切換可能)
  • E4 で .metadata.default によるエンコーディング UTF-8 指定が困難なため、-Dfile.encoding 指定に変更 ⇒ v20120701 以降は自動設定されるように戻しました。
  • PHP 版の php.ini のデバッグを無効にしてしまっていたため有効化 (xdebug.remote_enable = 0 ⇒ 1)
  • C/C++ 版のコンパイラ MinGW をパーソナルビルド sezero に変更

ダウンロード
日本語化 Eclipse 4.2 Juno ジュノー | MergeDoc Project


Pleiades プラグイン日本語化プラグイン

Pleiades All in One には、このプラグインが含まれています。
Eclipse が動く環境であれば、OS や 32bit・64bit は問いません。
今回は主に E4 対応で、約 1 年ぶりの安定リリースになります。

1.3.4 - 2012.06.27

・E4 ワークベンチのイベントループ・タイミング変更による AOP 対応
・E4 用の preload 未実装のため eclipse.exe startup.cmd の添付を廃止
Java 1.3、1.4、5、6 API ドキュメントの URL 参照先を sun から oracle に変更 (7 は無し)
・他

ダウンロードPleiades 本体ダウンロード > 安定版 をクリック
Eclipse 日本語化 | MergeDoc Project

JStyle 改行空白表示プラグイン

Pleiades All in One には、このプラグインが含まれています。
今は Windows 64bit 版のみで他の OS 向けのものはありません。
⇒(20120704 追記) Windows 32bit 版をリリースしました。

Eclipse 4.2.0 向けにビルド(機能的な変更無し)

ダウンロード
JStyle - Eclipse 改行、タブ、全角空白を表示 | MergeDoc Project

Eclipse 3.7.2 Indigo SR2 リリース

Eclipse Indigo SR2 関連リリース

eclipse.org から統合開発環境 Eclipse 3.7 系最終安定板の Eclipse Indigo SR2 (3.7.2) がリリースされました。それに合わせて下記をリリースしました。

Pleiades All in One 日本語 Eclipse 3.7.2

Eclipse 3.7 系の最終安定板に日本語化プラグイン Pleiades、JStyle やその他プラグインを含む All in One です。Eclipse Windows 32bit 版がベースになっていて、Windows 32bit または 64bit で動作します。

Eclipse Indigo 3.7.2.v20120225

ダウンロード
日本語化 Eclipse 3.7 Indigo インディゴ | MergeDoc Project


Pleiades All in One 64bit
Windows 64bit 環境でも 32bit の Eclipse & Java をお勧めしますが、64bit の Pleiades All in One を作る場合はこちらの方が詳しく書かれています。
x64(64bit)版のPleiades All in Oneを作る(完全版) - ごりぽんソフトウェア

Pleiades プラグイン日本語化プラグイン

Pleiades All in One には、このプラグインが含まれています。
Eclipse が動く環境であれば、OS や 32bit・64bit は問いません。

・ADT、CheckStyleFindBugs、PDE、PDT、WTP の訳追加

ダウンロードPleiades 本体ダウンロード > 最新版 をクリック
Eclipse 日本語化 | MergeDoc Project

JStyle 改行空白表示プラグイン

Pleiades All in One には、このプラグインが含まれています。
Windows 32bit 版と 64bit 版のみで他の OS 向けのものはありません。

Eclipse 3.7.2 向けにビルド(機能的な変更無し)

ダウンロード
JStyle - Eclipse 改行、タブ、全角空白を表示 | MergeDoc Project

Eclipse リリース・トレイン

下記は将来を含む Eclipse のリリース一覧で、* は Pleiades All in One が対応するバージョンを表します。E4 の All in One は Kepler 以降となります。

リリース コードネーム 3 系 4 系 備考
2004/06 3.0 最初の OSGI
2005/06 3.1 Pleiades が出た
2006/06 Callisto 3.2
2007/06 Europa 3.3 * Pleiades All in One 初版
2008/06 Ganymede 3.4 *
2009/06 Galileo 3.5 *
2010/06 Helios 3.6 * 4.0 最初の E4 リリース
2011/06 Indigo 3.7 * 4.1 今回の SR2 はこれの最終版
2012/06 Juno 3.8 * 4.2 3 系最終
2013/06 Kepler 4.3 * 4 系へ完全移行
2014/06 4.4 *

プログラマ向けの目が疲れない配色 SOLARIZED

SOLARIZED という様々な環境(照明、ディスプレイなど)で入念にテストされ設計された目に優しいプログラマ向けの配色が注目されています。Pleiades All in One の場合、Eclipse Color Theme というプラグインが含まれていて、それにインポートすることで導入可能です。


1. Eclipse Color Themes から XML をダウンロード。2 種類あります。


2. Eclipse > ウィンドウ > 設定 > 一般 > 外観 > 色テーマ > テーマのインポート ボタンを押し、ダウンロードした XML をインポートします。一覧に Solarized Light または Solarized Dark が表示されるので選択して OK を押します。