RubyMine 2020.2 Help

RuboCop

RubyMineはRuboCop(英語)との統合をサポートしており、コードエディターなどでIDE内でその違反を直すことができます。

RuboCop offense

プロジェクト全体をチェックして、すべてのRuboCop警告を単一のレポートに表示することもできます。

RuboCop inspection results

必要に応じて、標準(英語)ラッパーを有効にしてプロジェクトソースの分析に使用することができます。

RuboCop / Standard gemsをインストールする

RuboCop インスペクションはデフォルトでRubyMineで有効になっており、project’s SDKに 'rubocop' gemをインストールする必要があります。このgemがインストールされていない場合、RubyMineはこれを行うことを提案します。

Install Rubocop

Standardを使用してプロジェクトを分析する場合は、Gemfileに「標準」gemを追加してインストールします。

RuboCopおよび標準インスペクションの有効化/無効化

RuboCopおよび標準 インスペクションを有効または無効にするには、次の手順に従います。

  1. 設定/環境設定ダイアログ Ctrl+Alt+Sを開きます。

  2. エディター | インスペクションページにジャンプし、RuboCop インスペクションを有効/無効にします。

  3. 必要に応じて、標準オプションを有効にして '標準' gemを使用してください。

    Enable Standard

エディターで RuboCop 違反を修正

RuboCop インスペクションが有効になっていると、RubyMineはコードエディターでその違反を強調表示します。警告の説明を確認して修正するには、次の手順を実行します。

  1. 強調表示された領域にキャレットを置き、Ctrl+F1を押します。

    RuboCop warning in the editor
  2. 違反を修正するには、Alt+Enterを押します。ファイル内の提案されたすべての違反を修正することも、クラス違反またはcop departmentによる特定の修正のみを適用することもできます。

    Fix RuboCop offense

Rubocop インスペクションを実行する

RubyMineを使用すると、対応するインスペクションを実行して、プロジェクト全体に対するRuboCopの違反を見つけることができます。これを行うには、以下の手順に従います。

  1. メインメニューからコード | 名前でインスペクションを実行 Ctrl+Alt+Shift+Iに移動します。

  2. ポップアップで、RuboCopを見つけて Enterを押します。

  3. 実行 'RuboCop'ダイアログで、分析したいファイルの範囲を指定します。必要に応じて「標準」gemを使用を有効にしてください。OKをクリックしてください。

  4. RubyMineがあなたのプロジェクトを分析するまで待ちます。インスペクション結果ツールウィンドウでは、自動修正可能なすべての RuboCop 違反を修正ボタンを使用してRuboCopの違反を調査し、自動修正可能なものを修正できます。

    RuboCop inspection results

    個々のファイルを調べたり、クラス違反またはcop departmentによって特定の修正を適用することもできます。

    RuboCop inspection results

RuboCopとIDEの重大度をマップする

デフォルトでは、RubyMineはRuboCopの重大度(英語)インスペクションの重大度を次の方法でマップします。

RuboCopの重大度インスペクション重大度
リファクタリング、コンベンション弱い警告
警告警告
エラー、致命的エラー

デフォルトのマッピングを変更するには、次の手順に従います。

  1. 設定/環境設定ダイアログ Ctrl+Alt+Sを開きます。

  2. エディター | インスペクションページに移動し、RuboCop インスペクションを選択します。

  3. RuboCopの重大度をRuboCopの重大度マッピンググループのインスペクションの重大度にマップする方法を構成します。

    Severity mappings

.rubocop.yml

RubyMineは.rubocop.yml(英語)ファイルで指定されたすべての設定を考慮に入れます。例:特定のcop departmentのチェックを無効にした場合、エディターは対応する違反を表示しません。さらに、これらの違反はRuboCop インスペクションレポートには表示されません。

使い方: カスタムオプションで開いたファイルに対してRuboCopを実行する

現在開いているファイルに対してカスタムオプションでRuboCopを実行する必要がある場合があります。例:これは、RuboCop インスペクション が無効になっているとき、または特定のRuboCopアクションにショートカットを割り当てたいときに便利です。

この例では、現在開いているファイルのレイアウト違反を修正するための外部ツールとしてRuboCopを使用する方法を示します。

カスタムRuboCopアクションを作成する

  1. 設定/環境設定ダイアログ Ctrl+Alt+Sで、ツール | 外部ツールを選択します。

  2. the Add button をクリックして、以下の設定を指定します。

    The Edit Tool dialog
    • 名前 : RubyMineインターフェース(ツールメニューとコンテキストメニュー)に表示されるメニューコマンド。

    • グループ : コマンドが属するグループの名前。既存のグループを選択するか、または新しいグループの名前を入力できます。

    • プログラム : RuboCop実行可能ファイルの名前。

    • 引数 : コマンドラインで指定したように、引数は実行可能ファイルに渡されます。ここでは -x RuboCopオプションを使用して現在のファイルに対してレイアウト警官のみを実行します。

    • 作業ディレクトリ : ツールが実行される現在の作業ディレクトリへのパス。

  3. OKをクリックしてツールを追加してから変更を適用します。

  4. (オプション)作成されたアクションのショートカットを割り当てます。設定/環境設定ダイアログ Ctrl+Alt+Sキーマップを選択し、RuboCopノードでレイアウトを修正アクションを見つけ、ショートカットを指定します。

    Configure shortcut

カスタムRuboCopアクションを実行する

  • 作成したRuboCopアクションを実行するには、ツールメインメニューに行くか、ファイルのコンテキストメニューを使用してください。

    Run custom action

    コマンドが実行されると、その出力が実行ツールウィンドウに表示されます。

    Custom action output
最終更新日: 2020年6月23日

関連ページ:

Rubyインタープリターを構成する

RubyMineでRubyプロジェクトを使用するには、必要なRubyインタープリターを構成する必要があります。現在開いているプロジェクトまたは新しいプロジェクトの作成時にインタープリターを設定できます。Rubyインタープリターの構成は、インストール方法によって異なります。パッケージマネージャー(Ub...

Bundler

RubyMineはBundlerとの統合をサポートし、IDE内でアプリケーションのgem依存関係を処理できるようにします。Bundlerをインストールする:原則として、インストールされているRubyインタープリターにはBundlerがインストールされています。そうでない場合は、次のいずれかの方法でプ...

コード・インスペクション

RubyMineには、プロジェクト内の異常コードを検出して修正する一連のコードインスペクションがあります。IDEはさまざまな問題を見つけて強調表示し、デッドコードを見つけ、可能性のあるバグを見つけ、スペルの問題、コード構造全体を改善することができます。インスペクションは、すべてのプロジェクトファイル...

インスペクションの重大度を変更する

インスペクションの重大度は、検出されたコードの問題がプロジェクトにどれほど深刻な影響を及ぼすかを示します。すべての重要度レベルには、独自の強調表示スタイルがあります。RubyMineには、事前定義された重大度レベルのセットがあります。エラー、警告、弱い警告、サーバーの問題、タイプミス、

キーボードショートカットを設定する

RubyMineには定義済みのキーマップがいくつか含まれており、頻繁に使用するショートカットをカスタマイズできます。キーマップ構成を表示するには、設定/環境設定ダイアログ を開き、キーマップを選択します。RubyMineは、環境に基づいて事前定義されたキーマップを自動的に提案します。使用しているO...

外部ツール

スタンドアロンのサードパーティアプリケーションを外部ツールとして定義し、RubyMineから実行できます。プロジェクトからコンテキスト情報をコマンドライン引数(たとえば、現在選択されているファイル、開いているファイル、プロジェクトのソースパスなど)として外部ツールに渡したり、ツールによって生成された...