2014年1月11日土曜日

[SublimeText3] Sublime Text 3にSublimeLinterを入れてPythonを設定する


タイトルの通り、Sublime Text 3にSublime Linterを追加して、さらにPython用の設定(pep8, pep257)をします。




Package Controlを導入

Package Controlのページの説明の通りです。

Sublime Textを起動後、Ctrl + ` もしくは、ツールバーの Views > Show Console からコンソールを起動します。

以下の内容をコピー&ペーストして、Enterを押せば完了。

import urllib.request,os,hashlib; h = '7183a2d3e96f11eeadd761d777e62404e330c659d4bb41d3bdf022e94cab3cd0'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); by = urllib.request.urlopen( 'http://sublime.wbond.net/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by)


SubLimeLinterを追加

Ctrl + Shift + PでCommand Paletteを開いて、"ins"と入力、Install Packageを選択します。



"sublimelinter"と入力し、SublimeLinterを選択するとインストールされます。



少し分かりにくいですが、インストール中はステータスバーに [ = ] が表示されます。




同様に、SublimeLinter-pep8, SublimeLinter-pep257もインストールします。




pep8, pep257のインストール

pipを使ってpep8, pep257をインストールします。

$ sudo pip3.3 install pep8 もしくは $ sudo pip install pep8

$ sudo pip install pep257


SublimeLinterの設定

最後にSublime Textを再起動すればすぐに利用可能ですが、このままでは少しうるさいので設定を変更します。
PEP8に完全に則ってコーディングをする場合は設定は不要です。



こんな感じで、ソースコードを読みやすくするための空白にもエラーが出てしまいます。


Package Settings > SublimeLinter > Settings User を選択、編集します。



まず、注意・警告部分を「囲む」のではなく、「下に波線を表示」にします。
// "mark_style": "outline", の行を削除して以下の行を挿入
"mark_style": "squiggly underline",

その他波線以外の形式は、画像付きでこちらに掲載されています


続いて、コードを読みやすくするための空白を許すように変更します。

// "ignore"内にカンマ区切りで記入
"pep8": {
    "ignore": "E203,E221,E241,E272",
}

"ignore"内に、無視するルール名をカンマ区切りで書いていきます。
今回は、以下の4つを設定しました。
E203 : コロンの前の空白禁止
E221 : イコールなどの演算子の前に複数の空白を入れてはいけない
E241 : カンマの後に複数の空白を入れてはいけない
E272 : キーワードの前に複数の空白を入れてはいけない

その他のルールは、pep8のドキュメントに書いてありますので、そちらを参照して下さい。



うん、そんなにうるさくエラーを吐かなくなりました。
あんまり厳しくルールを縛られると、コーディングが億劫になっちゃいますからね笑

0 件のコメント:

コメントを投稿

Related Posts Plugin for WordPress, Blogger...