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.