Ce référentiel contient eslint-plugin-sonarjs jusqu'à la version ^1.0.0 . Pour les versions >=2.0.0 veuillez accéder au référentiel de l'analyseur Sonarjs. Les nouvelles versions d' eslint-plugin-sonarjs mettent toutes les règles de SonarJS disponibles pour les utilisateurs d'Eslint, au lieu d'un sous-ensemble comme il l'était avec ^1.0.0 vivant ici.
Aucun nouveau changement ne devrait atterrir ici.
Sonarjs règle Eslint pour aider les développeurs à produire du code propre en détectant des bogues et des modèles suspects.
Les règles de cette catégorie visent à trouver des endroits dans le code qui ont de grandes chances d'être des bogues, c'est-à-dire ne fonctionnent pas comme prévu.
no-all-duplicated-branches )no-element-overwrite )no-empty-collection )no-extra-arguments )no-identical-conditions )no-identical-expressions ))no-ignored-return ) ( usages )no-one-iteration-loop )no-use-of-empty-return-value )non-existent-operator ) (: clé: réparable )Les odeurs de code, ou les problèmes de maintenabilité, sont soulevées pour des lieux de code qui pourraient être coûteux à changer à l'avenir. Ces règles contribuent également à maintenir la qualité élevée du code et la lisibilité. Et enfin, certaines règles rapportent des problèmes sur différents modèles de code suspects.
cognitive-complexity )elseif-without-else ) ( désactivé )max-switch-cases )no-collapsible-if )no-collection-size-mischeck ) (: Wrench: Réglable , Using-Types )no-duplicate-string )no-duplicated-branches )no-gratuitous-expressions )no-identical-functions )no-inverted-boolean-check ) (: clé: réparable , handicapée )no-nested-switch )no-nested-template-literals )no-redundant-boolean )no-redundant-jump ) (: Céreuse: réparable )no-same-line-conditional clinno-small-switch )no-unused-collection tableno-useless-catch )prefer-immediate-return ) (: Wrench: Fixable )prefer-object-literal )prefer-single-boolean-return ) (: Wrench: Fixable )prefer-while ) (: Wrench: Réglable ) eslint-plugin-sonarjs à l'aide de npm (ou yarn ) pour votre projet ou dans le monde: npm install eslint-plugin-sonarjs --save-dev # install for your project
npm install eslint-plugin-sonarjs -g # or install globallyeslint-plugin-sonarjs aux plugins de votre configuration Eslint. Pour Eslint 9: Ajoutez une option plugins à votre eslint.config.js et incluez la configuration recommandée pour activer toutes les règles:
import sonarjs from "eslint-plugin-sonarjs";
[
sonarjs.configs.recommended,
{
"plugins": {
sonarjs,
}
}
]
Pour Eslint 8: Ajoutez une option plugins à votre .eslintrc et plugin:sonarjs/recommended-legacy à l'option extends pour activer toutes les règles recommandées:
{
"plugins" : [ " sonarjs " ],
"extends" : [ " plugin:sonarjs/recommended-legacy " ]
}{
"rules" : {
"sonarjs/cognitive-complexity" : " error " ,
"sonarjs/no-identical-expressions" : " error "
// etc.
}
}@typescript-eslint/parser comme analyseur pour Eslint (comme nous le faisons) et définissez l'option parseroptions.project. Grâce à cela, des informations de type sont disponibles, ce qui est bénéfique ou même essentiel pour certaines règles. Ce plugin ne fournit qu'une configuration recommended . Presque toutes les règles sont activées dans ce profil à quelques exceptions près (consultez la balise disabled dans la liste des règles). La configuration recommended active les règles avec la gravité error . Nous incluons une configuration recommended-legacy pour être en arrière compatible avec Eslint V8, avec la même configuration de règle.
Ce plugin expose aux utilisateurs Eslint un sous-ensemble de règles JS / TS à partir de produits Sonar- * (aka Sonarjs). Nous avons extrait les règles qui ne sont pas disponibles dans Eslint Core ou d'autres plugins Eslint sont bénéfiques pour la communauté Eslint.
Si vous êtes un utilisateur Sonarqube ou SonarCloud, pour pelucher votre code localement, nous vous suggérons d'utiliser l'extension de sonarlint IDE (disponible pour VScode, JetBrains IDE et Eclipse). Vous pouvez connecter sonarlint à votre projet Sonarqube / SonarCloud pour synchroniser la configuration des règles, les statuts de problème, etc.
Voulez-vous participer au développement du projet? Jetez un œil à notre guide de contribution!