js2-modeの構文チェッカーをオフにしたり、切り替えたりできますか?


13

のデフォルト設定がありjs2-modeます。これにより、構文の強調表示とチェックが行われますが、現在、異なるスタイルセットのプロジェクトに取り組んでいます(具体的には、この新しいプロジェクトではセミコロンを使用していません)。

これにより、コードのすべての単一行にjs2-mode警告が表示されます。missing ; after statement

構文チェックを無効にする方法はありますjs2-modeか?

または、さらに良いことに、異なる構文チェッカーを使用する方法はありますか?

.jsファイルのFlycheckモードをインストールして実行していますが、構文チェッカーが有効になっていません(つまり、すべてのチェッカーがnilおよびに設定されていますnot found)。これらの1つを有効にし、組み込みのjs21つを無効にする方法を知ることは素晴らしいことです。

私はセミコロン挿入に関する見解が異なることを知っていますが、このプロジェクト"standard style"はFlycheckに構文チェッカーがあるものに従い、チェッカーを切り替えることができるかどうかに興味があります。

回答:


17

警告は、JavaScript用の独自のパーサーを実装し、いくつかの問題について警告するJS2モードから来ます。他の回答で述べたように、あなたが観察した特定の警告は、警告をオフにするようにinitファイルまたは経由でjs2-strict-missing-semi-warning設定できるユーザーオプションによって制御さnilれますM-x customize

JS2モードとFlycheckを併用する場合、変数js2-mode-show-parse-errorsを設定してJS2モードのすべての警告をオフjs2-mode-show-strict-warningsnilし、ほとんどすべての場合にFlycheckの構文チェックが優れたエラー報告を提供することをお勧めします。


javascript-standard現在のバッファの構文チェッカーを選択するには、を使用しますC-c ! s javascript-standard。プロジェクト.dir-locals.elの最上位ディレクトリに次の内容のファイルを作成することにより、特定のプロジェクトに対してこの構文チェッカーを永続的に有効にできます。

((js2-mode
  (flycheck-checker . javascript-standard)))

Emacs は、ディレクトリの下のファイルにアクセスするとこれらのディレクトリ変数を自動的にロードするため、プロジェクトの標準構文チェッカーが自動的に選択されます。


何らかの理由で、js2-mode-show-parse-errorsがに設定されている場合nilでも、エラー:C-h v js2-mode-show-parse-errorsリターンjs2-mode-show-parse-errors is a variable defined in js2-mode.el'. Its value is nil. Original value was t が表示されますが、下線が表示されます。これがなぜなのか知っていますか?
Startec

ああ、あなたの答えには小さなタイプがありますjs2-mode-show-strict-warnings nil。これを編集として追加しました。
Startec

@Startecああ、私の間違いを修正してくれてありがとう。
lunaryorn

2

この特定の問題について警告しないようにjs2-strict-missing-semi-warning変数をカスタマイズするnilか、のjs-mode代わりに使用できますjs2-mode

2つのオプションのうち、スタイルガイドを変更することをお勧めします。JSでのセミコロンの自動挿入はトラップです。それでも、私はそれが常に可能であるとは限らないことを認識しています。


4
-1:最後の段落を削除してください、それはトピック外です。Javascriptスタイルの議論は、このサイト用ではありません。
lunaryorn 16

2
いいえ、結構です。私は、Javascriptで20年の経験を持つエンジニアとしてこのアドバイスを提供しています。確かに地域の慣習に合わせてemacsを適応させることは可能です(そしてemacsが得意なことです)が、いくつかのことは価値があるよりも厄介であり、自動セミコロン挿入がそのリストの先頭にあります。それはさておき、js2モードの動作を微調整するのが最も簡単なため、最良の選択肢です。私は実際にflymakeについて何も知らないので、そこであなたを助けることはできません。
db48x
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.