Aiuto per configurare rubocop, eslint, ecc. in vscode e nella command line

Sono stufo di inviare codice che non supera i test di linting. A volte, posso copiare e incollare i comandi rubocop o yarn eslint (e così via) da GitHub nel mio terminale e farli funzionare, ma al momento non funziona nemmeno quello.

Ricevo errori come

 Non è stato possibile dedurre alcun parser per il file: ...

Per alcuni file, in alcune condizioni, VS Code riformatta correttamente al salvataggio e mi dice che ho un errore di sintassi, ma al momento non funziona.

Cosa vorresti che fosse fatto?

Vorrei fare una condivisione dello schermo Zoom (o altro) e che tu mi guidassi attraverso le cose in modo che

  • VS Code esegua tutto ciò che dovrebbe quando salva e corregga la formattazione o mi dica che qualcosa è rotto.
  • Io possa eseguire yarn eslint e qualsiasi altra cosa sia presente nei test di linting dalla riga di comando.

Quando ne hai bisogno?

Prima che diventi completamente matto.

Qual è il tuo budget, in USD, che puoi offrire per questo compito?

Sto usando Pop!Os, che è essenzialmente Ubuntu.

Se sei abbastanza sicuro di poter risolvere questo problema, sono disposto a pagare un’ora del tuo tempo alla tua tariffa standard. Se riesci a farlo in dieci minuti, sarò felice di pagare per un’ora. Tutti vincono.

2 Mi Piace

Jay,

frustrante, vero?

Quello che faccio per questo tipo di cose è:

  • esaminare i flussi di lavoro CI per un plugin popolare
  • guardare la configurazione associata nella root del plugin

Puoi vedere cosa fanno i miei test di linting per Chatbot qui:

Credo che tu possa eseguire eslint e prettier dalla directory del plugin, ma rubocop può essere eseguito dalla directory di discourse.

Se questo risolve il tuo problema, sentiti libero di convertirlo in un argomento Dev e sei il benvenuto :slight_smile:

1 Mi Piace

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ù.

1 Mi Piace

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