JetBrains Rider 2024.1 ヘルプ

ライブテンプレート変数

ライブテンプレートの略語を展開すると、その変数は値を入力できる入力フィールドとして表示されるか、値に置き換えられます。これらは、変更可能なデフォルト値または関数を使用して計算された値です。

テンプレート内で変数を宣言するには、次の形式を使用します: $VAR$

式では、ドル文字 $ を開閉せずに変数名を使用します(例: lowercaseAndDash(ComponentName))。

式を使用して各変数を定義し、式が評価に失敗した場合のデフォルト値を提供します。

この式には、次の構成が含まれる場合があります。

  • 二重引用符で囲まれた文字列定数

  • ライブテンプレートで定義されている他の変数の名前

  • 可能な引数を持つ事前定義された関数

テンプレート変数を設定する

  1. 設定 / 環境設定ダイアログ(Ctrl+Alt+S)で、エディター | ライブテンプレート | 他の言語に移動します。

  2. 変数を設定するテンプレートを選択します。

  3. テンプレートテキストで変数を指定し、変数の編集…をクリックします。

  4. テンプレート変数の編集ダイアログでは、各変数に対して以下の操作を実行できます。

    • 変数名を変更します。

    • 定義済み関数を使用して式を定義します。

    • 式の評価が失敗した場合のデフォルト値を指定します。デフォルト値は二重引用符で囲む必要があります。

    • 式が正常に評価された場合にユーザーに入力を求めるときに変数をスキップするかどうかを指定します。

定義済みのテンプレート変数

JetBrains Rider は、変更できない以下の定義済みライブテンプレート変数をサポートしています。

  • $END$ は、コードスニペットが完了したときのキャレットの位置を示します。Tab を押して次の変数に移動することはできなくなります。

  • $SELECTION$ はサラウンドテンプレートで使用され、ラップされるコードフラグメントを示します。テンプレートが展開されると、テンプレートで指定されたとおりに選択されたテキストがラップされます。例: コードで EXAMPLE を選択し、割り当てられた略語で "$SELECTION$" テンプレートを呼び出すか、Ctrl+Alt+T を押してリストから目的のテンプレートを選択すると、JetBrains Rider は選択を二重引用符で次のようにラップします: "EXAMPLE"

ライブテンプレート変数で使用される関数

ライブテンプレート変数を定義するには、次の関数を使用できます。

機能

説明

camelCase(<String>)

文字列をキャメルケースに変換します。

例: camelCase("my-text-file")camelCase("my text file")camelCase("my_text_file") はすべて myTextFile を返します。

capitalize(<String>)

文字列の最初の文字を大文字にします。

例: capitalize("name")Name を返します。または、capitalize(camelCase("my awesome class")) と組み合わせて MyAwesomeClass を取得することもできます。

capitalizeAndUnderscore(<String>)

文字列のすべての文字を大文字にし、パーツ間にアンダースコアを挿入します。

例: capitalizeAndUnderscore("FooBar")capitalizeAndUnderscore("foo bar")capitalizeAndUnderscore("foo-bar") はすべて FOO_BAR を返します。

complete()

変数の位置でコード補完を呼び出します。

completeSmart()

変数の位置でスマート型補完を呼び出します。

concat(<String>, ...)

パラメーターとして関数に渡されたすべての文字列の連結を返します。

例: concat(date()," ",user()) は、スペースで区切られた現在のシステム日付とユーザー名を返します。

date([format])

現在のシステム日付を返します。

デフォルトでは、パラメーターなしで、現在のシステム形式で日付を返します。別の形式を使用するには、SimpleDateFormat(英語) 仕様に従ってパラメーターを指定します。例: date("Y-MM-d, E, H:m") は、2020-02-27, Thu, 16:11 としてフォーマットされた日付を返します。

dbColumns()

テーブルまたはビューの列のリストを返します。dbColumns() は、コンテキストライブテンプレート(たとえば、ins)で使用されます。オブジェクトを右クリックして SQL スクリプトを選択すると、コンテキストライブテンプレートにアクセスできます。

dbObjectName()

テーブルまたはビューの名前を返します。dbObjectName() は、コンテキストライブテンプレート(たとえば、top)で使用されます。オブジェクトを右クリックして SQL スクリプトを選択すると、コンテキストライブテンプレートにアクセスできます。

decapitalize(<String>)

文字列の最初の文字を対応する小文字に置き換えます。

例: decapitalize("Name")name を返します。

defaultReturnValues

式が return 文で使用されている場合は、デフォルト値を返します。式がエラー・型である場合は、errorVariableName パラメーターを使用します。

enum(<String>, ...)

テンプレートが展開されたときに補完が提案される文字列のリストを返します。

例: enum("Foo","Bar","Baz") は、指定された文字列の 1 つを選択できるリストを表示します。

escapeString(<String>)

結果を Java 文字列で使用できるように、特殊文字をエスケープします。

例: タブ文字を \t で置き換え、改行文字を \n で置き換え、バックスラッシュを \\ としてエスケープし、引用符を \" としてエスケープします。

expectedType()

テンプレートが展開される式の予想される型を返します(割り当ての右側、return の後、メソッドパラメーターなど)。

Java コンテキストでのみ使用できます。

fileName()

現在のファイルの名前とその拡張子を返します。

fileNameWithoutExtension()

現在のファイルの名前を拡張子なしで返します。

filePath()

現在のファイルへの絶対パスを返します。

fileRelativePath()

現在のプロジェクトに相対的な現在のファイルパスを返します。特定のファイルの相対パスを確認するには、ファイルを右クリックして参照をコピーを選択するか、Ctrl+Alt+Shift+C を押します。

firstWord(<String>)

パラメーターとして渡された文字列の最初の単語を返します。

例: firstWord("one two three")one を返します。

lineNumber()

現在の行番号を返します。

lowercaseAndDash(<String>)

文字列を小文字に変換し、セパレータとして n ダッシュを挿入します。例: lowercaseAndDash("MyExampleName")lowercaseAndDash("my example name") はどちらも my-example-name を返します。

regularExpression(<String>, <Pattern>, <Replacement>)

String 内のすべての Pattern を検索し、Replacement に置き換えます。パターンを正規表現として指定して、文字列内で一致するすべてのものを検索できます。

例: regularExpression(NAME, "a", "b") 式は、$NAME$ テンプレート変数内の文字「a」を文字「b」に置き換えます。パターン部分では正規表現文字クラスを使用できます。たとえば、regularExpression(NAME, "[a-z]", "b") は変数内の任意の文字を置き換えます。\d\w などのパターンを正規表現文字クラスとしてみなしたい場合は、パターンが "\\d" のように見えるようにスラッシュをエスケープする必要があります。

snakeCase(<String>)

文字列を snake_case に変換します。例: snakeCase("fooBar")snakeCase("foo bar") はどちらも foo_bar を返します。

spaceSeparated(<String>)

区切り文字としてスペースを含む指定された文字列を返します。例: spaceSeparated("fooBar")foo Bar を返し、spaceSeparated("Foo_BAR")Foo BAR を返します。

spacesToUnderscores(<String>)

パラメーターとして渡された文字列内のスペースをアンダースコアに置き換えます。例: spacesToUnderscores("foo bar BAZ")foo_bar_BAZ を返します。

substringBefore(<String>, <Delimeter>)

指定された区切り文字までの部分文字列を返します。これは、テストファイル名の拡張子を削除できます。例: component-test.js という名前のファイルで使用されている場合、substringBefore(fileName(),".")component-test を返します。

time([format])

現在のシステム時刻を返します。

デフォルトでは、パラメーターなしで、現在のシステム形式で時刻を返します。別の形式を使用するには、SimpleDateFormat(英語) 仕様に従ってパラメーターを指定します。例: time("H:m z") は、13:10 UTC としてフォーマットされた時刻を返します。

underscoresToCamelCase(<String>)

下線付きの文字列(snake_case など)を camelCase に変換します。例: underscoresToCamelCase(foo_bar_baz)underscoresToCamelCase(FOO_BaR_baZ) はどちらも fooBarBaz を返します。

underscoresToSpaces(<String>)

文字列のアンダースコアをスペースに変換します。例: underscoresToSpaces(foo_bar_baz)foo bar baz を返し、underscoresToSpaces(FOO_BaR_baZ)FOO BaR baZ を返します。

user()

現在のユーザーの名前を返します。

サンプル

デフォルトの a-component と同様に、Angular コンポーネントの ngcomp テンプレートを作成しましょう。テンプレートには 3 つの変数があります。

  • 最初の $ComponentName$ は、新しいコンポーネントクラスの名前のプレースホルダーになります。

  • 2 番目の $selector$ は、コンポーネントセレクターの名前になります。

  • 3 番目の $END$ は、テンプレートが展開され、$ComponentName$ および $selector$ プレースホルダーが入力された後の、最後にキャレットが配置される場所を示します。

  1. エディターで、テンプレートで使用するコードを選択し、Ctrl+Shift+A を押して、「ライブテンプレートとして保存…」アクションを呼び出します。

    Select code to save as live template
  2. テンプレートを呼び出すために使用する略語(ngcomp など)を入力し、テンプレートの説明(新しい Angular コンポーネントなど)を追加します。

    Add template abbreviation and description
  3. テンプレートに変数を追加します。

    1. SearchComponent$ComponentName$ に置き換えます。

    2. Component({}) 内に selector: $selector$, を追加します。

    3. $END$ngOnInit(){} に追加します。

    Add variables
  4. Angular スタイルガイド(英語)によると、セレクター名は通常、コンポーネント名の破線バージョンであるため、最初にコンポーネント名を指定するのが理にかなっています。ただし、セレクターはコードの最初にあります。

    この問題を解決するには、変数の編集…をクリックし、矢印アイコンを使用して変数の順序を調整します。これで、ComponentName が最初に来て、テンプレートの展開時にキャレットが最初にそれに移動します。

    Change the order of variables
  5. クラス名のみを指定し、クラス名の変換によってセレクター名を自動的に入力できると便利です。これを行うには、selector 変数の横にあるフィールドをクリックし、リストから lowercaseAndDash 関数を選択して、パラメーターとして ComponentName と入力します。

    Edit template variables
  6. オプション:

    selector の隣に定義済みはスキップを選択できます。この場合、コンポーネント名を編集して Enter を押すと、キャレットは $selector$ ではなく $END$ の位置に移動します。

新しいテンプレートの動作を見てみましょう。

Expand parameterized template