Elisp严格模式

Elisp strict mode

我是 Emacs Lisp 的新手,感觉它缺乏严格性(和命名空间,等等...)。

为了更舒服地使用它,我需要一个 如果我使用 deprecatedobsolete 函数或变量(甚至更好 - 隐藏它们),使 interpreter/byte 编译器抱怨很多的方法。为什么这看起来不那么简单并且删除相应的 .el 包将不起作用是显而易见的 - 某些遗留代码可能需要它们。

另外,如果可以的话,关闭所有别名就好了。在我看来,它们只是为了向后兼容,我不需要。因为全局设置这个会毁掉一些东西,我希望JavaScript中有类似use strict的东西,可以应用到inner body上,这样效果就很整齐了。

不要误会我的意思,我认为 Elisp 的全局命名空间就像一个转储,如果它可以更干净一些,为什么不呢?

一句话概括:如何使 Elisp 全局命名空间过时且不被弃用,并尽可能精简?

我不知道 Emacs 中内置了 Emacs Lisp linter。

我为自己的代码做了两件事,以确保一定程度的清洁。

首先,我确保字节编译代码不会给出任何错误或警告。字节编译器会做一定数量的检查。

其次,我启用词法绑定。这让字节编译器检测到更多可能的警告。

这大概是您使用内置工具所能做的最好的事情了。如果你想走得更远,你可以编写自己的 tree walker 来执行你喜欢的任何其他测试。