SonarLint offers a fully-integrated user experience in Eclipse-based IDEs. After installing the plugin issues will be reported as Eclipse markers.
SonarLint is free, open source, and available in the Eclipse Marketplace. Note that it requires Java 8 to run.
With version 2.0+ you can now establish a connection to a SonarQube server (4.5.4+) and bind your Eclipse project to a SonarQube project. This operation will make SonarLint use the analyzers, quality profiles and settings defined on your SonarQube server.
First step is to connect to your SonarQube server:
- In SonarQube server view, right click and choose "New -> Server connection", or directly do "File -> New -> Other... -> SonarLint -> New Server".
- Complete connection details (URL and credentials).
- Test connection
- Click "Finish" to close the wizard and start updating configuration from the server (may take a while)
You can manage your SonarQube server connections in the "SonarQube Servers" view. To manually trigger an update of local configuration (if remote SonarQube configuration has changed): right click on a server and use the "update" action.
Now you can bind one or more Eclipse project(s) to their remote SonarQube pair. Right click on project -> "SonarLint -> Bind with remote SonarQube server..."
You can now use the wizard to find the matching SonarQube project. First try the "auto-bind" feature that will try to find best match based on Eclipse project name. If auto-bind fail you can manually search for a project.
Click on "Finish" to persist the binding. You should now show SonarQube overlay on your bound project icon.
That's it, you can now code and see SonarLint reporting issues based on remote SonarQube configuration.
- March 2, 2016 - We released bugfix version 1.3.1 of SonarLint for Eclipse.
- February 17, 2016 - We released version 1.3 of SonarLint for Eclipse. The plugin is now fully standalone: there is no more dependency on http://update.sonarlint.org. We removed the quick fix // NOSONAR that was too controversial. Java analyzer is updated to its latest version (3.10). Some rules were added on pom.xml files.
- December 16, 2015 - We released version 1.2 of SonarLint for Eclipse. It is possible to see recently introduced issues by displaying the "Date" column in SonarLint issues view. Also there is a quick fix for SonarLint issues to mute them by adding a // NOSONAR comment.
Frequently Asked Questions
Which languages are supported?
With the Connected Mode, it adds: ABAP, COBOL, PL/SQL, Swift
How to start SonarLint analysis?
SonarLint analysis is automatically triggered by a resource change listener (in short: when a file is modified) and also when you open a file.
If you want to disable the automatic analysis go to project properties: Right click on the project -> SonarLint and uncheck "Run SonarLint automatically"
If automatic analysis is disabled you can manually run SonarLint analysis using context menu on file:
- How can I connect SonarLint to my SonarQube server? - Please use connected mode to connect with a SonarQube server.
In Connected Mode will all plugins installed on SonarQube be executed in SonarLint?
We don't plan to support plugins running third-party analyzers in order to keep SonarLint as fast as possible.
How to see rule description?
Full rule description is available in a dedicated view. You can open it using the context menu in the issues view:
How to exclude files from the analysis?
By default we are excluding derived files. Apart from that all files recognized as a supported language are analyzed. In connected mode you can configure some exlusions on server side.
How to open SonarLint console?
SonarLint console allow to see logs of the analysis. This can be useful to understand some technical issues. You can open it from standard Eclipse Console views:
How to enable verbose logs?
By default SonarLint console will not display debug logs. You can enable debug logs from SonarLint console:
SonarLint for Eclipse is open source under the LGPL v3 license. You can fork us on GitHub, and submit Pull Requests. Feel free to fix bugs or to implement new features.