Skip to content

Features#

このセクションでは、Ruff Language Server によって提供される機能の詳細な概要を説明します。

Diagnostic Highlighting#

Provide diagnostics for your Python code in real-time.

Python コードの診断をリアルタイムで行います。

Editing a file in Helix

Dynamic Configuration#

ワークスペースで構成ファイルが変更されると、それがpyproject.tomlruff.toml、または.ruff.tomlファイルであっても、サーバーは診断を動的に更新します。

サーバーは、エディターのファイル監視機能を利用して、これらのファイルに対する変更を検出します。

エディタがファイル監視をサポートしていない場合、サーバは設定ファイルへの変更を検出できないため、診断を更新しません。

Editing a <code>pyproject.toml</code> configuration file in VS Code

Formatting#

Python コードのコード・フォーマットを指定します。サーバーは、文書全体または特定の範囲の行をフォーマットできます。

VS Code 拡張は、ドキュメント全体をフォーマットするためのRuff: Format Documentコマンドを提供します。

VS Code では、行の範囲を選択して右クリックし、コンテキストメニューからFormat Selectionを選択することで、範囲の書式設定をトリガーできます。

Formatting a document in VS Code

Code Actions#

コード・アクションは、コード内の問題の修正に役立つコンテキスト依存の提案です。通常は、ショートカットまたはエディタの電球アイコンのクリックによってトリガーされます。Ruff LanguageServer には、次のコード・アクションが用意されています。:

  • 修正が利用可能な診断のクイックフィックスを適用します(未使用のインポートの削除など)。
  • # noqaコメント付きの診断を無視します。
  • ドキュメントで使用可能なすべての簡易修正を適用します。
  • ドキュメント内のインポートを整理します。

Applying a quick fix in Helix

You can even run these actions on-save. For example, to fix all issues and organize imports on savein VS Code, add the following to your settings.json:

{
  "[python]": {
    "editor.codeActionsOnSave": {
      "source.fixAll.ruff": "explicit",
      "source.organizeImports.ruff": "explicit"
    }
  }
}

Fix Safety#

Ruff の自動修正には、"安全"および"安全でない"というラベルが付けられています。デフォルトでは、"すべて修正"アクションは安全でない修正を適用しません。ただし、安全でない修正は"クイック修正"アクションを使用して手動で適用できます。

"Fix all"を使用する場合の安全でない修正の適用は、Ruff 構成ファイルでunsafe-fixes=trueを設定することで有効にできます。

安全な修正方法の詳細については、Ruff fix documentationを参照してください。

Hover#

サーバーは、コメント内の NoQA コードに焦点を当てると、ルールのドキュメントを提供できます。

フォーカスは通常、マウスでホバリングしますが、ショートカットでトリガーすることもできます。

Hovering over a noqa code in VS Code

Jupyter Notebook#

Ruff の CLI と同様に、Ruff Language Server は Jupyter Notebook ファイルを完全にサポートしており、Python ファイルで利用できるすべての機能を備えています。

Note

ruff-lspとは異なり、RuffのCLIと同様に、ネイティブ言語サーバでは、Jupyter Notebookファイルをリントおよびフォーマットするファイルのセットに明示的に含める必要がある。これを行う方法については、Jupyter Notebook discoveryのセクションを参照してください。

Editing multiple Jupyter Notebook cells in VS Code

Formatting a selection within a Jupyter Notebook cell in VS Code