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+.

SonarLint in Eclipse

Connected Mode

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.

News

  • 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.
  • November 15, 2016 - We released version 2.3.0 of SonarLint for Eclipse with the main improvement of hiding resolved issues in connected mode. Changing/updating bindings will trigger analysis of open files. The current file will be analyzed after starting Eclipse. Files in aggregator Maven projects will be no longer analyzed twice. We have also updated some analyzers to their latest version (Java 4.2.1, JavaScript 2.18, PHP 2.9). Starting from this version, SonarLint is only compatible with SonarQube 5.6+ (current LTS).
  • August 26, 2016 - We released version 2.2.1 of SonarLint for Eclipse with one important performance improvement when analyzing Java source files. Java and JavaScript analyzers were also updated to their latest version. Compatibility with IBM JVM in connected mode was restored.
  • July 29, 2016 - We released version 2.2.0 of SonarLint for Eclipse with many improvements: Support of Python and updated Java and JavaScript analyzers. File/issue exclusions configured on SonarQube server are now taken into account (in connected mode). Support of custom rules (but plugins have to be updated). Starting from this version, Java 8 is required to run SonarLint and Juno is no more supported.
  • June 3, 2016 - We released version 2.1.0 of SonarLint for Eclipse with extended support of SonarQube 4.5.4+ in connected mode. Some SonarSource commercial plugins are also supported. We have also updated Java and JavaScript analyzers to their latest version (Java 3.14 and JavaScript 2.12).
  • April 4, 2016 - We released version 2.0.0 of SonarLint for Eclipse with ability to connect to a SonarQube server. We have also updated Java and JavaScript analyzers to their latest version (Java 3.12 and JavaScript 2.11).
  • 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.
  • January 15, 2016 - We have updated Java and JavaScript analyzers to their latest version (Java 3.9 and JavaScript 2.10). Use Help -> Update SonarLint analyzers menu to get them.
  • 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.
  • December 7, 2015 - We released version 1.1 of SonarLint for Eclipse. Updated versions of Java, JavaScript and PHP analyzers: some issues start to be more precisely located on code. Few more rules and many improvements to existing ones. Use Help -> Update SonarLint menu to get new analyzers.
  • October 15, 2015 - Today we released version 1.0 of SonarLint for Eclipse. Java, JavaScript and PHP are supported.

Frequently Asked Questions

  • Which languages are supported?

    Out of the box: Java, JavaScript, PHP and Python

    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 -> 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 only the SonarSource Analyzers. We plan to quickly add support for custom rules extending the Java, JavaScript and PHP Analyzers.

    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:

Contribute

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.

Feedback

The preferred way to discuss about SonarLint is by posting on the SonarLint Google Group. We are also constantly monitoring questions posted to StackOverflow. For faster answers mark your StackOverflow questions with [SonarLint] and [Eclipse] tags.