Eclipseプラグイン実践テクニック(2)
高機能なXMLエディタをプラグインとして作る
ダブルクリック時の動作のカスタマイズ |
さて、PDEのサンプル・ウィザードで自動生成したXMLエディタでは、エディタ上でダブルクリックすると、ダブルクオートで囲まれた範囲が選択状態になります。ダブルクオートで囲まれていない場合はキャレット位置の単語を選択状態にします。一見問題なさそうですが、以下のようなケースでの動作に問題があります。
図4 ダブルクリック時の動作 |
タグをまたいでダブルクオートを認識してしまっているわけですね。ここではクリックした部分の単語が範囲選択されることが望ましい動作といえますので、この問題を修正してみましょう。ダブルクリック時の動作はXMLDoubleClickStrategyで定義されており、XMLConfigurationのgetDoubleClickStrategy()メソッドによってエディタに供給されます。従ってダブルクリック時の動作をカスタマイズするにはXMLDoubleClickStrategyを修正することになります。以下のように範囲を検出するための区切り文字を変更します。
リスト7 |
public class XMLDoubleClickStrategy |
この修正によって、ダブルクリック時に以下のように適切な範囲選択が行われるようになります。
図5 期待どおりの範囲選択が行われるようになった |
3/4 |
INDEX |
||
第2回 高機能なXMLエディタをプラグインとして作る |
||
Page1 テキストエディタの拡張 |
||
Page2 コードアシストの実装 |
||
Page3 ダブルクリック時の動作のカスタマイズ |
||
Page4 ハイパーリンク機能 |
Java Solution全記事一覧 |
Java Agile フォーラム 新着記事
- 実運用の障害対応時間比較に見る、ログ管理基盤の効果 (2017/5/9)
ログ基盤の構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。今回は、実案件を事例とし、ログ管理基盤の有用性を、障害対応時間比較も交えて紹介 - Chatwork、LINE、Netflixが進めるリアクティブシステムとは何か (2017/4/27)
「リアクティブ」に関連する幾つかの用語について解説し、リアクティブシステムを実現するためのライブラリを紹介します - Fluentd+Elasticsearch+Kibanaで作るログ基盤の概要と構築方法 (2017/4/6)
ログ基盤を実現するFluentd+Elasticsearch+Kibanaについて、構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。初回は、ログ基盤の構築、利用方法について - プログラミングとビルド、Androidアプリ開発、Javaの基礎知識 (2017/4/3)
初心者が、Java言語を使ったAndroidのスマホアプリ開発を通じてプログラミングとは何かを学ぶ連載。初回は、プログラミングとビルド、Androidアプリ開発、Javaに関する基礎知識を解説する。
|
|