SonarLint, codez connecté avec SonarQube

sonarlint-black-256

Lors d'un projet, la qualité est aujourd'hui devenue une des priorités. Concernant celle du code source, de nombreux outils existent pour nous guider. Aujourd'hui nous allons aborder le sujet du plugin SonarLint en lien avec SonarQube.

Mais avant d'aborder ce qu'est SonarLint par rapport à SonarQube et en quoi celui-ci peut nous aider lors des phases d'amélioration du niveau de qualité du code de nos projets, voici un bref rappel sur SonarQube.

Rappel SonarQube

sonar

SonarQube est un logiciel open-source permettant d’analyser la qualité du code source d'un projet de développement dans de multiples langages (JAVA, Javascript, PHP, C# …).

La qualité est analysée sur les points suivants :

  • Duplication de code
  • Documentation
  • Tests unitaires et couverture de code 
  • Règles de programmation
  • Analyse de la complexité
  • Bugs potentiels

Lorsque les projets deviennent conséquents, le parcours des fichiers en erreur est parfois difficile. Alors, le jonglage entre l'interface de SonarQube et le code source lors des phases de correction en devient fastidieux. Pour nous assister dans ces tâches de correction et pour visualiser les erreurs potentielles en amont des analyses Sonar, il existe un plugin, SonarLint.

 

Présentation de SonarLint

SonarLint est un nouveau plugin officiel de SonarSource (première version datant d'octobre 2015) permettant l’analyse syntaxique du code source directement dans l'IDE en utilisant les règles d'analyse de SonarQube.

Il est disponible sur les IDE suivant :

  • Eclipse
  • Intellij
  • Visual Studio

A la manière de CheckStyle, SonarLint affiche les problèmes directement dans le code en les surlignant/soulignant et en les listant dans un panel dédié.

Une autre vue permet aussi d'afficher la description d'une erreur sélectionnée.

sonarlint-example

Exemple SonarLint

L'installation de SonarLint se fait très rapide en passant par les gestionnaires de plugins des IDE précédemment cités et ne nécessite aucune configuration particulière pour fonctionner.

Cette simplicité est un avantage mais elle est aussi un problème car il n'est pas possible de paramétrer les règles que l'on souhaite utiliser.

Pour palier à ce problème, la nouvelle version 2.0 sortie en avril de SonarLint a introduit une nouveauté majeure : Le mode connecté.

 

Mode connecté

Pour configurer le mode connecté, il vous faudra paramétrer l'URL du serveur dans les options du plugin.

sonarlint-config

Configuration de la connexion

Une fois la connexion effectuée, les règles du plugin peuvent alors être synchronisées à partir de celles définies sur le serveur.

sonarlint-example-2

Synchronisation avec le serveur

Le mode connecté est donc une solution qui permet d'utiliser des règles différentes de celles de SonarLint en s'appuyant sur celles du serveur.

Un autre avantage du mode connecté est de s'assurer d'utiliser exactement les mêmes règles que celles du serveur et surtout que tous les développeurs du projet utilisent les mêmes règles. Attention cependant à se synchroniser régulièrement avec le serveur en cas de changement de règle sur celui-ci.

 

En revanche, avec ce mode, les règles corrigées en local ne sont pas répercutées directement sur les résultats du serveur. 

Étant donné que seules les règles sont synchronisées, les erreurs affichées par SonarLint peuvent donc être différentes du serveur si le code en local n'est pas identique avec celui utilisé lors de la dernière analyse Sonar.

 

Exemple de modification de règle

En partant de l'exemple précédant et en admettant que l'on ne souhaite plus suivre la règle Sonar "Instance methods should not write to "static" fields", nous allons désactiver celle-ci (non conseillé en réalité !).

Voici les étapes à suivre :

  1. Désactiver la règle sur le serveur
  2. Synchroniser le plugin SonarLint
  3. Ré-ouvrir les fichiers sources

Après avoir effectué ces étapes, l'erreur précédemment affichée n'est plus remontée.

 

sonarlint-example-3

Exemple après désactivation d'une règle

Nous arrivons à la fin de cet article, j'espère qu'il vous aura donné envie de tester SonarLint lors de vos prochains développements.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Captcha *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.