Jupyter Notebookのセル内importを保存時にRuffで自動ソートする
Claude.icon
正しい設定(.vscode/settings.json)
code:json
{
"notebook.codeActionsOnSave": {
"notebook.source.organizeImports": "explicit"
},
"editor.codeActionsOnSave": {
"source.organizeImports": "explicit"
}
}
}
.py と notebook で設定箇所とアクション名が異なる点がポイントです。
table:_
対象 設定キー アクション名
.py [python] > editor.codeActionsOnSave source.organizeImports
.ipynb notebook.codeActionsOnSave(トップレベル) notebook.source.organizeImports
現状の問題
VSCode 本体にバグがあり、notebook の保存時に codeActionsOnSave が LSP に送信されない(microsoft/vscode#216653、修正 PR は出ているが未マージ)。そのため上記設定は現時点では機能しない。 ワークアラウンド
コマンドパレットから 「Ruff: Format imports」(コマンドID: ruff.executeOrganizeImports)を手動実行する。
キーバインドを割り当てると便利:
code:json
{
"key": "ctrl+shift+i",
"command": "ruff.executeOrganizeImports",
"when": "notebookEditorFocused"
}
前提条件
pyproject.toml の select に "I" が含まれていること:
code:toml