JavaScript Python Releases

Qodana 2022.2 est disponible : Orbe CircleCI et plus de 50 nouvelles inspections

Read this post in other languages:
English, 한국어, Português do Brasil, Español, 简体中文

Qodana 2022.2 est disponible ! Cette version ajoute un orbe CircleCI à l’ensemble d’outils d’intégration de Qodana et de nouvelles inspections du code et apporte des améliorations pour Java, Kotlin, Android, PHP, JavaScript et Python.

COMMENCER AVEC QODANA

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, nous avons 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. Consultez la documentation de Qodana pour plus d’informations. 

Nouvelles inspections

Expressions régulières

Les expressions régulières sont connues pour leur complexité, leur syntaxe élaborée, et parfois leur verbosité. Nous avons 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

Nous avons 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

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

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.

Vous pouvez voir ces exemples en direct sur notre instance publique TeamCity. Veuillez utiliser la connexion Guest pour y accéder. Les autres inspections sont décrites dans notre documentation.

Inspections PHP

Nous avons 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 surce 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

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.

Si vous avez des suggestions pour de futurs sujets d’articles ou souhaitez en savoir plus sur la façon dont Qodana peut vous aider, laissez un commentaire ci-dessous, taguez-nous sur Twitter ou écrivez-nous à qodana-support@jetbrains.com.

L’Équipe Qodana

Auteur de l’article original en anglais :

Delphine Massenhove

Viktor Tiulpin