Aide à la configuration de rubocop, eslint, et ainsi de suite dans vscode et la ligne de commande

J’en ai marre de soumettre du code qui échoue aux tests de linting. Parfois, je peux copier-coller les commandes rubocop ou yarn eslint (et ainsi de suite) depuis GitHub dans mon terminal et que cela fonctionne, mais cela ne fonctionne pas non plus en ce moment.

Je reçois des erreurs comme

 Aucun analyseur n'a pu être déduit pour le fichier : ...

Pour certains fichiers dans certaines conditions, VSCode reformate correctement à la sauvegarde et me dit que j’ai une erreur de syntaxe, mais cela ne fonctionne pas maintenant.

Que souhaitez-vous faire ?

Je veux faire un partage d’écran Zoom (ou autre) et que vous me guidiez à travers les choses afin que

  • VSCode exécute tout ce qu’il devrait faire à la sauvegarde et corrige la mise en forme ou me dise que quelque chose est cassé.
  • Je puisse exécuter yarn eslint et tout le reste des tests de linting depuis la ligne de commande

Quand avez-vous besoin que ce soit fait ?

Avant que je ne devienne complètement fou.

Quel est votre budget, en dollars USD, que vous pouvez offrir pour cette tâche ?

J’utilise Pop!Os, qui est essentiellement Ubuntu.

Si vous êtes à peu près sûr de pouvoir résoudre ce problème, je suis prêt à payer une heure de votre temps à votre tarif standard. Si vous pouvez le faire en dix minutes, je serai heureux de payer pour une heure. Tout le monde est gagnant.

2 « J'aime »

Jay,

Frustrant, n’est-ce pas ?

Ce que je fais pour ce genre de choses :

  • examiner les flux CI d’un plugin populaire
  • regarder la configuration associée à la racine du plugin

Vous pouvez voir ce que font mes tests de linting pour Chatbot ici :

Je pense que vous pouvez exécuter eslint et prettier depuis le répertoire du plugin, mais rubocop peut être exécuté depuis le répertoire discourse.

Si cela résout votre problème, n’hésitez pas à le convertir en un sujet Dev et vous êtes le bienvenu :slight_smile:

1 « J'aime »

Ce que je fais, c’est copier aveuglément les workflows de GitHub - discourse/discourse-plugin-skeleton: Template for Discourse plugins et GitHub - discourse/discourse-theme-skeleton: Template for Discourse themes. (Je dois ajuster un peu celui du plugin pour mon plugin de tableau de bord, qui dépend du plugin stripe). Je suis prêt à croire que c’est suffisant pour faire le linting.

Ce que je veux, cependant, c’est que vscode fasse le linting avant que je ne fasse le commit. J’ai déjà eu cela qui fonctionnait, mais cela s’est arrêté et j’ai l’impression que quelqu’un qui s’y connaît en VScode, comme je connaissais Emacs il y a 20 ans, pourrait dire des choses comme “tapez control-p, puis faites la chose pour installer le truc de formatage, puis modifiez le fichier de configuration pour qu’il fasse la Bonne Chose” et alors je pourrais à nouveau taper control-S et avoir mes handlebars, javascript, et tout le reste formatés joliment, et aussi trouver toutes les variables gênantes que j’ai définies mais jamais utilisées et ainsi de suite.

De plus en plus proche

OK, mais j’ai fait ceci :

      npm install --global yarn
      yarn add prettier

Et maintenant j’ai discourse-prettier :

#!/usr/bin/env bash
if [ -n "$(find assets -type f \( -name "*.scss" -or -name "*.js" -or -name "*.es6" -or -name "*.hbs" \) 2>/dev/null)" ]; then
  yarn prettier --write "assets/**/*.{scss,js,es6,hbs}"
fi
if [ -n "$(find admin/assets -type f \( -name "*.scss" -or -name "*.js" -or -name "*.es6" -or -name "*.hbs" \) 2>/dev/null)" ]; then
  yarn prettier --write "admin/assets/**/*.{scss,js,es6,hbs}"
fi
if [ 0 -lt $(find test -type f \( -name "*.js" -or -name "*.es6" \) 2> /dev/null | wc -l) ]; then
  yarn prettier --write "test/**/*.{js,es6}"
fi

if [ -n "$(find assets -type f \( -name "*.scss" -or -name "*.js" -or -name "*.es6" -or -name "*.hbs" \) 2>/dev/null)" ]; then
  yarn prettier --list-different "assets/**/*.{scss,js,es6,hbs}"
fi
if [ -n "$(find admin/assets -type f \( -name "*.scss" -or -name "*.js" -or -name "*.es6" -or -name "*.hbs" \) 2>/dev/null)" ]; then
  yarn prettier --list-different "admin/assets/**/*.{scss,js,es6,hbs}"
fi
if [ 0 -lt $(find test -type f \( -name "*.js" -or -name "*.es6" \) 2> /dev/null | wc -l) ]; then
  yarn prettier --list-different "test/**/*.{js,es6}"
fi

Cela a résolu une partie de mon problème, donc au moins je peux exécuter prettier depuis la ligne de commande. Mais je suis toujours prêt à payer pour obtenir de l’aide afin que vscode fasse mon sale boulot. Quand je sauvegarde, il devrait exécuter eslint (ou rubop ou autre) et soit le corriger, soit me dire qu’il ne peut pas. Je suis trop vieux pour penser que mon éditeur devrait écrire mon code, mais pas si vieux que je pense qu’il ne devrait pas le formater.

Il y avait autrefois un sujet où quelqu’un suggérait les plugins vscode qu’il utilisait, ce qui m’a un peu aidé, mais je ne le vois plus.

1 « J'aime »

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.