質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

1回答

335閲覧

Python コードのインデントが自動整形されない (Black formatter) cursor

yosidasensha

総合スコア0

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2025/03/18 23:24

実現したいこと
Cursor エディタ(VSCode派生)でPythonコードを編集する際、保存時に自動でPEP8準拠のインデントにフォーマットされるようにしたいです。
前提

Cursor エディタを使用しています
Black formatter拡張機能をインストール済みです
pip install black でBlackもインストール済みです

jsonコピー{
"editor.formatOnSave": true,
"python.formatting.provider": "black",
"editor.defaultFormatter": "ms-python.black-formatter"
}

発生している問題・エラーメッセージ
コピーファイルを保存しても、コードのインデントが自動で整形されません。コマンドラインから black ファイル名.py を実行すると "All done! ✨ 🍰 ✨" と表示されますが、エディタ上のコードは変化しません。

ソース

def process_details(self, json_data): """ 詳細情報を処理 引数: json_data (dict): APIから取得した映画詳細の(単一映画)JSONデータ 戻り値: dict: 処理済みの映画詳細情報(単一映画) """

print("aaaa")  ←ここです
#
pass

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

juner

2025/03/19 00:10

インデントが自動コード判定されてて見づらい気がするのですが コードブロックの 頭行と 末尾行に ``` を入れてコードブロック扱いに修正していただけないでしょうか? 書き方についての詳しいのは右記のURLを参照のこと https://teratail.com/help#about-markdown
TakaiY

2025/03/19 01:02

Cursorは知らないのですがVSCodeと同じとすると、手順などは インストールしたblackと拡張機能のblackを使う方法が混じっています。 どちらを使いたいのでしょうか。
quickquip

2025/03/19 03:24

jsonコピー と書いているところのJSONらしきデータが何なのかが書かれてないようです 質問者さんが書いたものなのか、こう書かれていますという情報なのか、何かのファイルに書いてあるものなのか、なにかの設定画面にあるものなのかなどが定かではないです
quickquip

2025/03/19 03:28

ここです の意図も書かれてないです 単に「ここです」と書いてあるだけなのか、質問者さんがなにか伝えたくて書いたのかさえ伝わってません 後者ならここか何なのか? も書かないといけないです (現状まともに読めない状態だから伝わってないだけで、読める状態になったら察せられる可能性はありますが)
melian

2025/03/19 04:18

Cursor のコミュニティフォーラムに以下のバグレポートが投稿されています。 Ms-python Black Formatter not working? - Bug Reports - Cursor - Community Forum https://forum.cursor.com/t/ms-python-black-formatter-not-working/2720/8 初出は1年程前ですが、2ヶ月前にも同様の不具合報告が上がっています。 2025/1/22 には Community Developer から以下の応答があるので放置状態といったところです。 https://forum.cursor.com/t/ms-python-black-formatter-not-working/2720/7 > Hey, unfortunately we are unable to support 3rd party extensions ourselves, but if anyone diagnoses the cause of this issue and it’s something we can fix on our end, do let us know!
yosidasensha

2025/03/19 10:14

皆様ご回答ありがとうございます。 "ここです" の意図について説明します。 例えば、以下のようなメソッドがあるとします。 def process_details(self, json_data): """ 詳細情報を処理 引数: json_data (dict): APIから取得した映画詳細の(単一映画)JSONデータ 戻り値: dict: 処理済みの映画詳細情報(単一映画) """ print("aaaa") # return json_data 私は保存時に拡張機能のBlackが動作して、print文やreturn文が自動でインデントされると考えていました。しかし、実際には自動インデントされません。 インストールについては、Blackの拡張機能とpipでのインストールの両方を試しました。もしかすると設定が競合しているのかもしれません。 コミュニティを紹介してくださって大変ありがとうございます。 Cursorエディタで自動インデントを正しく設定する方法をご存知の方がいらっしゃいましたら、ご教示いただけると幸いです。
yosidasensha

2025/03/19 10:18

初心者ですいません。 インデントをいれたつもりでしたが私の回答をみると、インデントがそろっております。ですが実際は、print文とreturn文以外は正常なインデントになっております。 たびたびすいません。よろしくお願いいたします。
quickquip

2025/03/19 10:30

質問は編集できるので、質問の中身をインデントが読める形にしましょう。質問が十分な形に編集されればよく、この欄に返信する必要は(あまり)ありません
yosidasensha

2025/03/19 11:50

ありがとうございます。 勉強になりました。
quickquip

2025/03/20 02:32

ですからここに返事をする必要はありません。「勉強になりました」と書くことよりも、質問を編集して質問の内容が分かるようにすることを優先してください。望むこと・期待する動作がなにで、現在はどうなっているのかを明らかにしてください
guest

回答1

0

ですが実際は、print文とreturn文以外は正常なインデントになっております。

ということはprint文とreturn文は異常なインデントになっているということですか?

もしかして

def process_details(self, json_data): """ 詳細情報を処理 引数: json_data (dict): APIから取得した映画詳細の(単一映画)JSONデータ 戻り値: dict: 処理済みの映画詳細情報(単一映画) """ print("aaa") pass

def process_details(self, json_data): """ 詳細情報を処理 引数: json_data (dict): APIから取得した映画詳細の(単一映画)JSONデータ 戻り値: dict: 処理済みの映画詳細情報(単一映画) """ print("aaa") pass

に勝手に直ると思っていますか?

コードの構造や意味が変わるようなインデント変更が勝手にされたらめちゃくちゃ困るので、自動成形によってそんなことは決して起こらない・してはいけないと思うのですが……?

(インデントが必要な話なので回答として書きました)

投稿2025/03/19 11:33

quickquip

総合スコア11299

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問