VSCode 中 Error Lens[1] (可直译为“错误透镜”或“错误放大镜”)插件可以直接在行末展示错误信息,而不需要把鼠标移动到出错的位置,这是个非常有用的功能。
在 How do improve code diagnostics in eglot? : r/emacs[2] 中,提到了 flymake 的一个新选项可以实现类似效果
(setq flymake-show-diagnostics-at-end-of-line t)
需要注意的是这个选项是在 Flymake 1.3.7 中新增的,会在 Emacs 30 中出现,之前版本的 Emacs 需要单独去 elpa[3] 下载。
Eglot 默认就使用 flymake 作为 diagnostic 展示前端,因此不需要额外配置。对于 lsp-bridge 来说,可以借助 flymake-bridge[4] 插件实现:
(require 'flymake-bridge)
(add-hook 'lsp-bridge-mode-hook #'flymake-bridge-setup)
(setq lsp-bridge-diagnostic-enable-overlays nil)
Eglot 效果图
Lsp-bridge 效果图
对于写 Zig 的朋友,可以移步:提升 Zig 编码体验技巧:zls 配置保存时自动检查代码[5]。
[1]
Error Lens: https://marketplace.visualstudio.com/items?itemName=usernamehw.errorlens
[2]
How do improve code diagnostics in eglot? : r/emacs: https://www.reddit.com/r/emacs/comments/17up2hc/how_do_improve_code_diagnostics_in_eglot/
[3]
elpa: https://elpa.gnu.org/packages/flymake.html
[4]
flymake-bridge: https://github.com/liuyinz/flymake-bridge
[5]
提升 Zig 编码体验技巧:zls 配置保存时自动检查代码: https://github.com/zigcc/forum/issues/133