RedPen IntelliJ IDEA プラグインをリリースしました

ATL の伊藤です。RedPen を手軽に使える環境として、RedPen IntelliJ IDEA プラグイン をリリースしました。IntelliJ IDEA は JetBrains 社が提供する、Java の統合開発環境です。RedPen IntelliJ IDEA プラグインは JetBrains 社製が提供する他の IDE でも動作します。

RedPen プラグインを利用すると、編集中のテキストファイルのエラー箇所が Microsoft Word のようにハイライトされます。またエラー箇所にカーソルを合わせると、エラーメッセージがポップアップされます。以下 RedPen IntelliJ IDEA プラグインの画面となります。

image

画像では英語の編集をしていますが、もちろん日本語でも動作します。

エラーの一覧がほしい時には、Alt+Shift+R を押すか IDEA の Analyze → RedPen を指定すると、ポップアップウィンドウでエラーの一覧が表示されます。

インストール方法

プラグインは JetBrains 社が提供するプラグインリポジトリに登録されています。そのため、他の IDEA 用のプラグインと同じ方法でインストールできます。具体的には、Settings → Plugins → Browse Repository を開いて、RedPen を検索します。検索すると RedPen プラグインが表示されるので、インストールをクリックします。

入力データのフォーマット

現状、RedPen プラグインは以下のフォーマットをサポートしています。

  • 平文
  • Java のプロパティファイル
  • Markdown
  • AsciiDoc

言語サポート

現状日本語(ja 及びその派生)と英語(en)をサポートしています。記述言語はファイル毎に自動で同定されますが、ウィンドウ下部のステータスバーを利用して手動で修正できます。手動で選択された各ファイルの言語情報は .idea/redpen/files.xml に保存されます。

言語選択

クィックフィックス

RedPen IntelliJ プラグインの特徴にクィックフィックスがあります。ユーザはエラー箇所にカーソルを置き、クィックフィックス用のコマンド(Alt+Enter)実行すると、エラーが修正できます。クィックフィックスの内容は機能ごとに異なります。残念ながら、現在一部の機能しかクィックフィックスに対応していません。対応していない機能が出力したエラーをクィックフィックスしようとすると、エラー箇所を削除(Remove)するか聞かれます。

クィックフィックスの様子

クィックフィックスの評価

クィックフィクス機能は最後につけた機能ですが、評判は良いようです。たとえば JetBranis 社の Hariri 氏からポジティブな評価をいただきました。

設定

RedPen の特徴は設定の柔軟性です。ユーザは利用する機能を追加、削除したり、規約に適合するように設定項目を調整できます。RedPen IntelliJ プラグインでも柔軟性は損なわれてはいません。RedPen IntelliJ プラグインでは、設定変更は UI を利用します。Settings → Editor → RedPen で RedPen の設定画面がひらきます。

設定画面

チェックボックスを非選択にすると プラグインは非選択の機能を利用しなくなります。各機能のプロパティを修正するには、プロパティ(Properties)部分をクリックして直接編集します。プロパティは複数選択でき、セミコロンで分割します。プロパティには辞書ファイルの場所などを指定できます。

シンボル(文字)についても RedPen コマンドと同様に、細かく設定できます。設定用ウィンドの Symbols タブを開くとシンボルの設定ができます。以下はシンボルを設定している画面です。RedPen のシンボル設定については RedPen ドキュメントを参照してください。

文字設定

設定が終了すると、設定ファイル、.idea/redpen/<言語>.xml が生成されます。日本語であれば、.idea/redpen/ja.xml となります。また日本語の設定には三種類のバリエーションがあります。自動で同定された各バリエーション用の設定ファイルが生成されますのでご注意ください。たとえば、日本語文書であっても半角ピリオドを利用する文書には .idea/redpen/ja-hankaku.xml が生成されます。また、設定画面でデフォルト設定を編集するまで、設定ファイルは生成されない点も注意してください。

設定のインポート・エクスポート

ユーザがすでに RedPen の設定ファイルを持っている場合には、お手持ちの設定をインポートできます。インポートするには Import ボタンを押した後、設定ファイルのパスを指定します。

Export ボタンを押すと、現在の設定が指定した場所にエクスポートできます。Export ボタンは将来、設定を使いまわしたい場合に利用してください。ユーザが設定を変更した時に、設定は .idea/redpen ディレクトリ以下に保存されます。ですので、チームで設定を使いまわしたい時には .idea ごとバージョン管理システムに追加するとよいでしょう。

JavaScript で機能追加

RedPen IntelliJ IDEA プラグインでは JavaScript での機能拡張もサポートしています。JavaScript を利用した機能拡張を作成する方法についてはこちらを参照してください。デフォルトでは、IntelliJ IDEA は .idea/redpen/js ディレクトリに存在する JavaScript ファイルをロードします。 また、機能拡張を読み込むディレクトリは script_path プロパティを利用すると変更できます。

設定ファイルの直接編集

RedPen の設定ファイル(XML).idea/redpen ディレクトリに保存されます。直接編集した際に設定をリロードするにはプロジェクトの再起動が必要になります。これに対し、RedPen プラグインの設定画面から編集した場合には設定は即座に反映されます。

辞書のサポート

RedPen が提供する機能の多くは辞書をサポートし、list と dict プロパティを提供します。list プロパティは小規模の辞書として使用します。各要素は以下の例のようにコンマによって分割します。

dict プロパティで指定する辞書ファイルは .idea/redpen に保存します。辞書を保存したのち、dict プロパティでファイルを指定します。以下は辞書を指定する設定例です。

サンプル

本ブログポストを書いた IDEA のプロジェクトをここに置きました。ディレクトリ構成などの参考にしてください。以下は IntelliJ で本ブログを編集しているウィンドウです。

redpen-ja-sample

本ブログの執筆では、IntelliJ の Markdown プラグインを併用して執筆しています。Markdown プラグインを使用すると執筆中にマークダウンのプレビュー画面が見えて便利です。

markdown-preview-sample

また、AsciiDoc プラグインと併用すると、Markdown プラグインと同様に AsciiDoc 文書のプレビューが表示されます。

RedPen v1.5 もあわせてリリース

RedPen IntelliJ プラグインに合わせて、RedPen v1.5もリリースしました。v1.5では大きく二つの強化が行われました。

  • Java のプロパティファイルが入力フォーマットとしてサポート
  • Wiki パーサがエラー箇所のオフセット情報を出力

今後、機能追加および、Re:VIEW フォーマットに対応したいと考えています。

RedPen IntelliJ プラグインの今後

RedPen IntelliJ プラグインの開発は一旦落ち着きます。実は IntelliJ プラグインを開発する中で、英語対応を優先しすぎて日本語のデフォルト設定に一部好ましくない点があります。しばらくは、細かな修正を積み重ねて行く予定です。