Closed zijianyue closed 5 months ago
我看了看 LSP 的协议 https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#formattingOptions
目前 LSP 协议还不支持指定区域格式化, 因为格式化的调整有可能会调整换行的情况, 目前也没法通过对比LSP Server返回的信息, 在Elisp端精确控制格式化区域。
Range Format 协议已经支持
https://github.com/manateelazycat/lsp-bridge/commit/977d344e2e930f3680990014f84ca94877d6eebf
请更新测试, 有任何问题欢迎反馈。
我用的后端是clangd 18.1,选中区域执行 lsp-bridge-code-format,报错 [LSP-Bridge] Current server not support range format
那就是clangd lsp server不支持局部格式化这个功能
通过lsp-mode的诊断来看clangd应该是有这个功能的
lsp-mode可以支持区域格式化,能否帮忙确认下? 谢谢
我推送了 https://github.com/manateelazycat/lsp-bridge/commit/dd700106341012e9858d9d764b5f49327df91433
这是补丁解决不同LSP Server range format返回格式不一致的问题, pyright/ruff 返回的是 documentRangeFormattingProvider/rangesSupport, clangd 返回的是 documentRangeFormattingProvider
太好了,现在正常工作了
能否提供一个支持选中区域格式化的功能,目前只找到lsp-bridge-code-format,会对整个文件格式化,局部格式化一是更快,二是有时候不想改动其他位置的格式,以免代码差异过多,不便查看修改记录