0

FlymakeでJSHintを動作させようとしています。

jshint実際にインストールされ/opt/bin、動作します。/opt/binEmacs' にありexec-pathます。

私はEmacsWikiの指示に従っており、これを私のinit.el.

(defun flymake-jshint-init ()
  (let* ((temp-file (flymake-init-create-temp-buffer-copy
                     'flymake-create-temp-inplace))
         (local-file (file-relative-name
                      temp-file
                      (file-name-directory buffer-file-name))))
    (list "jshint" (list local-file))))

(setq flymake-err-line-patterns
      (cons '("^  [[:digit:]]+ \\([[:digit:]]+\\),\\([[:digit:]]+\\): \\(.+\\)$"
              nil 1 2 3)
            flymake-err-line-patterns))

(add-to-list 'flymake-allowed-file-name-masks
             '("\\.js\\'" flymake-jshint-init))

JavaScript ファイルを開くと、モードラインは次のように表示されます。

[(Javascript Flymake* AC)]

*私がC++またはPythonでFlymakeを使用している場合、通常は表示されないため、これは奇妙です。Flymake のドキュメントによると、Flymake*「Flymake は現在実行中です」という意味です。ただし、Flymake はエラーを表示していません。

バッファを確認しました*Messages*が、数行しかリストされていませんFontifying foo.js... (regexps...................)。エラーなし。

他の提案?

4

3 に答える 3

1

M-:を使用して execute を試してみてください(setq flymake-log-level 3)。これにより、flymake はデバッグ情報を に出力し*Messages*ます。

これは、私にとってはうまく機能する jslint で flymake を使用する方法です。そのコードは、何が問題なのかについての手掛かりを与えるかもしれません。

js2-mode外部プロセスの実行に頼ることなく、言語を認識する lint のような警告を提供するも検討してください。

于 2011-10-12T09:42:36.750 に答える
0

jshint-modecurlが機能しませんでした(Linux Mint 14'Nadia'を使用しています) -jshintスクリプトを実行しているNode.jsインスタンスと通信するために実行すると、「flymakeの構成」でエラーが発生していました。これは当惑しました、そして私は.elファイルをいじり回すためのELispに精通していません。

代わりに、jshintが組み込まれているgithubのEmacs flymakeプロジェクトフォークに直接アクセスすることでこれを解決しました(インストールする必要があるため、インストールする必要があります。まだインストールしていない場合は、node.jsnpm -g install jshintをインストールする必要があります)。npmこれは物事を機能させました。

もう1つの注意点:私のLinuxボックスにnodeは、すでに存在する実行可能ファイルがあり、前者をオーバーライドするために/usr/sbin、という名前のシンボリックリンクを作成する必要がありました。Linux Mint用のNode.jsバイナリ(おそらくUbuntuも、私はチェックしていません)が代わりに名前が付けられ、のバイナリ名を想定して記述された多くのスクリプトが失敗するため、これが必要でした。これをテストするには、次のように入力します。既存のバイナリの場合は通常、サイレントにプロンプ​​トに戻りますが、Node.jsの場合は、プロンプトが表示されます(Ctrl-Dで終了できます)。node/usr/local/binnodejsnodenode>

于 2013-03-19T07:52:45.720 に答える
0

jshint-modeというプロジェクトを見つけて試してみました。と呼ばれるバッファが作成され*jshint-mode*、エラーが明らかになりました: JSHint は手ごわいモジュールを見つけられませんでした。

手ごわいライブラリを見つけることができるように設定するためM-x setenvにEmacsを実行しました。もセットしました。NODE_PATHjshintNODE_PATH/etc/profile

于 2011-10-11T22:07:07.860 に答える