2

構造検索と置き換え機能がIntelliJ IDEで非常に強力です。構造検索 - IntelliJの完全一致式

既存のテンプレートを閲覧し、私の新しい超能力を発見すると、私はテンプレート全体に来て、 "logging without if"と呼ばれました。 私のスパイダーセンスはinvert conditionComplete Matchに使っているので、「なし」の部分をチェックアウトするように促しました。

しかし、私はComplete Matchで使用されている表現に困惑しています。 ここにある:

if('_a) { 'st*; }

私はこの表現が使用されている方法を理解してください。

のUPDATE 2017年1月19日:

@Faibbusで指摘したように、ドキュメントは_a_stが変数であると言います。 私の混乱は、変数名です。

名前_a_stは、ここにのみ表示され、テンプレートには他の場所は表示されません。 何が変数になりますか? 構造検索の他のすべての変数は、$dollar$符号で囲まれています。

変数の接頭辞としてのアンダースコアの役割は何ですか?その式でアポストロフィは何をしますか?

全くわかりません。私は何が欠けていますか?

答えて

1

この表現では、内部検索基準言語を使用しています。この言語では、通常の構造検索ダイアログのテキストフィールドとチェックボックスをすべて使わずに、テキストで完全な検索クエリを指定することができます。この言語は露出されてはならない可能性があり、IntelliJ IDEA 2017.2でより隠されているはずです。

これは、使用言語の機能の簡単な説明です:
- 1つの目盛りが変数を示します。したがって、2つの変数、_astがあります。
- アンダースコアで始まらない変数は、を示します。この変数は、検索の対象です。クエリごとに1つのターゲットしか存在できません。だからstが対象です。
- *は、を0回以上返します。です。
- 残りのクエリは通常のJavaフラグメントです

この検索条件言語のその他の機能については、興味があればthe sourceを参照してください。

関連する問題