Quello che faccio è copiare ciecamente i workflow da GitHub - discourse/discourse-plugin-skeleton: Template for Discourse plugins e GitHub - discourse/discourse-theme-skeleton: Template for Discourse themes. (Devo modificare un po’ quello del plugin per il mio plugin dashboard, che dipende dal plugin stripe). Questo, sono disposto a crederci, è abbastanza buono per fare il linting.
Quello che voglio, però, è che vscode faccia il linting prima che io faccia il commit. Ha funzionato in passato, ma ha smesso e mi sento come qualcuno che conosceva Emacs 20 anni fa, potrebbe dire cose come “premi control-p, ora fai la cosa per installare la cosa di formattazione, ora modifica il file di configurazione in modo che faccia la Cosa Giusta” e poi potrei ancora, premere control-S e avere i miei handlebars, javascript e qualsiasi altra cosa formattati in modo carino, e anche trovare tutte quelle fastidiose variabili che ho definito ma mai usato e così via.
Avvicinandosi
OK, ma ho fatto questo:
npm install --global yarn
yarn add prettier
E ora ho 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
Questo ha risolto parte del mio problema, quindi almeno posso eseguire prettier dalla riga di comando. Ma sono ancora disposto a pagare per avere aiuto per far fare a vscode il mio lavoro sporco. Quando salvo, dovrebbe eseguire eslint (o rubop o qualsiasi cosa) e o correggerlo o dirmi che non può. Sono troppo vecchio per pensare che il mio editor dovrebbe scrivere il mio codice, ma non così vecchio da pensare che non dovrebbe formattarlo.
C’era un argomento in cui qualcuno suggeriva quali plugin vscode stava usando, il che mi ha aiutato un po’, ma ora non lo vedo più.