読者です 読者をやめる 読者になる 読者になる

この日記は私的なものであり所属会社の見解とは無関係です。 GitHub: takahashikzn

Eclipse4.4 "Luna"の新機能一覧

f:id:takahashikzn:20140608210856p:plain


2014-06-25 16:10 追記

  • 画像やURLがリンク切れになっています。マイルストーンビルドのChangeLogページごと消されたことが原因。後で修正しておきます。


2014-06-26 01:07 追記



そろそろ、毎年恒例のお勤め(環境移行)がやってまいります。リリース予定は6/25。
ティザーサイトは http://eclipse.org/luna/ になるはずですが、現時点では他のページヘリダイレクトされます。


もはや義務感でやっているような気がしないでもありませんが、新機能の解説です。
ただし解説対象はJDTとEmacs関連が中心で、僕が興味を持ったものだけです。
プラグイン開発者向け機能(PDE)は省略しています。悪しからず。


去年のEclipse4.3 "Kepler"についてはこちら。
http://takahashikzn.hatenablog.com/entry/20130625/1372153189

Lunaへの移行

ところで僕は、マイルストーン3の頃からLunaを常用していますが、大きなトラブルはありません。
ただし、
マイルストーンビルド用リポジトリリリースビルド用リポジトリ混ぜるな危険」。
最悪、Eclipseが起動しなくなるので素人?にはおすすめできない。


しかもLunaに乗り換えたとたんに、いくつかプラグインが動かなくなったので、下記のような対応をしました。

他にも何かあるかもしれませんが自力で頑張ってください。


え?GitHubへアップしろ?お客さ〜ん、ウチそういうのやってないんだよね。。。(面倒くさい)

MileStone1

http://download.eclipse.org/eclipse/downloads/drops4/S-4.4M1-201308072000/news/

Improved Recenter command: リセンター処理の改善

Like in Emacs, the Recenter command in textual editors now cycles between center, bottom and top.

Emacsのように、リセンター(カーソルのある行をエディタの中心に持ってくる操作)が「中心」「末尾」「先頭」をサイクリックに繰り返すようにしました。



Collapse All in Ant view: antビューで「すべて開く」


The Ant view now supports the Collapse All command:

Antビューで「すべて開く」を使えるようになりました。



Failure trace font for the JUnit view: JUnitでテスト失敗時のスタックトレースへフォントを指定できるように


The font for the failure trace in the JUnit view is now configurable on the General > Appearance > Colors and Fonts preference page.

JUnitビューで、テスト失敗時のスタックトレースでフォントを指定できるようにしました。

「"一般" -> "外観" -> "フォントと色"」から設定。

ただし、僕はEclipseを英語のまま使っているので、メニュー名がこれで正しいのかは知りませぬ。



Contributed VMs are more recognizable: contributedなVMが一目瞭然に


You can't remove VMs that have been contributed to Eclipse via the org.eclipse.jdt.launching.vmInstalls extension point. This fact is now more recognizable:

"contributed"なVMを、「インストールされたJVM」の一覧画面から削除できなくなりました。

ところで、contributedなVMって何ですかね?「同梱」はbundledだしなぁ…



Improved HCR for member types: 実行中コード入れ替えの改善

Hot Code Replace (HCR) has been improved in the Java debugger to ensure the correct method is dropped to in member types (inner / anonymous / local classes).
For more information see the bugzilla entryhttp://bugs.eclipse.org/bugs/show_bug.cgi?id=409023.

デバッガを使っている最中にコードを書き換えるとEclipse様が怒り出すことがあるのですが、改善されたようです。
「実行中コードの入れ替え」が改善されました。

リンク先を見ると、スタックトレースで同じ名前のメソッドが連続しているケースの動作が問題になっていたようですね。ふーん。

MileStone2

http://download.eclipse.org/eclipse/downloads/drops4/S-4.4M2-201309182000/news/

Perspective re-ordering: パースペクティブの並べ替えが可能に


You can now drag and drop the items in the perspective switcher to change the order of your open perspectives.

ドラッグ・アンド・ドロップ。



Label decorator support for the JUnit view: JUnitビューでラベル装飾


The JUnit view now supports label decorators contributed via the org.eclipse.ui.decorators extension point:

JUnitビューでラベル装飾が出来るようになり、ハデになりました。

MileStone3

http://download.eclipse.org/eclipse/downloads/drops4/S-4.4M3-201310302000/news/

GTK+ 3 used by default: GTK+3がデフォルトに

SWT and Eclipse will now use the GTK+ 3 libraries by default on all Linux/Unix platforms, whenever GTK+ 3 is installed and available. Previously SWT defaulted to using GTK+ 2.
The GTK+ 3 port of SWT is still early access and you can force Eclipse to use the more stable GTK+2 port by setting the environment variable SWT_GTK3 to 0, if needed. (For example: export SWT_GTK3=0)

SWTは、GTK+3が利用可能ならば、それをデフォルトとして使うようになりました。
ただしGTK+3のSWTはまだ不安定なので、それが嫌ならGTK+2を強制することも可能です。環境変数SWT_GTK3=0として下さい。



Filter conflicting projects during import: プロジェクトのインポート時に、競合しているものを隠す


When importing existing projects, you can now filter out any conflicting projects (projects that are already present in your workspace).

プロジェクトのインポート時に、競合しているプロジェクトがあるならそれを隠すことが出来るようになりました。

ここで言う競合とは、すでにワークスペースに存在するのに、同名のプロジェクトがインポート可能なケースを指すようです。

MileStone4

http://download.eclipse.org/eclipse/downloads/drops4/S-4.4M4-201312121600/news/

Split Editors: エディタの分割が可能に


Finally, Bug 8009 has been addressed! You can now split / unsplit the currently active editor. Just use one of the new key bindings supplied in Luna M4:
Ctrl+_ splits the editor one above the other
Ctrl+{ splits the editor side by side
Re-applying the command to an already split editor reverts it to only have one pane.

ついに、バグ8009が対応されました!エディタを分割・分割解除できます。新たなキーバインドが追加されています。

[ Ctrl + "_" ]
縦分割
[ Ctrl + "{" ]
横分割

です。同じキーバインドを再実行するとエディタ分割が解除されます。

この機能、僕が渇望していた機能だと思っていたのですが。。。そうではありませんでした。
何と、同一のファイルを分割表示することしかできません。異なるファイルを2つ並べて表示するのは無理。

僕はサッサと見切りをつけ、他のプラグインを使うことにしました。詳しくはこちら。
http://takahashikzn.hatenablog.com/entry/2014/04/15/210219



SWT requires JRE 1.5: SWTはJRE1.5以上が必要

The SWT project has moved to Java 1.5 compliance level. SWT applications will now require JRE 1.5 or higher to run.

SWTプロジェクトはJava1.5へ移行しました。Eclipse実行にはJRE1.5以上が必要です。

というか、まだJava1.4をサポートしてたのか。すげーな。



Java™ 8 feature patch: Java8対応

The Eclipse support for Java™ 8 is making very good progress. Interested parties can take a sneak preview using the following install instructions.

Java8対応はすこぶる順調。Keplerでも試せます。詳しくはこちら。http://wiki.eclipse.org/JDT/Eclipse_Java_8_Support_%28BETA%29



ECJ requires 1.6 JRE: ECJはJava6が必要

The JDT Core project has moved to Java 1.6 compliance level. This means the command line compiler now requires JRE 1.6 or above to run.

JDTコアプロジェクトはJava6へ移行しました。コマンドラインツールの実行にもJava6が必要です。



Quick Fixes to create 'for' loops: forループに関するクイックフィックスが追加

A set of new quick fixes can create for loops that iterate over a given expression.

式をイテレートする際のクイックフィックスが追加されました。


For arrays:

  • Create an enhanced for loop
  • Create a for loop using an index

配列に関して、

  • 拡張ループ文
  • インデックスベースのループ文

を選べます。


For Collections:

  • Create an enhanced for loop
  • Create a for loop using an Iterator

For Lists:

  • Create a for loop using an index and get(i)

コレクションに関して、

リストに関しては、

  • インデックスベースのループ文

を選べます。

MileStone5

http://download.eclipse.org/eclipse/downloads/drops4/S-4.4M5-201401231600/news/

New option for minimized stacks: 領域の新たな表示モードが追加

We've extended the MinMaxAddon to have two different display modes:

  • Use Overlays: This is the current mode where showing a view in a minimized stack opens it in a 'fly out', overlaying part of the presentation.
  • Temporary Restore: This is a new mode that will temporarily put the stack back into the perspective layout while one of its views is active. This has the advantage that the minimized view won't overlay anything in the current presentation (e.g. your editor...).

領域の表示モードが追加されました。

  • オーバーレイ: 従来のモード。最小化された領域を、現在のビューにオーバーレイで表示します。
  • 一時的復旧: 追加されたモード。領域を一時的に元の表示形式に戻し、戻した領域が非アクティブになったら再び最小化されます。オーバーレイではないので他のビューを邪魔することがありません。

In order to access the new mode, right-click on the Restore button of a minimized stack and clear the Use Overlays menu item (see image below). Note that this change is global, so once it's set, all minimized stacks will use the selected mode.

新しいモードを使うには、復旧ボタンでの右クリックから設定を有効化します。この設定はグローバルなので、他の領域全てに反映されることに注意して下さい。


Here's what the current mode looks like:

オーバーレイドモードはこんな感じ。


Here's what the new mode looks like. Note how the editor has been pushed to the right rather than being obscured:

新しいモードはこんな感じ。エディタが右寄りになっています。


We're really interested in your feedback on this! The initial response has been positive enough that we're considering making the non-overlay mode the default. What do you think? (Post your comments on bug 426556).

もし好評なら一時的復旧モードを標準にしようと思っています。ぜひ意見求む。



Enabled coloring of variables: 引数とローカル変数の色設定が可能に


Parameter variables and local variables are now colored by default:

This can be disabled or configured with different colors and styles on the Java > Editor > Syntax Coloring preference page.

引数とローカル変数に色を設定できるようになりました。

"Java" -> "エディタ" -> "構文"から設定できます。(メニュー名は予想)

MileStone6

http://download.eclipse.org/eclipse/downloads/drops4/S-4.4M6-201403061200/news/

Experimental support for WebKit2 added to the SWT Browser: Webkit2の試験的サポート

The SWT Browser now has preliminary support for WebKit2. To try it out, create a browser widget with style SWT.WEBKIT, and set the environment variable SWT_WEBKIT2 to 1. This is only supported with GTK+ 3.x; if GTK+ 3 is disabled the browser will fallback to WebKit1.

SWTのWebブラウザは、SWT_WEBKIT2=1という環境変数が設定されており、かつGTK+3が有効ならばWebkit2を使うようになりました。



Dark Theme: 黒基調のテーマ


A new experimental CSS theme based on a community contribution has been added. This popular community theme demonstrates the capabilities of the current CSS styling. This new theme helps the Platform team to continue to improve these capabilities.
CSS theming in Eclipse 4 does currently not allow to configure the syntax highlighting in text editors (e.g. the Java editor), so it is recommended to use the dark theme together with additional settings as for example provided by the Eclipse color theme project.

試験的ではありますが、CSSテーマ機能が強化されました。以下の画像の通り。ただしEclipse4におけるCSSテーマ機能は構文ハイライトには対応していないので、例えばEclipse Color Themeプラグインのようなものを併用することをオススメします。

ところで、個人的にはJeeyul's Eclipse Themesがオススメです。



Open as project: プロジェクトとして開く


In the Project Explorer, a folder that contains a .project file and whose related project isn't already in the workspace now shows an Open As Project context menu entry that imports the folder as existing project into the workspace.

プロジェクトエクスプローラで、.projectファイルを含み、かつフォルダかつワークスペースに存在しないフォルダをプロジェクトとして開くことが出来るようになりました。
プロジェクトのインポートと同じ結果になります。



Updated launch options: ランチャーのオプションを追加


The default preference for the fall-back behavior of context-sensitive launching has been changed to launch the previous application.

Existing workspaces that use the "Always launch the previously launched application" option are not affected by this change.

コンテキストメニューからのランチャーに関するフォールバックオプション(操作に失敗した時に試行される動作)に関して、デフォルト値が変更されました。
「前回起動したアプリケーションを起動する」という選択ができるようになります。

ワークスペース単位で設定する「常に、前回起動したアプリケーションを起動する」は、上記オプションの影響は受けません。



CSS includes: CSSインクルード

CSS files for Eclipse can now include other CSS files via the @import url("platform:/plugin/Bundle-Symbolic-Name/path/file.extension"); statement. This allows easy reuse of existing style sheets.

Eclipseの外観設定用CSSで、@importが使えるようになりました。



CSS Bridge: Eclipse3.xの設定項目をCSSで指定可能に

上記画像のようなCSSクラスを使うことで、Eclipse3.xの設定項目を指定できるそうです。(手抜き)

MileStone7

http://download.eclipse.org/eclipse/downloads/drops4/S-4.4M7-201405010200/news/

Improvements in the dark theme: 黒基調テーマの改善


The dark theme has been customized to work better on Window, Linux and Mac.

The platform also supports that projects can extend existing themes like the dark theme with settings for fitting syntax coloring. See bug 433475 for details.

黒基調テーマの外観が向上しました。

こんな感じのテーマを自作することもできます。詳しくはこちらを参照。http://bugs.eclipse.org/bugs/show_bug.cgi?id=433475



Platform icons converted to png files: 各種アイコンがPNGベースに


Based on a community contribution, lots of of the existing GIF icons in the Eclipse platform have been replaced by PNG files. This makes Eclipse icons look better on a dark background, as for example the toolbar on Mac OS X or on a dark theme.

皆がサポートしてくれたおかげで、GIFベースだったアイコンをPNGへ移行できました。

PNGは黒基調のテーマで特に映えるそうです。



Ubuntu menu integration: Ubuntuのメニューへの統合

In cooperation with Canonical, the Platform team worked on the support of Eclipse in Ubuntu 14.04. Ubuntu 14.04 supports the Eclipse 4 menu implementation, which had issues in Ubuntu 13.04 and 13.10. For more details, see bugs Eclipse menu does not render correctly in unity bar and Eclipse menus doesn't show up in Saucy.

Canonical(Ubuntuを作っている会社)の協力により、Eclipse4.4はUbuntu14.04でサポートされることになったそうです。
Ubuntu13.04と13.10ではメニューとの統合に問題があったそうで。詳しくはこちら。
http://bugs.launchpad.net/appmenu-gtk/+bug/613119
http://bugs.launchpad.net/ubuntu/+source/unity-gtk-module/+bug/1208019

Model dynamics - perspectives: アイコンが動的に差し替え可能

The renderer of the application model supports now that the icons of perspectives are exchanged at runtime. Such a change is immediately reflected in the user interface.

おそらくプラグインの話ですが、アイコンが動的に差し替え可能になったとのこと。



Java 8

Java™ 8 is here, and JDT fully supports it:

  • The Eclipse compiler for Java (ECJ) implements all the new Java 8 language enhancements
  • Updated significant features to support Java 8, such as Search and Refactoring
  • New formatter options for lambdas
  • Quick Assist and Clean Up to migrate anonymous class creations to lambda expressions and back:

Before:

Java8がフルサポートされました。

  • ECJがJava8のすべての構文をサポート
  • Java8向けの検索・リファクタリングを強化
  • ラムダ式に関するフォーマッターオプションを追加
  • 無名クラスをラムダ式へ変換するクイックアシストを追加(超重要)

例えばこんな無名クラス式に対して、


After the Quick Assist (Ctrl+1), the 6 lines are condensed into 1:

クイックアシストにより、6行の式が1行へと自動変換されます。マジ便利。

マイルストーンビルドのwhat's newで記載がなかった新機能

Quick fix to change project compliance and JRE to 1.8: Javaの準拠レベルを一発でJava8に設定

A quick fix Change project compliance and JRE to 1.8 is provided to quickly change the current project to be compatible with Java 8.

プロジェクトを一発でJava8準拠へ設定するクイックフィックスが追加されました。



Change lambda expression body block to expression and back: ラムダ式のブロック有無を切り替え

You can convert the body of a lambda expression from block to expression (and back) by invoking the Quick Assists (Ctrl+1):

ラムダ式のブロックを、クイックフィクスでON/OFF出来るようにしました。




View the method implemented by the functional interface instances: ラムダ式が実際に実装しているメソッドを調べる

To view the method implemented by the functional interface instances, you can hover on:


'->'にカーソルを置くとこうなる


'::'にカーソルを置くとこうなる


Navigate to the functional method declaration: ラムダ式が実際に実装しているメソッドの宣言へ移動

To navigate to the functional method declaration, hold Ctrl, move the mouse pointer over '->' or '::', and click the hyperlink.

Ctrlを押しながらマウスポインタを'->'ないし'::'に置くとリンクが表示される。



Option to control lambda code formatting: ラムダ式関連のコードフォーマット設定を追加

New options are provided in the formatter page to configure the formatting of lambda expressions.

ラムダ式関連のコードフォーマット設定が追加されました。

ラムダ式の本体のブレース位置を設定


アロー演算子前後の空白文字に関する設定


Null type annotations: 型パラメータにNull解析アノテーションを付与

With the advent of "type annotations" as introduced in Java 8 via JSR 308, JDT takes null pointer analysis to the next level.

This feature requires a set of nullness annotations declared with @Target({TYPE_USE}), which JDT ships as version 2.0.0 of the org.eclipse.jdt.annotation bundle.


With these annotations, nullness can be considered as an intrinsic part of the type system, allowing the compiler to perform null type checking along with each task of type checking.

This is a major step towards systematically detecting all possible NullPointerExceptions in a program.


The most obvious benefit is in annotating type arguments of generic types:

(後で書く)

最後に

RCリリース以降は機能追加が無いっぽいので、これで解説は終わりです。
最後の方は酒が回りすぎたので、手抜きが目立ちますがご容赦を。

フロム・ザ・バレル 500ml

フロム・ザ・バレル 500ml

ちなみに、これを飲みながら書きました。この酒は、値段の割にはめちゃ旨い。
Amazonのレビューはマジです。オススメ。