Sift:Lisp 生态的统一格式化利器
Sift: LSP, Lint, Format Lisp, Scheme and Emacs Lisp
Sift 是一个专为 Scheme、Emacs Lisp 和 Common Lisp 打造的工具,集成了格式化、代码检查(Lint)和语言服务器(LSP)功能。它最大的亮点在于“无损重写”:无论是注释、空行还是特殊语法,在格式化后都能原样保留,且多次运行结果一致。Sift 严格遵循各方言的独立语法规则,避免了一刀切的妥协方案。无论是学生、Guile 开发者还是 Emacs 插件作者,都能通过这一单一可执行文件获得统一的代码规范体验,支持从本地编辑器到 CI 流水线的无缝集成。
无损重写是整个论证的核心,其余一切皆由此衍生:差异显示的代码块即变更本身,修复仅替换特定范围,规则可在不修改代码的情况下被静默。
- vegnus
作为一个为了好玩而在学习 Scheme 的人,谢谢。
- stackghost
真不错!我很高兴 Lisp 工具链正在进步,不过为了一个工具就得安装 guile,这对大多数 Lisp 使用者来说恐怕是行不通的。
Sly/Slime 的互操作性故事是怎样的?
- sargstuff
什么?!不支持 BLC[0] 和 PIC[1] 格式?:-)(参见 Programs(BLC) 部分[0] 中的格式示例。)
-------
[0] : blc : https://esolangs.org/wiki/Binary_lambda_calculus
[1] : PIC : https://en.wikipedia.org/wiki/PIC_(markup_language)