lipd 概覽
lipd 通過標準輸入/輸出(stdio)通信,因此很容易與任意可啟動子進程並重定向流的語言或工具集成。
快速開始
啟動守護進程:
bash
lipd run這會啟動 JSON-RPC 服務器,從 stdin 讀取請求並將響應寫入 stdout,直到 stdin 關閉。每個方法都作用於 lipd 當前工作目錄所在的工作區。
連接方式
協議概覽
- 協議:JSON-RPC 2.0
- 傳輸:標準輸入/輸出(stdio)
- 消息幀:每條消息是 UTF-8 編碼的 JSON 正文,前面帶有
Content-Length: <字节数>頭和一個空行(\r\n\r\n),與 Language Server Protocol 相同
TIP
建議使用你所選語言的 JSON-RPC 庫,以可靠處理消息封裝與解析。
客戶端約定
方法執行期間,lipd 會把 lip 本應輸出的消息(例如進度更新或日誌消息)以 JSON-RPC 請求(而非通知)的形式發給客戶端。客戶端必須以結果 null 應答每個請求:在應答到達之前,lipd 不會繼續執行發出 Print* 請求的方法;對 ReportProgress 則不等待應答。
這些請求包括:
PrintInfoPrintSuccessPrintWarningPrintErrorReportProgress
這些方法的定義請參見 JSON-RPC 規範。