Angular
Angular(英語) は、クロスプラットフォームアプリケーションを構築するための一般的なフレームワークです。 JetBrains Rider は Angular のサポートを提供し、新しい Angular アプリの作成やコンポーネントの作業からデバッグやテストまで、開発プロセスのすべてのステップをサポートします。
始める前に
ディレクトリ構造で編成され、ソリューションファイルを持たないアプリケーションを開くには、 Ctrl+Shift+O を押すか、メインメニューから を選択し、アプリケーションのルートフォルダーを選択して、 フォルダーの選択 をクリックします。
コードを記述して編集する
Angular 言語サービスを構成する
JetBrains Rider は、コード補完、エラー検出とハイライト、ヒント、Angular テンプレート内のナビゲーションなど、Angular 固有の完全なコーディング支援を提供します。 Angular プロジェクトのコーディング支援は、 Angular 言語サービス、 TypeScript 言語サービス 、または内部 JetBrains Rider パーサーとコードインスペクションのみから取得するように設定できます。
デフォルトでは、Angular 言語サービスは有効になっており、ステータスバーの 言語サービス ウィザードに表示されます。
Angular 設定を開くには、ステータスバーの
をクリックし、 をクリックします。

または、 Ctrl+Alt+S を押して設定を開き、 設定 | 言語 & フレームワーク | TypeScript | Angular を選択します。
.ts ファイルのコーディング支援を受けるサービスを指定します。
デフォルトでは 自動 オプションが選択されているため、JetBrains Rider は適切なコンテキストで Angular 言語サービス を自動的に有効化します。 その結果、型評価は TypeScript 言語サービスのデータに基づいて実行され、内部 JetBrains Rider インスペクションも適用されます。
内部 JetBrains Rider パーサーとインスペクションのデータのみに基づいてコーディング支援を受けるには、 無効 オプションを選択してください。
Angular 言語サービスを再起動する
ステータスバーの
をクリックし、 Angular TypeScript <バージョン> の横にある をクリックします。

型評価を構成する
ステータスバーの
をクリックし、型評価を取得したいサービスの横にあるチェックボックスをオンにします。 準備ができたら、JetBrains Rider を再起動します。
または、 Ctrl+Alt+S を押して設定を開き、 設定 | 言語 & フレームワーク | TypeScript | Angular を選択し、 自動 を選択して、 サービス駆動型タイプエンジンを有効化 チェックボックスを選択します。
デフォルトでは、チェックボックスはオフになっており、型評価、解決、コードインスペクション、リファクタリングは JetBrains Rider 内部 TypeScript エンジンの型情報に基づいて行われます。
このデフォルト動作は、JetBrains Rider 内部の TypeScript エンジンが使用する型評価アルゴリズムが Angular 言語サービスのアルゴリズムと異なるため、パフォーマンスの問題や型解決におけるバグを引き起こす可能性があります。 チェックボックスをオンにすることで、これらの問題を回避できる場合があります。
メモリ処理を構成する
JetBrains Rider は言語サービスとの円滑な統合を目指していますが、JetBrains Rider 自体ではなく言語サービスによって発生する out-of-memory エラーが発生する場合があります。
out-of-memory エラーを防止、またはシームレスに解決して言語サービスの安定した動作を確保するには、メモリ処理を設定する必要があります。 詳しくは 言語サービス を参照してください。
Angular 言語サービスのメモリ処理設定は、常に TypeScript 言語サービスから継承されます。
TypeScript 言語サービスのメモリ処理を構成する
Ctrl+Alt+S を押して設定を開き、 に移動します。
言語サービスメモリ 領域で、メモリ処理モードを選択します。
メモリを増やし、言語サービスを自動的に再起動するには、 利用可能な場合はメモリを自動的に増加する を選択します。
または、 メモリ制限を設定する を選択し、言語サービスで使用する最大メモリを指定します。
指定されたメモリサイズが利用可能な RAM を超える場合、JetBrains Rider はツールチップで適切な値を提案します。
コンポーネント
JetBrains Rider では、いくつかの方法で Angular コンポーネントを作成できます:
関連する .ts 、 .html 、 .css ファイルの束を含む コンポーネントフォルダーを作成します。
専用のリファクタリングを使用した テンプレートからコンポーネントを抽出します。
事前定義されたテンプレートを使用してコンポーネントを作成する
JetBrains Rider は、Angular コンポーネントを作成するための事前定義された ライブテンプレート を、 a-component、 a-component-inline 、および a-component-root などで提供します。

ライブテンプレートの詳細については、 ライブテンプレートを参照してください。
事前定義されたテンプレートの完全なリストを表示するには、 設定 ダイアログ (Ctrl+Alt+S) を開き、 に移動して、 Angular ノードを展開します。
エディターで、 Ctrl+J を押し、リストから適切なテンプレート(たとえば、
a-component)を選択してから、 Enter を押します。JetBrains Rider はコンポーネントスタブを生成し、キャンバス付きフィールドにキャレットを配置し、そこでコンポーネント名を指定するのを待ちます。 コンポーネント名を入力すると、 Angular スタイルガイド(英語)に従ってセレクターの名前とテンプレート URL が自動的に入力されます。
必要に応じて、インスペクションポップアップを使用して新しいコンポーネントを スタンドアロン(英語)にします。

WebStorm ブログで、 コードスニペットの使用と作成(英語)の変数を使用してテンプレートをカスタマイズする方法を学びます。
コンポーネントフォルダーを作成する
JetBrains Rider では、複数の Angular コンポーネントファイルを一度のアクションで作成し、それらすべてを個別のフォルダーに配置することも可能です。 これを行うには、いくつかの子テンプレートを含むファイルテンプレートを使用する必要があります。 親テンプレートからファイルを作成すると、子テンプレートの関連ファイルが自動的に生成されます。
たとえば、ロジック用の example.component.ts 、テンプレート用の example.component.html 、スタイル用の example.component.css など、多数のコンポーネントファイルを含む example フォルダーを作成するとします。 2 つの親テンプレートを含むファイルテンプレートを作成すると、3 つのファイルすべてが一度に生成され、別のフォルダーに配置されます。
設定 ダイアログ(Ctrl+Alt+S )で、 を選択します。
まず、TypeScript コンポーネントファイル用のテンプレートを作成します:
ファイル タブで、ツールバーの 追加 ボタン (
) をクリックします。

新しい 名前未設定 テンプレートがリストに追加されます。
右側のペインで、テンプレート名を指定し、 Angular コンポーネント とし、ファイル拡張子として
component.tsとします。「ファイル名 」フィールドに
$NAME/$NAMEと入力します。必要に応じて、コードテンプレートを追加します。例:
/* * Created by ${USER} on ${DATE} */ import { Component } from '@angular/core';

適用 をクリックします。
関連する HTML ファイルの子テンプレートを作成します:
親テンプレート Angular コンポーネント を選択し、ツールバーの 子テンプレートファイルの作成 ボタン
をクリックします。

子テンプレートが Angular コンポーネント テンプレートに追加されます。
右側のペインで、 ファイル名 フィールドに
$NAME/$NAMEと入力し、component.html拡張子を指定します。

適用 をクリックします。
関連するスタイルシートの子テンプレートを作成します。
親テンプレート Angular コンポーネント を選択し、ツールバーの
をクリックします。 子テンプレートが Angular コンポーネント テンプレートの下に追加されます。
右側のペインで、 ファイル名 フィールドに
$NAME/$NAMEと入力し、component.css拡張子を指定します。
OK をクリックしてテンプレートを保存します。
コンポーネントファイルを作成します。
コンポーネントファイルを保存するフォルダーのコンテキストメニューから、 を選択します。 開いたダイアログで、フォルダーとその中のコンポーネントファイル(この例では example )に使用される名前を指定します。

テンプレートからコンポーネントを抽出する
Angular コンポーネントを抽出しますリファクタリングは、 angular.json ファイル内の schematic 設定を考慮して、 ng generate component を実行することで機能します。
HTML テンプレートファイルで、Angular コンポーネントに抽出するコード箇所を選択します。
選択のコンテキストメニューから を選択します。
または、 Ctrl+Alt+Shift+T を押して、 リファクタリング ポップアップから を選択します。

開いたダイアログで、新しいコンポーネントの名前を指定します。
スタンドアロンコンポーネント
プロジェクトで Angular 19(英語) を使用している場合、コンポーネント、パイプ、ディレクティブはデフォルトで スタンドアロン になります。 NgModules で宣言されているコンポーネントの場合は、 standalone: false を設定してください。
JetBrains Rider は、 non-standalone パイプ、ディレクティブ、コンポーネントの不正なインポートや、非スタンドアロンコンポーネント内での imports プロパティの使用を検出します:

シグナル
JetBrains Rider を使うと、 signal、 computed、 effectのテンプレートから直接 Angular シグナルを簡単に作成できます。

シグナルを作成する
必要な関数を書きます。 JetBrains Rider はインスペクションを実行し、新しい関数を未解決としてハイライトします。
ハイライトされた関数の上にマウスを置き、ポップアップ内の シグナル「<関数名>」を作成 リンクをクリックします。

あるいは、ハイライトされた機能にカーソルを置き、 Alt+Enter を押して、 を選択します。

JetBrains Rider は、新しいシグナルのスタブが生成されるコンポーネント TypeScript ファイルを表示します。 必要に応じてプレースホルダーを入力します。
JetBrains Rider は、 contentChild、 contentChilden、 viewChild、 viewChildren シグナルクエリを認識し、ハイライトやドキュメントの提供、補完およびナビゲーションをサポートします。
Angular シグナルのハイライトを構成する
Ctrl+Alt+S を押して設定を開き、 エディター | カラースキーム | Angular テンプレート を選択します。
リストから シグナル を選択し、 フォアグラウンド の横にある色の表示をクリックします。

好みの色を選択し、 適用 をクリックします。
構造ディレクティブ
JetBrains Rider は 構造ディレクティブを認識し、テンプレート内でハイライトを提供します。
バインディングキーとテンプレートコンテキストプロパティについては、ポップアップで補完が提案されます。

ディレクティブ入力にマップされたテンプレートバインディングキーに対して、 名前変更リファクタリングが提供されます。
属性を完了するか、 Ctrl+P を押すと、パラメーター情報ポップアップが自動的に表示されます。

ホストリスナーとバインディング
JetBrains Rider は、 ホストリスナーおよび バインディングを完全にサポートします。
@HostListenerおよび@HostBindingデコレータの補完、ハイライト、簡単なドキュメント化。
@HostListenerのイベント完了
型チェックブロック (TCB)(英語) はホストバインディング用に生成されます。
ホストバインディングと HTML テンプレートにわたる CSS クラスのサポート

反応型
JetBrains Rider は Angular Reactive Forms のサポートを提供します。
new FormGroup({.. .})およびFormBuilder.group({...})呼び出しを使用したフィールド初期化子からネストされたフォームグループモデル構造を構築し、FormBuilder.group({...})呼び出しを使用したコンストラクター内のフィールド初期化も行います。JetBrains Rider は、フォームグループオブジェクトイニシャライザー、新しいインスタンス呼び出し(
FormGroup、FormControl、FormArray)、およびFormBuilderメソッド内のcontrol、group、arrayを認識します。
FormGroup.get()呼び出しの場合、JetBrains Rider はコード補完、命名検証、不明なセグメントに対するクイックフィックス、文字列リテラル内の構文ハイライトを提供します。
HTML テンプレートの
formControlName、formGroupName、formArrayName、コード補完、名前検証、欠落しているコントロールを作成するためのクイックフィックス、構文のハイライト、構造の依存関係が提供されます。
段階的な水分補給
JetBrains Rider は Angular 19 @defer ハイドレート構文をサポートしています。
コード補完

クイックドキュメントルックアップ

Angular バージョン 19 より前のバージョンではエラーが報告されます。

HTML テンプレートを制御フローブロックで囲む
Angular HTML テンプレートで、コードフラグメントを選択し、 Ctrl+Alt+T を押して、リストから囲んでいるコードを選択します。

ngadd で新機能を追加
公開されているほとんどの Angular ライブラリ(英語)は、 Angular の依存関係 アクションを使用して追加できます。 このアクションは ng add コマンド(英語)を実行し、依存関係をインストールして、現在の作業ディレクトリにあるアプリを更新し、その依存関係を使用するようにします。 すべてのライブラリが ng add によるインストールをサポートしているわけではないことに注意してください。
メインメニューから を選択するか、 エクスプローラー ツールウィンドウ (Alt+1) で Alt+Insert を押してから、 Angular の依存関係 を選択します。
リストから、追加するライブラリを選択します。 リストには、
ng addで確実にインストールできるライブラリが表示されます。 リストにないパッケージをインストールするには、その末尾までスクロールして 上記にないパッケージをインストールする リンクをダブルクリックし、表示されるダイアログでパッケージ名を指定します。ウィザードの手順に従ってください。
以下の例は、Angular Material をプロジェクトに追加する方法を示しています。

package.json で依存関係を手動管理している場合でも、JetBrains Rider は ng add をサポートするパッケージを認識します。 package.json にそのようなパッケージを追加すると、JetBrains Rider は ng add でインストールすることを提案します。

パラメーターのヒントを表示する
Angular HTML テンプレートでは、 パラメーターヒントはメソッドと関数のパラメーター名を表示し、コードの可読性を向上させます。 テンプレートでは、ブロックパラメーターの情報は補完時に表示されます。
パラメーターのヒントを設定する
設定 ダイアログ(Ctrl+Alt+S )を開き、 に進みます。
パラメーター名 の Angular HTML テンプレート を展開します。
対応するチェックボックスを選択して、パラメーターヒントを表示するコンテキストを指定します。
プレビューでは、設定を変更することでコードの見た目にどのような影響があるかを確認できます。
一部のメソッドや関数では、JetBrains Rider はどのコンテキストでもパラメーターヒントを表示しません。 除外リスト… をクリックして、これらのメソッドと機能を表示したり、それらのパラメーターヒントを有効にしたり、リストに新しいアイテムを追加したりします。
任意のコンテキストで任意の値型のパラメーターヒントを非表示にするには、 パラメーター名 の Angular HTML テンプレート チェックボックスをオフにします。

コードをインスペクションする
JetBrains Rider には、コード編集時にエラーの発見やクイックフィックスの提案に役立つ、多くの Angular 固有のインスペクションが用意されています。
重複したプロパティ
以下の例では、 template と templateUrl の両方のプロパティが使用されています。 JetBrains Rider はエラーを検出し、警告してクイックフィックスを提案します。

構造ディレクティブの誤った使用
JetBrains Rider は、 *ngIf および *ngFor 構造ディレクティブの誤った使用について警告します。

スタンドアロンコンポーネントの使用
Angular 固有のインスペクションは、 スタンドアロンコンポーネント(英語)の不適切な使用を特定できます。 以下の例では、JetBrains Rider がスタンドアロンでないコンポーネントのインポートステートメントを検出し、問題のクイックフィックスを提案します。

未使用のインポート
スタンドアロン コンポーネントでは、JetBrains Rider は未使用のコンポーネント、パイプ、ディレクティブのインポートステートメントを検出し、それらの削除を提案します。

未使用のインポートステートメントは、ファイルの再フォーマット時にも自動的に削除できます(Ctrl+Alt+Shift+L)。
クイックフィックスとコンテキスト認識アクション
transform プロパティの有無にかかわらず、Angular コンポーネントテンプレートから @Input および @Output プロパティを作成するためのクイックフィックスを使用すると便利な場合があります。 必要なインポートステートメントも自動的に生成されることに注意してください。

JetBrains Rider は、適切に宣言されたフィールドを生成するのに役立つコンテキスト認識型の フィールドの作成 および メソッドの作成 アクションも提供します。
Angular 固有のインスペクションの表示と構成
設定 ダイアログ (Ctrl+Alt+S) で、 に進みます。
Angular ノードを展開します。
インスペクションプロファイルと重大度を構成し、定義済みのインスペクションを無効化および抑制し、カスタムのインスペクションを作成します。
Angular アプリケーションを移動する
また、 Angular CLI QuickSwitch プラグイン(英語)をダウンロードして、 コンピューターにインストールすることもできます。
関連シンボルポップアップで移動
関連ファイルのリストを含むポップアップを呼び出すには、次のいずれかの操作を実行します。
ナビゲーションポップアップで
をクリックします。Ctrl+Alt+Home を押します。
メインメニューから を選択します。
エディター内の任意の領域を右クリックし、 を選択します。
ナビゲーションポップアップで
をクリックします。
TypeScript コンポーネントファイルでは、このファイルにインポートされたすべてのシンボルがポップアップに一覧表示されます。

ファイルを開くには、ファイルを選択して Enter を押します。 または、各ファイルの種類に関連付けられている番号を使用します。
コンポーネントクラスを含む TypeScript ファイル
テンプレート
テスト
スタイル
使用箇所を移動する
シンボルの宣言にキャレットを置き、 Ctrl+B を押します。
シンボルが 1 回のみ使用されている場合、JetBrains Rider はその使用箇所へ案内し、ハイライトします。
複数の使用箇所が見つかった場合、JetBrains Rider はそれらをポップアップで表示します。 移動する使用箇所を選択して Enter を押すか、リストでクリックします。
シンボルの宣言にキャレットを置き、 Ctrl+Alt+F7 を押します。
ツールバーのアイコンを使用して、インポートステートメント (
)、文字列リテラル (
)、および HTML ファイル () 内のコンポーネントへの参照を表示または非表示にします。
使用方法のヒントを表示をクリックすると使用方法に移動するか、リストから関連するものを選択できます。
ナビゲーションポップアップを使用する
ナビゲーションポップアップを有効にするには、 Ctrl+Alt+S を押して に移動し、 Angular エリアの エディターでナビゲーションポップアップを表示する チェックボックスを選択します。 検索フィールドを使用すると、チェックボックスを簡単に見つけることができます。

ナビゲーションポップアップにアクセスするには、エディター内の任意の場所にマウスを移動します。 ポップアップに表示されるアイコンのセットは、現在のエディタータブ内のファイルの種類と、コンポーネントに含まれるファイルによって異なります。
コンポーネント内でファイル間をジャンプするには、該当するアイコンをクリックしてください。たとえば、 .component.html ファイルへジャンプするには
をクリックします。
ポップアップを使用して、ファイル内のスタイルとテンプレートに移動します。
をクリックすると、関連ファイルのリストを含むポップアップが開きます。
Angular マテリアルデザインコンポーネントを使用する
JetBrains Rider は Angular Material のコンポーネントと属性を認識し、それらに対するコーディング支援を提供します:
コンポーネントの補完

属性の補完

コンポーネントまたは属性とその宣言の間のナビゲーション(Ctrl+B を押すか、コンテキストメニューから を選択します)。
Angular マテリアルをインストール
埋め込み ターミナル (Alt+F12 )を開き、
ng add @angular/materialと入力します。package.json の
dependenciesに"@angular/material": "^16.2.11"を追加し、npm installを実行します。メインメニューで に移動し、リストから
@angular/materialを選択して、開始されるウィザードの手順に従います。
Angular マテリアルの公式 Web サイトでの開始(英語)の詳細を参照してください。
構文ハイライトを構成する
Angular プロジェクトでは、JetBrains Rider は CSS クラスやプロパティ、HTML 属性やタグ、Angular 入出力バインディングなど様々なシンボルを認識し、ハイライト表示します。 これらのシンボルは、HTML 属性や JavaScript 文字列リテラルなど、様々なコンテキストでハイライト表示されます。

好みや習慣に応じて Angular 対応の構文ハイライトを設定できます。
設定 ダイアログ (Ctrl+Alt+S) で、 に進みます。
カラースキームを選択するか、デフォルトから継承されたハイライト設定を受け入れるか、 カラースキーム:IDE テキストのフォントと色 の説明に従ってカスタマイズします。
プロジェクト内で複数のフレームワークを使用する
場合によっては、Angular プロジェクト内で他のフレームワークを使用する必要があることがあります。
各ファイルでコンテキスト認識コーディング支援を受けるには、構成ファイル .ws-context を作成し、各ファイルまたはフォルダーで使用するフレームワークを指定します。 このファイルの設定は、デフォルトの構成を上書きします。
プロジェクトルートで、コンテキストメニューから 新規 | ファイル を選択し、ファイル名として
.ws-contextを指定します。.ws-contextでは、次の 2 種類のプロパティを使用します。コンテキスト値文字列を持つ
<context-name>コンテキスト詳細オブジェクト付きの GLOB パターン
次のコンテキスト値を使用します:
framework:vue、angular、react、svelte、astroangular-template-syntax:V_2、V_17nextjs-project:nextjsastro-project:astrovue-store:vuex、piniavue-class-component-library:vue-class-component、vue -property-decorator、vue-facing-decoratorjsdoc-dialect:jsdoc-typescript、jsdoc-closure
簡単化のためにパスのネストを使用してください。
GLOB パスの最後のセグメントはファイル名パターンであり、
*ワイルドカードのみがサポートされます。最後のセグメントが
**の場合、ネストされたすべてのディレクトリとファイルと一致します。最上位レベルのコンテキストプロパティには
/**パターンが必要です。
複数のパターンが同じファイル名に一致する場合、曖昧さを解消するために次のルールが使用されます:
**セグメントを除いて、パスセグメント数が最大となるパターンを選択します。純粋なファイル名パターン、つまり
**または/で終わらないものを選択してください。最初に定義されたパターンを選択してください。
サンプル
さまざまなフォルダーで複数のフレームワークを利用しているプロジェクトがあると仮定します。

プロジェクト内の各ファイルに対してコンテキスト認識型の支援を受けるには、次のコードを .ws-context に追加します。