パーソナルツール

java_getset.vim : Javaのゲットメソッド、セットメソッドを生成

作者: 小見 拓 最終変更 2012年01月12日 12時37分
— カテゴリ:

Java言語用のスクリプトで 変数のアクセサメソッドを作成します。 Java言語では、アクセサメソッドは多用されるので 有用なスクリプトです。 (Windows, Mac)

概要

java_getset.vim : Automatically add getter/setters for Java properties (including array-based)
http://www.vim.org/scripts/script.php?script_id=490

Java言語用のスクリプトで 変数のアクセサメソッドを作成します。

// 変数
private String name;
// アクセサメソッド生成(デフォルト)
/**
 * Get name.
 *
 * @return name as String.
 */
public String getName()
{
    return name;
}

/**
 * Set name.
 *
 * @param name the value to set.
 */
public void setName(String name)
{
    this.name = name;
}

インストール方法

vim online から、 スクリプトをダウンロードしてきます。

ファイル URL
java_getset.vim http://www.vim.org/scripts/script.php?script_id=490

ダウンロードしたスクリプトは、
$VIMRUNTIME/ftplugin
にコピーしてください。

使用方法

ノーマルモードで現在カーソルのある行、
もしくはビジュアルモードで選択している行の変数に対して、
働きます。

<LocalLeader>g

このコマンドでgetterメソッドを追加します。
変数上で「 ¥ g 」を入力してみてください。

<LocalLeader>s

このコマンドでsetterメソッドを追加します。
変数上で「 ¥ s 」を入力してみてください。

<LocalLeader>b

このコマンドでgetterメソッド、setterメソッドを共に追加します。
変数上で「 ¥ b 」を入力してみてください。

<LocalLeader>p

このコマンドはプロンプトを立ち上げ、 どのアクセサを追加するか、尋ねてくるコマンドです。

/dist/img/vim/java_getset_prompt.jpg

変数上で「 ¥ p 」を入力してみてください。

Note

プロンプトの機能は、香り屋Mac OS X用 gvim 6.1.392で、使用するとフリーズしました。
原因は不明です。
もし、貴方の環境でもフリーズするようなら、スクリプトをコメントアウトするなり、 キーマップを外すなりしてください。

コマンド 説明
\s setterメソッドの追加を行う。
\g getterメソッドの追加を行う。
\b setter、getter両方のメソッドの追加を行う。
\p プロンプトでどちらのメソッドを追加するか尋ねてくる。MacOSXで使うとフリーズする。

設定方法

生成されたアクセサメソッド、コメントの部分を見てください。
生成されるメソッドのコード、コメントは設定により変更することができます。

// アクセサメソッド生成(デフォルト)
/**
 * Get name.
 *
 * @return name as String.
 */
public String getName()
{
    return name;
}

/**
 * Set name.
 *
 * @param name the value to set.
 */
public void setName(String name)
{
    this.name = name;
}

適当なテンプレートを用意しました。

このテンプレートを変更して、生成されるコード、コメントを変更しましょう。
テンプレートは、下の方法のいずれかで導入します。

方法1(簡単)

テンプレートをダウンロードしたら、テキストエディタで開いて、 その中身を_vimrc設定ファイルにコピーしましょう。

その後、テンプレートの該当部分を自分に合うように変更します。

方法2

このファイルを、「java.vim」にファイル名を変更して、
$HOME/vimfiles/ftplugin (Windows)
$HOME/.vim/ftplugin (Mac)
にコピーします。
既に同名のファイルが存在する場合は、ファイルの中身を追加してください。

その後、テンプレートの該当部分を自分に合うように変更します。

テンプレートについて
b:javagetset_getterTemplate getterメソッドのテンプレートです。
b:javagetset_setterTemplate setterメソッドのテンプレートです。
b:javagetset_getterArrayTemplate 配列のgetterメソッドのテンプレートです。
b:javagetset_setterArrayTemplate 配列のsetterメソッドのテンプレートです。
%varname% 実行時に変数名と置きかえられます。
%type% 実行時に型情報と置きかえられます。
%modifiers% 実行時に置きかえられます。通常、publicが入ります。
%funcname% getメソッド時はget + 変数の頭大文字に、setメソッド時はset + 変数の頭大文字と置きかえられます。
テンプレートを作成するのに必要な知識
\n 改行を示します。
. 文字列を連結します。これは、"(ダブルクォート)の囲みの外にある時です。
" 囲まれた範囲を文字列として扱います。ただし、行の先頭にある場合は、その行をコメントとして扱ってしまいます。
アクセサメソッドの挿入位置(どれか1つ)
let b:javagetset_insertPosition=0 アクセサメソッドを、Javaソースの最後に追加する。(デフォルト)
let b:javagetset_insertPosition=1 アクセサメソッドを、変数の直前に挿入する。
let b:javagetset_insertPosition=2 アクセサメソッドを、変数の直下に挿入する。

注意事項など

上にも書いてありますが、
一部の機能は、香り屋Mac OS X用 gvim 6.1.392で、フリーズを引き起こします。 プロンプトにより、選択する機能がそうです。

もし、貴方の環境でもフリーズするようなら、
スクリプトをコメントアウトするなり、 キーマップを外すなりしてください。

ドキュメントアクション
コメント
blog comments powered by Disqus