いやいや何が決まり!だよ、全然決まらねーよっていうタイトルすみません。 キャッチーなタイトルをつける検証をしています。 きっかけ 自動コード整形ツール。弊社では全く導入されていない。 何故か。 知らないからだ。 vimプラグインと手作業での修正という現状だ。 これはどげんかせんといかん。 代表的なautopep8、yapf、blackについて、社内で布教したいので調べてみた。 着目すべきは、 コード整形の精度(ある程度のflake8準拠) 設定のしやすさ(+ あんま設定いじらなくて済むか) 勢い(githubスター数) 各ツールのテストにはautopep8が提示している以下のサンプルコードを使用した。 import math, sys; def example1(): ####This is a long comment. This should be wrapped to fit wit
本記事をお読みになる前に 掲題のとおり、本記事では Python のソースコードにおいてインデントレベル 2 で自動整形する設定について扱っております。 しかしながら、コメントにて @shiracamus 様からご指摘いただいたように、推奨されているインデントレベルは 4 であり、本記事の内容はそれから外れたものとなりますのでご注意ください。 既存ソースコードに合わせたり、プロジェクトの方針として 4 以外を設定する、といったケースにおいて本記事が参考になればと思います。 以下、ご指摘いただいた内容を転記いたします。 既存コードに合わせてインデントを2にするのはいいですが、そうでないならインデントは4が推奨ですね。 参考: PEP8: Pythonコーディングスタイルガイド コードのレイアウト インデント 1レベルインデントするごとに、スペースを4つ使いましょう。 @shiracamus
tl;dr; PythonのLinterであるflake8はpep8に従っていろいろと教えてくれますが、 マニュアルで行うとなかなかに面倒な修正案を提示します。 近頃Golangの自動フォーマッタに慣れてしまった自分としては、 もう勝手にやってくれよ、とちょいちょい思ってました。 非同期にLinterを実行するVimプラグインとして有名なALEには、 エラー箇所を自動で修正するALEFixコマンドがあり、前々からやってみようかなと思っていたので、 この機会にALEでPythonコードのLintと自動整形をやらせてみたいと思います。 前提 NeoVim 私は素のVimではなくNeoVim使いなのでこっちを使った方法になります。 素のVimとはPythonのパス解決の仕方が異なるのでご注意ください。 NVIM v0.3.1 あとALEを使うのでALEのインストールはもちろん必要です。公式は丁寧
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く