2

TextMateのPythonファイルでValidate構文を実行すると、pylintでhtml出力を取得しようとしています。pycheckmate、pylintをインストールし、出力形式をhtmlに設定する.pylintrcファイルを$HOMEに作成しました。

TextMateの[詳細設定]コントロールパネルの[シェル変数]タブで、にTM_PYCHECKER設定しました/usr/local/share/python/pylint。Validate Syntaxをトリガーすると、すべてのデフォルトオプションを使用してpylintが実行され、出力が表示されます。に変更TM_PYCHECKER/usr/local/share/python/pylint --rcfile "$HOME/.pylintrc"て構文を再度検証すると、次のようになります。

より広範なコードチェックについては、PyChecker、PyFlakes、またはPylintをインストールしてください。

コマンドラインから/usr/ local / share / python / pyrintを引数なしで実行すると、出力はhtmlになるため、その場合はrcfileを読み取っていることがわかります。私は何が欠けていますか?

4

2 に答える 2

1

OK、私は問題を見つけたと思います:pycheckmateはpylint--output-format=parseable'への強制的な引数として設定されます。/ usr / local / share / python / pyrintを、引数を出力するラッパースクリプトに置き換えることで、これを見つけました。

#!/usr/bin/env python

import sys
from pylint import lint

print sys.argv[1:]
lint.Run(sys.argv[1:])

そして、TextMateで実行すると、次のように表示されます。

['--output-format=parseable', '/Users/smithm5/test.py']
test.py:26 [C] Line too long (90/80)
…

そこで、/ Applications / TextMate.app / Contents / SharedSupport / Bundles / Python.tmbundle / Support / bin/pycheckmate.py自体を掘り下げました。案の定、それはその議論と、ハードコードされたhtmlの多くを追加します。そこで、それを修正するために、すべてのescape()ラッパーを削除し、 opts = ()287行目に設定して、独自のdarn optsを設定できるようにし、332行目をに変更しましたprint line

于 2012-05-31T23:34:42.080 に答える
0

ある程度知識のある推測:$HOMEホームディレクトリへの絶対パスに置き換えてみてください。のようなシェル変数$HOMEは、TextMateのコントロールパネルではおそらく使用できません。

更新:私が持っているTextMateのバージョンに含まれているものに含まれているpycheckmate.pyスクリプトを見るPython.tmbundleと、のような引数を含めることはできないよう--rcfile /path/to/rcfileです。の値はTM_PYCHECKER、引数のないチェッカーバイナリへのパスのみであることが期待されます。ただし、Python.tmbundleの独自のコピーを作成する場合は、必要に応じて編集できるはずpycheckmate.pyです。

于 2012-05-31T17:25:10.817 に答える