Qodana : la version 2022.2 de la plateforme de contrôle de la qualité de code de JetBrains est disponible
Avec un orbe CircleCI et plus de 50 nouvelles inspections

Qodana 2022.2 est disponible. Cette nouvelle version de la plateforme de contrôle de la qualité de code de JetBrains ajoute un orbe CircleCI à l’ensemble d’outils d’intégration de Qodana. Elle vient également avec de nouvelles inspections du code et apporte des améliorations pour Java, Kotlin, Android, PHP, JavaScript et Python.

Davantage d’outils de CI à utiliser avec Qodana

Qodana dispose déjà de plugins pour Azure Pipelines, GitHub Actions et TeamCity. Pour cette version 2022.2, JetBrains a préparé un orbe Qodana CircleCI qui vous permet de mettre facilement et rapidement en place des inspections de code avec vos projets CircleCI.


Il est également facile de configurer Qodana dans GitLab, Jenkins ou dans tout autre outil de CI prenant en charge l’exécution d’images Docker.

Pour inclure ou exclure certaines inspections de votre analyse, vous pouvez personnaliser votre profil d’inspection par défaut ou en créer un nouveau. Il est aussi possible de mettre en œuvre les inspections requises par vos directives de codage ou recommandées par les bonnes pratiques.

On note également plus de 50 nouvelles inspections parmi lesquelles ont peut citer celles-ci qui suivent par domaine :

Expressions régulières

Les expressions régulières sont connues pour leur complexité, leur syntaxe élaborée, et parfois leur verbosité. JetBrains a ajouté plusieurs nouvelles inspections pour vous simplifier la tâche. Auparavant seulement disponibles pour Java, elles le sont maintenant pour tous les langages.

Expressions régulières simplifiées

Une expression régulière comme [\wa-z\d] peut être simplifiée pour devenir simplement \w puisque \w inclut déjà a-z ainsi que les chiffres. Cela permet d’améliorer la lisibilité globale du code.

Références arrière suspectes

Une expression régulière comme \1(abc) ne peut pas avoir de correspondance car \1 fait référence à l’ensemble de caractères abc qui n’est pas encore défini lors de l’évaluation de \1. Cette inspection permet d’éviter les fautes de frappe simples dans les expressions régulières et d’accélérer le processus de modification.

Éléments de classe redondants \d, [:digit:] ou \D

L’expression régulière [\w+\d] peut être écrite comme [\w+], car \w inclut déjà \d. Cela permet d’améliorer la lisibilité globale du code.

Prise en charge du format Markdown

Éléments de liste numérotés de façon incorrecte

Les éléments d’une liste classés avec une numérotation de type 1. 2. 4. sont indiqués comme étant numérotés de façon incohérente. Avec Markdown, la liste est toujours affichée avec une numérotation 1. 2. 3., mais l’incohérence rend la modification du code source plus compliquée.

Inspections Java, Kotlin et Android

JetBrains a ajouté et réorganisé les inspections dans les catégories suivantes : Javadoc, DevKit, Markdown, langage Kotlin, style, modèles architecturaux, performance et prise en charge de JUnit. Voici quelques exemples de l’ensemble JUnit.

JUnit : Déclaration malformée

Une inspection signale les déclarations de membres de tests JUnit qui ne sont pas correctement formées et pourraient ne pas être reconnues par le framework de tests JUnit. De telles déclarations pourraient avoir pour conséquence la non-exécution des tests ou des méthodes de cycle de vie d’un composant.




JUnit : TestCase non constructible

Cette inspection signale les cas de test JUnit qui ne peuvent pas être construits en raison d’un constructeur non valide. De tels cas de test ne seront pas pris en compte par l’exécuteur de tests de JUnit et ne seront donc pas exécutés.


Inspections PHP

JetBrains a ajouté des inspections dans les catégories suivantes : bugs probables, documentation, style, tests et Laravel. Par exemple :

Bug probable : incohérence des plages de nombres

Dans une fonction qui est déclarée avec returns int<0,10>, cette inspection indique les déclarations de retour qui renvoient un nombre en dehors de cette plage. Elle s’applique aussi aux champs, aux constructeurs de champs et aux appels de fonctions.

Documentation : balise de type sans nom de variable

L’extrait PHPDoc @param string est redondant car il ne donne pas d’informations sur ce qui est une chaîne de caractères. Il devrait être supprimé ou remplacé par @param string $argument, précisant que argument est une chaîne de caractères.

Blade : erreur d’analyse due à des parenthèses non appariées dans des littéraux de chaînes

On note dans cette version la détection précoce des parenthèses non appariées dans les littéraux de chaînes, qui sont ensuite analysés par Blade, un moteur de modèles.

Découvrez et téléchargez Qodana 2022.2