JavaScript のリファクタリング
リファクタリングを実行する
シンボルにキャレットを置き、リファクタリングするコードフラグメントを選択するか、ツールウィンドウ内の項目を選択します。
次のいずれかを実行します。
メインメニューから を選択し、目的のリファクタリングを選択します。 このメニューで使用できるリファクタリングのリストは、現在のコンテキストによって異なります。 ReSharper がコンテキストのリファクタリングを提案できない場合、メニュー全体が無効になります。
エディター、 ファイル構造ウィンドウ、またはその他の ReSharper ウィンドウで、変換したい項目を右クリックし、コンテキストメニューから リファクタリング を選択して、必要なリファクタリングを選びます。
メインメニューから を選択するか、 Control+Shift+R を押して、適用可能なリファクタリングのリストを表示し、そのうちの 1 つを選択します。 選択項目のコンテキストメニューで リファクタリング を選択することもできます。
特定のリファクタリングに割り当てられている デフォルトのキーボードショートカットを使用するか、お気に入りのリファクタリングコマンドに カスタムショートカットを割り当てます。
選択したリファクタリングにユーザー入力が必要な場合は、リファクタリングウィザードが開きます。 ウィザードのダイアログはモーダルではないため、ウィザードが開いている間にコードを編集できます。
リファクタリングアクションをロールバックするために、ウィザードにはオプション 元に戻すを有効にするには、変更のあるすべてのファイルを編集用に開く が用意されています。 このオプションを選択すると、ReSharper は変更されたファイルをすべて新しいエディタータブで開き、リファクタリングのロールバックを有効化できます。 この場合、変更を自分で保存する必要があります。 このオプションが選択されていない場合、 ReSharper は変更された ファイルを開かずに自動的に保存します。
リファクタリング操作によってコードの競合 (名前の重複、可視性の競合など) が発生する場合、ウィザードはリファクタリングを適用する前の最後のステップで競合のリストを表示します。 一部の競合については、ウィザードがクイックフィックスを提案することもできます。 詳細については、 リファクタリングの競合を解決する を参照してください。
一部のリファクタリングは、エディターでコードを変更した直後に使用できます。 詳細については、 インプレースリファクタリング を参照してください
変数の導入
このリファクタリングでは、選択した式に基づいて新しいローカル変数または定数を作成し、式で初期化し、最後にメソッドの式のすべてを新しく導入した変数への参照に置き換えることができます。
専用のショートカット Control+Alt+V を使用してこのリファクタリングを呼び出すこともできます。
以下の例では、このリファクタリングを使用して、同じ文字列 "Something has failed..." の 2 つの出現を変数に置き換えます。
部分文字列に変数を導入
このリファクタリングにより、文字列の一部を別の変数にすばやく移動できます。
ReSharper 設定で言語レベルに ECMAScript 6 が 選択されている場合、リファクタリングにより抽出された部分文字列用の新しいテンプレート引数が追加されます。 言語レベルが ECMAScript5 の場合、文字列連結が使用されます。
リファクタリング前 | リファクタリング後 (ECMAScript 6) | リファクタリング後 (ECMAScript 5) |
|---|---|---|
var helloWorld = "Hello, World";
|
let world = "World";
var helloWorld = `Hello, ${world}`;
|
var world = "World";
var helloWorld = "Hello, " + world;
|
変数のインライン化
このリファクタリングでは、コード内の変数のすべてをその初期化子で置き換えることができます。 リファクタリングは、初期化後に変数値が変更されない場合にのみ適用される必要があることに注意してください。
専用のショートカット Control+Alt+N を使用してこのリファクタリングを呼び出すこともできます。
以下の例では、このリファクタリングを使用して reversed 変数をインライン展開します。
リソースに移動
Visual Studio テンプレート(例:Apache Cordova)から作成された JavaScript プロジェクトでは、ReSharper を使って文字列リテラルを リソースファイルへ移動できます。 ReSharper は、必要に応じて、目的のスコープ内のすべての同一文字列を検索し、リソース使用箇所に置き換えることができます。 このリファクタリングを実行するには、プロジェクトに少なくとも 1 つのリソースファイル(通常は .resjson 拡張子)が必要です。
専用のショートカット F6 を使用してこのリファクタリングを呼び出すこともできます。
名前変更
このリファクタリングにより、ソリューション内の任意のシンボルまたはプロジェクトの名前を変更できます。 シンボルへの参照と使用はすべて自動的に更新されます。
専用のショートカット F2 を使用してこのリファクタリングを呼び出すこともできます。
このリファクタリングを使用すると、次の JavaScript エンティティの名前を変更できます: オブジェクトリテラル、オブジェクトリテラルのプロパティ、関数、関数パラメーター、変数