Elisp严格模式
Elisp strict mode
我是 Emacs Lisp 的新手,感觉它缺乏严格性(和命名空间,等等...)。
为了更舒服地使用它,我需要一个
如果我使用 deprecated
或 obsolete
函数或变量(甚至更好 - 隐藏它们),使 interpreter/byte 编译器抱怨很多的方法。为什么这看起来不那么简单并且删除相应的 .el
包将不起作用是显而易见的 - 某些遗留代码可能需要它们。
另外,如果可以的话,关闭所有别名就好了。在我看来,它们只是为了向后兼容,我不需要。因为全局设置这个会毁掉一些东西,我希望JavaScript中有类似use strict
的东西,可以应用到inner body上,这样效果就很整齐了。
不要误会我的意思,我认为 Elisp 的全局命名空间就像一个转储,如果它可以更干净一些,为什么不呢?
一句话概括:如何使 Elisp 全局命名空间过时且不被弃用,并尽可能精简?
我不知道 Emacs 中内置了 Emacs Lisp linter。
我为自己的代码做了两件事,以确保一定程度的清洁。
首先,我确保字节编译代码不会给出任何错误或警告。字节编译器会做一定数量的检查。
其次,我启用词法绑定。这让字节编译器检测到更多可能的警告。
这大概是您使用内置工具所能做的最好的事情了。如果你想走得更远,你可以编写自己的 tree walker 来执行你喜欢的任何其他测试。
我是 Emacs Lisp 的新手,感觉它缺乏严格性(和命名空间,等等...)。
为了更舒服地使用它,我需要一个
如果我使用 deprecated
或 obsolete
函数或变量(甚至更好 - 隐藏它们),使 interpreter/byte 编译器抱怨很多的方法。为什么这看起来不那么简单并且删除相应的 .el
包将不起作用是显而易见的 - 某些遗留代码可能需要它们。
另外,如果可以的话,关闭所有别名就好了。在我看来,它们只是为了向后兼容,我不需要。因为全局设置这个会毁掉一些东西,我希望JavaScript中有类似use strict
的东西,可以应用到inner body上,这样效果就很整齐了。
不要误会我的意思,我认为 Elisp 的全局命名空间就像一个转储,如果它可以更干净一些,为什么不呢?
一句话概括:如何使 Elisp 全局命名空间过时且不被弃用,并尽可能精简?
我不知道 Emacs 中内置了 Emacs Lisp linter。
我为自己的代码做了两件事,以确保一定程度的清洁。
首先,我确保字节编译代码不会给出任何错误或警告。字节编译器会做一定数量的检查。
其次,我启用词法绑定。这让字节编译器检测到更多可能的警告。
这大概是您使用内置工具所能做的最好的事情了。如果你想走得更远,你可以编写自己的 tree walker 来执行你喜欢的任何其他测试。