Ajuda na configuração de rubocop, eslint, etc. no VS Code e na linha de comando.

O que eu faço é copiar cegamente os fluxos de trabalho de GitHub - discourse/discourse-plugin-skeleton: Template for Discourse plugins e GitHub - discourse/discourse-theme-skeleton: Template for Discourse themes. (Eu tenho que ajustar um pouco o do plugin para o meu plugin de dashboard, que depende do plugin stripe). Acredito que isso seja bom o suficiente para fazer o linting.

O que eu quero, no entanto, é que o vscode faça o linting antes de eu fazer o commit. Já funcionou no passado, mas parou e me sinto como alguém que sabia sobre Emacs 20 anos atrás, que poderia dizer algo como “digite control-p, agora faça a coisa para instalar a coisa de formatação, agora edite o arquivo de configuração para que ele faça a Coisa Certa” e então eu poderia, mais uma vez, digitar control-S e ter meus handlebars, javascript e qualquer outra coisa formatados de forma bonita, e também encontrar todas as variáveis incômodas que defini, mas nunca usei e assim por diante.

Chegando mais perto

OK, mas eu fiz isso:

      npm install --global yarn
      yarn add prettier

E agora eu tenho 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

Isso resolveu parte do meu problema, então pelo menos consigo executar prettier pela linha de comando. Mas ainda estou disposto a pagar por ajuda para fazer o vscode fazer meu trabalho sujo. Quando eu salvar, ele deve executar eslint (ou rubop ou o que for) e corrigi-lo ou me dizer que não pode. Sou velho demais para pensar que meu editor deveria escrever meu código, mas não tão velho a ponto de pensar que ele não deveria formatá-lo.

Costumava haver um tópico onde alguém sugeria quais plugins do vscode estava usando, o que me ajudou um pouco, mas não o vejo agora.

1 curtida