For those interested, I have created a fork of Ryan’s excellent plugin. You can find my version at github.com/aroberge/sublimelint . I have not changed the readme file nor added any copyright information. I expect Ryan to implement some/all of the new functionality that I have added eventually. I reorganized the code significantly and changed quite a few names so that I could find it easier to read and understand; your mileage may vary.
The main addition, as compared with Ryan’s version is that one can use pylint - but not in realtime. pylint is quite slow, and I have it setup so that it is run on demand. NOTE that you need to have pylint already installed - unlike pyflakes which comes included with the plugin.
Some small differences:
- to enable the plugin to work by default, you need to set a user preference “sublime_linter” to true.
- you can turn on/off the linter via a command view.run_command(“linter_on”) (or “linter_off”) - even if you have not set a user preference before.
- To run a linter “once” (i.e. not always on in the background), you use
view.run_command(“run_linter”, “linter”) where “linter” is one of “Python”, “PHP” or “pylint” - If you run a linter via a command as in 3. above, the realtime linter is disabled. To reset it to its previous state (on or off…) AND to clear all visible “errors” you use the command
view.run_command(“reset_linter”)
For some reason, the configuration file for pylint is not read in … I tried various options but could not get it to work. I’ve turned off a couple of things but you may find that pylint reports too many errors to your liking … I’ll try to improve upon it - but suggestions/patches are most welcome.
Also, I found that I simply could not use the subprocess approach used for the php linter (it could not find “pylint” …) and had to resort to importing the pylint module itself. Unfortunately, this means that if you want to work on the pylint plugin itself, you may have to quit Sublime Text and restart to see changes take place (unlike the situation for the other plugins, thanks to some very nice code originally written by Ryan).