You can vote on the following features which are all related:
http://pytools.codeplex.com/workitem/1 [something like PyLint, but based upon our analysis]
http://pytools.codeplex.com/workitem/162 [PyLint integration]
http://pytools.codeplex.com/workitem/176 [add reformat code command]
We're not planning on implementing any of those features in the next release or two so if this was something you really wanted, and were willing to implement, you could implement it and we are willing to take the contributions back.
I'd think of matching PEP8 guidance in two ways: First is the basic formatting, when and where there should be spaces, etc... That's like feature 176. We already have code for taking a Python AST and converting it back into strings AppendCodeString
methods on the AST nodes in Microsoft.PythonTools.Parsing.Ast). Supporting reformatting would basically just be inserting the "correct" white space instead of using the verbatim white space which was persisted in the tree. This would then get wired
up to the Edit->Advanced->Format Document/Edit->Advanced->Format Selection commands.
But then there's also naming guidelines which will require real refactorings if you want to do something like rename a camel cased method to have underscores or rename a class to be pascal cased. That'd be something like a smart tag (probably easier
to plug into that then adding a new widget) to offer to do the rename.
And of course integrating PyLint could be pretty easy - it should just be adding a new command which shells out to PyLint, collects the messages, and adds them to the VS error list using the IVsErrorList interface and also use a SimpleTagger<ErrorTag>
to add the squiggles into the open editor buffers (you can see examples of both of these in ProjectAnalyzer.cs). You could even make it run automatically in the background (on file save? Or after a buffer has been idle for a while like how we kick
off re-analysis of the files?) so that it all happened automatically.
If you are interested in implementing these into PTVS let me know and I'll be willing to answer any questions or help w/ any problems you run into.