SonarLint offers a fully-integrated user experience in IntelliJ IDEA. After installing the plugin you'll get on the fly analysis of your code and a new action called 'Analyze with SonarLint'.
SonarLint is free, open source, and available in the Jetbrains Plugin Repository. Note that it requires Java 8 to run. The connected mode is compatible with SonarQube 5.6+.
- December 7, 2016 - With version 2.5, it is now possible to analyze all files in the VCS change set and do pre-commit checks. You will now also get notifications when an update for a binding is available. Bugfixes and improvements in performance are also included.
- November 23, 2016 - Another bug fix version 2.4.3 is out. It fixes hiding resolved issues on Windows in nested multi-module projects.
- November 21, 2016 - Another bug fix version 2.4.2 is out. It fixes hiding resolved issues on Windows and authentication problems when using login/password instead of tokens.
- November 11, 2016 - version 2.4 released. SonarLint will now hide issues marked as resolved in SonarQube (when using the connected mode). Numerous other improvements and bugfixes are also included. Starting from this version, SonarLint is only compatible with SonarQube 5.6+ (current LTS).
- September 7, 2016 - Bugfix version 2.3.2 released, fixing "disable automatic analysis" configuration not persisted, and classpath issue.
- August 5, 2016 - version 2.3 released, introducing the support of exclusions in connected mode. It also contains numerous bug fixes. Starting from this version, Java 8 is required to run SonarLint.
- June 3, 2016 - version 2.2 extends support of connected mode to SonarQube 4.5.4+. Some SonarSource commercial languages are also supported.
- May 13, 2016 - v2.1 contains a bug that prevents it from starting in PHPStorm. A bugfix version version 2.1.1 was released to fix the problem.
- April 29, 2016 - Another bug fix version released: version 2.0.2.
- April 20, 2016 - Important bug fixes released with version 2.0.1.
- April 15, 2016 - Version 2.0 of SonarLint for IntelliJ IDEA is released. Connected mode has arrived! It's now possible to connect to a SonarQube server to use the rules of a specific SonarQube project.
- March 4, 2016 - Version 1.5 of SonarLint for IntelliJ IDEA is released. Issues panel shows the age of the issues since Intellij was restarted, sorting them by the most recent first.
- February 18, 2016 - Version 1.4 of SonarLint for IntelliJ IDEA is released. 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. Several bug fixes are included too.
- January 29, 2016 - Version 1.3 of SonarLint for IntelliJ IDEA is released. The main new feature is a view with the issues in SonarLint's tool window. There are also other UI improvements.
- January 13, 2016 - Version 1.2 of SonarLint for IntelliJ IDEA is released. On the fly analysis is back and enabled by default. Highlighting of issues is now configurable by severity (including error stripes) and we have now a "NO SONAR" quick fix.
- December 16, 2015 - Version 1.1 of SonarLint for IntelliJ IDEA is released. It features more precise issue locations, improved console and better adaption of markers to code changes. The analysis is now triggered manually with actions, available directly through key bindings and the editor menu.
You can bind IntelliJ 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 configure the SonarQube server:
- In the SonarLint Global Settings, click in the add icon;
- Configure the server. It is recommended to use authentication token, which can be created from your profile page in SonarQube;
After adding a new SonarQube server configuration, a local update will immediately be triggered. To manually trigger an update of a local configuration at any later time (for example, if the remote SonarQube configuration changes), click in the "Update binding" button.
Once this initial update is done, you can bind the IntelliJ project to a SonarQube project in the SonarLint Project Settings:
- Enable binding by selecting the check box;
- Select the SonarQube server to be used. A warning will be displayed if the local data is not updated;
- Select the SonarQube project. SonarLint will use the quality profile and settings from this project;
That's it, you can now code and see SonarLint reporting issues based on the remote SonarQube configuration.
Frequently Asked Questions
- How to enable SonarLint? - SonarLint is enabled by default.
- How can I connect SonarLint to my SonarQube server? - Check the Connected Mode section. This allows to configure rules and settings, but there is no tracking of issues yet.
- Where can I find logs of analysis or about the configuration that SonarLint is using? - In the 'logs' tab of SonarLint tool window. You can configure it to display verbose and/or analysis logs.
- How to start SonarLint analysis? - By default, SonarLint analysis are triggered automatically when working on the code (this behaviour can be disabled in the configuration). It can also be launched manually with the action "Analyze this file with SonarLint" (Control+Shift+A). This action has a configurable key binding (Control + Shift + S by default) and is also available in the SonarLint console and editor popup menu.
- How to configure rules? - Check the Connected Mode section. When not connected to a SonarQube server, these are the rules used by SonarLint.
- Can I change the highlighting of issues? - Yes, in Settings -> Editor -> Colors & Fonts -> SonarLint. By default, the highlighting of issues matches the standard warnings and errors, but it can be customized by severity, including the error stripe on the right bar.
- How to update SonarLint? - SonarLint IntelliJ Plugin can be updated like any other IntelliJ plugin. Updates are done regularly, which include sometimes new analyzers with improved rule engines.
SonarLint for IntelliJ IDEA 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.