我喜欢使用 use-package
代替Emacs . 除其他外,我在配置文件中有以下内容:
(use-package proced
:ensure t
:config
(proced-toggle-auto-update 1)
(general-define-key
:keymaps 'proced-mode-map
"j" 'next-line
"k" 'previous-line))
Flycheck警告函数 proced-toggle-auto-update
可能在运行时可用 . 但是, use-package
的文档声明 config:
之后的所有表单都被评估 after 已加载包 . 这次飞行检查警告是假阳性吗?
2 回答
flycheck
emacs-lisp-checker
正在使用字节编译器来找出代码可能出现的问题,并且需要帮助找出use-package
的东西 . 对于我的use-package
初始化文件,我做了两件事:首先,我为我的init文件定义一个目录局部变量(在
.dir-locals.el
中):设置
inherit
后,flycheck
使用的load-path
取自当前load-path
,因此可以找到各种lisp包中的所有文件 .其次,我在init中的每个单独文件中都有
(require 'use-package)
. 这似乎是多余的,但它允许flycheck单独检查文件,因为它可以扩展use-package
宏以便更好地分析 .这个设置似乎避免了大部分来自
use-package
的警告,除了真正重要的警告 . 但是,它没有针对您的特定配置进行测试 .如果您知道该功能将在运行时可用,例如 . 包将被加载(因为该功能不是自动加载的),那么你可以通过声明函数让编译器知道,例如 .
我不使用
use-package
,但可能是因为你引用的文档已经加载了包,所以是的,这将是一个误报 .在其他情况下,你也可以显式地自动加载一个函数并让编译器知道,
这些操作假设库"proced"在您的加载路径上,例如 .
(featurep 'proced)
是非零的 .