vscodeとコマンドラインでrubocop、eslintなどを設定するヘルプ

リンティングテストに失敗するコードを提出するのにうんざりしています。GitHubからrubocopyarn eslint(など)のコマンドをコピーしてターミナルに貼り付けて動作させることができる場合もありますが、今はそれも機能していません。

次のようなエラーが発生しています。

 No parser could be inferred for file: ...

特定の条件下で、一部のファイルに対してVSCodeは保存時に適切にフォーマットし、構文エラーがあることを教えてくれますが、今はそれも機能していません。

何をしてほしいですか?

Zoom(または他のもの)の画面共有をして、以下の点を説明してほしいです。

  • VSCodeが保存時に実行すべきすべての処理を実行し、フォーマットを修正するか、何か問題があることを教えてくれること。
  • コマンドラインからyarn eslintや、リンティングテストに含まれるその他のコマンドを実行できること。

いつまでに必要ですか?

気が狂う前に。

このタスクにいくらまで支払えますか?(米ドル)

私はPop!_OSを使用しています。これは基本的にUbuntuです。

この問題を解決できると確信しているなら、あなたの標準的な時間単価で1時間分の支払いをする準備ができています。10分で完了できるなら、1時間分の料金を支払っても構いません。誰もがハッピーです。

「いいね!」 2

ジェイ、

イライラしますよね?

このような場合、私は以下のようにします。

  • 人気のあるプラグインのCIワークフローを調べる
  • プラグインのルートにある関連設定を確認する

私のChatbotのリンティングテストがどうなっているかはこちらで確認できます。

eslintとprettierはプラグインディレクトリから実行できると思いますが、rubocopはdiscourseディレクトリから実行できます。

これで問題が解決した場合は、お気軽にこれを#devトピックに変換してください。どうぞよろしくお願いいたします :slight_smile:

「いいね!」 1

私のやっていることは、GitHub - discourse/discourse-plugin-skeleton: Template for Discourse pluginsGitHub - discourse/discourse-theme-skeleton: Template for Discourse themes からワークフローを盲目的にコピーすることです。(ダッシュボードプラグインがストライププラグインに依存しているため、プラグインのものを少し調整する必要があります)。これで、リンティングは十分に行えるはずだと信じています。

しかし、私が望むのは、コミットする前にVSCodeでリンティングを行うことです。以前は機能していましたが、停止してしまい、Emacsを20年前に知っていたようなVSCodeの知識がある人が、「Control-Pと入力し、フォーマットツールをインストールする操作を行い、設定ファイルを編集して正しいことをするようにする」といったことを言えるのではないかと思っています。そうすれば、Control-Sと入力するだけで、Handlebars、JavaScript、その他のものがきれいにフォーマットされ、定義したものの使っていない変数などもすべて見つけられるようになります。

近づいてきた

さて、これを実行しました。

      npm install --global yarn
      yarn add prettier

そして、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

これで問題の一部は解決したので、少なくともコマンドラインからprettierを実行できるようになりました。しかし、VSCodeに私の面倒な作業をしてもらうために、まだお金を払う価値はあると思っています。保存時に、eslint(またはrubopなど)を実行し、修正するか、修正できないことを教えてほしいです。エディタにコードを書かせるほどではないと思いますが、フォーマットさせないほどではないと思っています。

以前、誰かが使用しているVSCodeプラグインを提案していたトピックがあり、それが多少役立ちましたが、今は見当たりません。

「いいね!」 1

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