インテンションアクション
エディターで作業していると、DataGrip がコードを分析し、最適化する方法を探します。 インテンションのアクションは、エラーや警告から最適化の提案まで、幅広い状況をカバーします。
IDE がコードを改善する方法を見つけるとすぐに、エディター内の現在の行の横に黄色のバルブアイコン が表示されます。 このアイコンをクリックすると、現在のコンテキストで利用可能な インテンションアクションが表示されます。
感嘆符 が付いた赤いバルブは、DataGrip が問題を検出したことを示し、関連する修正 — クイックフィックス を選ぶよう求めます。 クイックフィックスとインテンションアクションを合わせて、 コンテキストアクションと呼びます。
インテンションアクションを適用する
変更するコード要素にキャレットを置きます。 次に、バルブアイコンをクリックして (または Alt+Enter を押して)、候補のリストを開きます。
インテンションのプレビューが自動的に開きます。 インテンションが複雑でプレビューを生成できない場合は、インテンションの説明が表示されます。 候補リストで利用可能なインテンションにマウスポインターを合わせると、プレビューが表示されます。
Enter を押すか、リストのインテンションをクリックして適用します。
Ctrl+Q を押すか、 設定 (Ctrl+Alt+S) で 使用可能な場合はインテンションアクションのプレビューを表示 を有効にすることで、プレビューのオンとオフを切り替えることができます。
コンテキストアクションにショートカットを割り当てる
インテンションアクションをより迅速に適用したい場合は、それらにショートカットを割り当てることができます。 現在、 コードインスペクションに属する修正にショートカットを割り当てることはできません。
エディターで、ショートカットを割り当てたい インテンションアクション をトリガーするコードにキャレットを置き、バルブアイコンをクリックまたは Alt+Enter を押します。
利用可能な提案のリストが開きます。
リストで、必要な インテンションアクション の横にある
をクリックし、開いたメニューから ショートカットの割り当て… を選択します。

キーボードショートカット ダイアログが開いたら、このアクションに使用するショートカットを押して、 OK をクリックします。
その後は、エディターでこの インテンションアクション を適用するために提案リストを開く必要はなく、設定されたショートカットを押すだけですぐに実行できるようになります。
設定で、すべてのカスタムインテンションアクションショートカットを見つけるには、 Ctrl+Alt+S を押し、 キーマップ をクリックし、 インテンションズ カテゴリを探します。
すべてのインテンションアクションを表示
利用可能なインテンションアクションの全リストを表示し、現時点で不要なアクションを無効にすることができます。 インテンションアクションのリストを開くには、以下の手順に従います。
オンザフライでインテンションアクションを無効にする
変更するコード要素にキャレットを置きます。 次に、バルブアイコンをクリックして (または Alt+Enter を押して)、候補のリストを開きます。
無効にするアクションを選択し、その横にある右矢印をクリックしてから、 <intention action name> を無効にする をクリックします。

インテンションアクションバルブアイコンを無効にする
エディターでインテンションアクションアイコン とクイックフィックスアイコン
を非表示にするには、次の手順を実行します。
Ctrl+Alt+S を押して設定を開き、 を選択します。
インテンションバルブを表示する チェックボックスをクリアします。
変更を適用して、ダイアログを閉じます。
インテンションアクションの例
テーブルエイリアスを導入する
エイリアスを作成するテーブル名の後ろにキャレットを置きます。
Alt+Enter を押す。
テーブルエイリアスの導入 を選択します。
エイリアス名を入力します。
クイックフィックスを適用する
DataGrip が問題の解決方法を知っている場合、その解決方法はインテンションアクションにあります。 問題を解決するには、 Alt+Enter を押して対応するアクションを選択してください。

GROUP BY を DISTINCT に置換
選択句のすべての列がGROUP BY句に提示されている場合、GROUP BYをDISTINCTに変換できます。GROUP BYステートメントを変換するには、キャレットをGROUP BYに置き、 Alt+Enter を押して、 GROUP BY を DISTINCT に置換 を選択します。
インテンション対 インスペクション
コードインスペクションもクイックフィックスを提供しますが、目的は異なります。
インテンションアクションはコードの改善や効率化に役立ちます。 これらは必ずしもエラーや警告ではなく、改善、最適化、あるいは有益な変換です。
インスペクションは、コーディング標準、パフォーマンス上の懸念、ベストプラクティスに基づいて問題を検出し、修正を提案します。 詳細については、 コードインスペクションを参照してください。
