我已經實現了一個提供一些linting的語言服務器。 linter檢查所需的屬性併發出「缺失的屬性」錯誤。我想爲這些錯誤提供相應的「插入缺失屬性」快速修復。如何通過語言服務器實現quickfix
我覺得LSP協議面積一般意味着是這樣的:
這樣,服務器可以做一個「丟失的財產」的診斷標記返回一個「插入缺失屬性」命令。
但是,服務器如何實現'insert missing property'命令本身?
翻看lsp規範,我找不到任何讓服務器註冊命令的東西。
我沒有找到有關客戶端上這裏登記命令vscode API的一些信息:https://code.visualstudio.com/docs/extensionAPI/vscode-api
所以我想我可以註冊並執行「插入缺失的屬性」的客戶端,但...
客戶端只是將大部分工作委託給服務器的「愚蠢」包裝器。因此,它並不真正理解文檔結構,也不是一個非常好的地方來實現需要理解該結構的文檔轉換。
看來我最好的選擇是向我的語言服務器添加一些'自定義'協議,這樣我就可以在客戶端實現'插入缺少屬性'命令,但委託計算quickfix編輯的難題回到服務器。
或...有沒有更好的方法?