私はFlycheckに警告をフリー変数などに解決するための宣言を含むファイルをロードしようとしていますが、Flycheckは(必要な
、および(my-dcls)
を宣言ファイルの一番下に配置します。
私はOSX上のアプリケーションとしてEmacs 24.4を使用しています。また、Flycheck 20160622を使用しています。 ESC-x list-packages、U
を使用して、私のパッケージをすべて最新バージョンに更新しました。
これまで私はそれを学びました:
-
Flycheckは、デフォルトのポリシーでEmacsの load-path
を使用しません。
Emacsのinitファイル内の -
(setq-default flycheck-emacs-lisp-load-path '継承)
は、FlycheckにEmacsの load-path
。
-
すべてのフライチェック変数はバッファローカルなので、(setq flycheck-emacs-lisp-load-path ..)
カスタムファイルへの特定のロードパスを作成するには(setq-default flycheck-emacs-lisp-load-path(list "dir1" "dir2")
/p>
したがって、これらすべてのガイドラインに従えば、
-
私のinitファイルの1行目にあるsetq-default flycheck-emacs-lisp-load-pathを継承しましたが、成功しませんでした。ミニバッファで flycheck-emacs-lisp-load-path
を評価すると、私が訪れるすべてのコードバッファの inherit
の値を見ることができます。 >
-
私のinitファイルの1行目にあるsetq-default flycheck-emacs-lisp-load-path(リスト "dir1" "dir2")を試しましたが、成功しませんでした。 minibufferで flycheck-emacs-lisp-load-path
を評価すると、私が訪れるすべてのコードバッファに( "dir1" "dir2")
の値が見えます。
-
これらの両方の場合、(member 'my-dcls features)
は宣言ファイル機能がロードされたことを示します。つまり、Emacs(必ずしもFlycheckではない)ファイルは正常に(したがって存在しているので)成功します。
それでも、Flycheckは、宣言ファイルで(defvar my-variable)
ステートメントで定義されている変数に、フリー変数の警告を出力します。宣言ファイルから同じコードの defvar
文を削除して現在のコードバッファに書き込むと、Flycheckは不平を言います。
私は次に何をすべきかを知ることができません。すべてが順調に見えますが、結果はそうではないと言います。
この関連記事も参照してください。こここれはほぼ重複しています(但し、提案された回答は私のマシン構成上私にとっては機能しません)。
Flycheckに干渉しないように、私の全体 .emacs
initファイルがあります。
(setq-default flycheck-emacs-lisp-load-path
(list "/Users/me/Dropbox/emacs/"))
(when (>= emacs-major-version 24)
(require 'package)
(add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/") t)
(package-initialize)
(use-package flycheck
:ensure t
:defer t))
(require 'flycheck)
Emacsの起動後、(my-dcls)
を含むLispソースファイルを読み込みます。 my-dcls.el
は >/emacs-lisp-load-path
変数、/Users/me/Dropbox/emacs/
のいずれかを選択します。
ソースファイルバッファーで、 flycheck-emacs-lisp-load-path
を評価し、そこにロードしたディレクトリを見ることができます。 Flycheckにロードパスをピックアップさせるためのデバッグのアイディアは大歓迎です。
私はフライチェックのソースを見ましたが、効果的なデバッグ(私はまだそれについてのスキルを持っているかどうかはわかりません)のために私を超えているようでした。ありがとう。