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. The connected mode is compatible with SonarQube 5.6+.
You can bind Eclipse projects to a SonarQube project (supporting SonarQube servers 5.6+). This operation will make SonarLint use the analyzers, quality profiles and settings defined on your SonarQube server. This is a convenient way of customizing the rules used by SonarLint.
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.
- February 20, 2017 - We released version 2.6.0, with a new view to see additional issue locations (flows, secondary locations). Also updated embedded analyzers and support PL/I in connected mode.
- January 10, 2017 - Bug fix version 2.5.1 was released, fixing a problem that was preventing the analysis of C/C++ projects in Eclipse CDT to work out of the box.
- December 14, 2016 - We released version 2.5.0 of SonarLint for Eclipse with the two main improvements: ability to run an analysis on all changed files (based on the SCM) and official support of C/C++ projects when using Eclipse CDT. There are also several bug fixes and small improvements. The analyzer SonarJava was updated to version 4.3.
- December 5, 2016 - We released version 2.4.0 of SonarLint for Eclipse with the main improvement of showing a notification when an update is detected for the current bindings (new version of an analyzer installed on the SonarQube server for example). There are also several bug fixes and performance improvements.
- November 21, 2016 - Version 2.3.1 is out. It fixes hiding resolved issues on Windows, and other minor bugs.
- 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: C/C++, ABAP, COBOL, PL/SQL, PL/I, Swift and RPG
For proper analysis of Java projects, you need to install the optional configurator for Java (integrates with JDT). For proper analysis of C/C++ projects you have to install the optional configurator for C/C++ (integrates with CDT).
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 -> Properties), select SonarLint entry and uncheck "Run SonarLint automatically"
When automatic analysis is disabled you can manually run SonarLint analysis using context menu on each source 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?
SonarLint supports the SonarSource Analyzers (SonarJava, SonarJS, ...) and also custom rules extending these SonarSource analyzers.
We don't plan to support plugins running third-party analyzers (like PMD, Android Lint, JSLint...). Most of the time those analyzers already have dedicated IDE integration.
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.