Was ich tue, ist, blind die Workflows von GitHub - discourse/discourse-plugin-skeleton: Template for Discourse plugins und GitHub - discourse/discourse-theme-skeleton: Template for Discourse themes zu kopieren. (Ich muss die Plugin-Version ein wenig für mein Dashboard-Plugin anpassen, das vom Stripe-Plugin abhängt). Ich bin bereit zu glauben, dass dies gut genug ist, um das Linting durchzuführen.
Ich möchte jedoch, dass VSCode das Linting durchführt, bevor ich committe. Es hat in der Vergangenheit funktioniert, aber es hat aufgehört und ich fühle mich wie jemand, der vor 20 Jahren etwas über Emacs wusste und jetzt etwas über VSCode weiß, könnte so etwas sagen wie: „Drücken Sie Strg-P, dann das Ding, um das Formatierungsding zu installieren, dann bearbeiten Sie die Konfigurationsdatei, damit sie das Richtige tut“, und dann könnte ich wieder Strg-S drücken und meine Handlebars, JavaScript und was auch immer sonst noch schön formatiert haben und auch alle lästigen Variablen finden, die ich definiert, aber nie benutzt habe und so weiter.
Näher dran
OK, aber ich habe das hier gemacht:
npm install --global yarn
yarn add prettier
Und jetzt habe ich 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
Das hat einen Teil meines Problems gelöst, so dass ich zumindest prettier von der Kommandozeile ausführen kann. Aber ich bin immer noch bereit, für Hilfe zu bezahlen, um VSCode meine schmutzige Arbeit machen zu lassen. Wenn ich speichere, sollte es eslint (oder rubop oder was auch immer) ausführen und es entweder beheben oder mir sagen, dass es das nicht kann. Ich bin zu alt, um zu glauben, dass mein Editor meinen Code schreiben sollte, aber nicht zu alt, um zu denken, dass er ihn nicht formatieren sollte.
Es gab früher einmal ein Thema, in dem jemand vorschlug, welche VSCode-Plugins er verwendete, was mir ein wenig half, aber ich sehe es jetzt nicht mehr.