A framework for error highlighting in the Sublime Text editor.
It's easy to add language support. Take a look at the linter repository for examples.
Linters in your Sublime Text User/linters
folder will be automatically used. Changes to linters in this folder will be overwritten on automatic update. If you want to change a builtin linter, disable it in the Sublime Lint preferences and copy the source to a new file/class name.
You can also import Linter
and subclass it inside plugin_loaded()
from any other Sublime plugin.
You can install in ST3 by adding this repository to Package Control, which does automatic updates.
Alternatively, you can clone sublimelint
into your Packages folder and switch to the st3
branch manually, but you will need to update manually.
Make sure you have the necessary command installed to lint your language - there's a list in the linter repository README.
It will lint as you edit any file in a supported language. Check the status bar for messages, and take a look at the SublimeLint commands in the Command Palette.
There's a current bug that makes it sometimes take a few seconds to start linting upon an editor restart. Be patient.
Press cmd+shift+p
on OS X, ctrl+shift+p
for everyone else. Type sublimelint
to see the available commands:
- Next Error - Jump to the next highlighed error or warning in your code.
- Previous Error - Jump to the previous error.
- Show All Errors - Open a command panel listing all errors in the current file.
- Report (Open Files) - Lint all open files and show a report in a new view.
- Preferences: SublimeLint Settings - User - Change global and linter settings.
You can change a few useful per-language settings by opening "SublimeLint Settings - User" via the Command Palette. Some languages (like C and C++) have additional linter-specific settings.
Example language settings:
"Ruby": {
// This command is run against your code.
// Some linters use a temporary file, while others pipe code to stdin.
"cmd": ["ruby", "-wc"],
// Disable the linter.
"disable": false,
// Exclude file patterns from being linted.
"excludes": ["Rakefile", "*.blah"]
}