web-dev-qa-db-fra.com

Impossible de corriger la règle eslint sur les instructions de mise en retrait dans l'instruction switch

Voici une capture d'écran de ma fenêtre de texte sublime montrant l'erreur eslint lancée pour l'instruction switch/case. Je veux devoir indenter 4 espaces, comme le montre le code.

enter image description here

et voici 4 différentes tentatives pour essayer de permettre un retrait de 4 espaces, via des modifications dans le fichier .eslintrc dans mon application React. J'ai recherché une solution sur Google et j'ai vu des suggestions pour ajouter à la fois switchCase et indentSwitchCase, mais mes règles .eslintrc sont toutes - espacées, pas camelcase, j'ai donc ajouté les 4 règles dans le but de supprimer l'erreur du texte sublime, mais pas de chance ... Qu'est-ce que je fais mal ?!?!

enter image description here

EDIT: ceci est une application React/MERN et im utilisant du texte sublime comme éditeur. Faites-moi savoir si je peux partager autre chose de mon fichier .eslintrc pour vous aider!

EDIT 2: J'ai essayé ceci:

"indent": ["error", 4, {SwitchCase: 1}]

... mais il s'agit d'une règle invalide pour le retrait. Comment puis-je ajouter un objet option à la règle de retrait sans obtenir d'erreur?

14
Canovice

Je viens de voir que vous avez apporté une modification ("EDIT 2") à votre réponse.

Quoi qu'il en soit, je voulais vous conseiller exactement cette option:

"indent": ["error", 4, { "SwitchCase": 1 }]

Pourquoi le considérez-vous " comme une règle invalide pour le retrait "?

Selon les docs , c'est la bonne façon de définir le retrait souhaité pour les instructions switch.

"SwitchCase" (par défaut: 0) applique le niveau d'indentation pour les clauses case dans les instructions switch.

Les documents fournissent également [quatre exemples]:

  • Le retrait de 2 espaces avec SwitchCase défini sur 0 ne mettra pas en retrait les clauses de casse par rapport aux instructions switch.
  • Le retrait de 2 espaces avec SwitchCase mis à 1 mettra en retrait les clauses de casse avec 2 espaces par rapport aux instructions switch.
  • Le retrait de 2 espaces avec SwitchCase défini sur 2 mettra en retrait les clauses de casse avec 4 espaces par rapport aux instructions switch.
  • Le retrait de tabulation avec SwitchCase défini sur 2 mettra en retrait les clauses de casse avec 2 tabulations par rapport aux instructions de commutation.

Ce ne sont que des exemples, le fait que votre objet d'option cible ne soit pas répertorié ne signifie pas qu'il n'est pas correct. Et en effet, il semble être correct: ESLint Demo .

Votre cas d'utilisation est en fait inclus dans les documents de la version 2.0. (pas d'ancre à relier directement, désolé, c'est le dernier bloc de code du document):

/*eslint indent: [2, 4, {"SwitchCase": 1}]*/

switch(a){
    case "a":
        break;
    case "b":
        break;
}
20
David