跳到正文
本頁目錄

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 則不等待應答。

這些請求包括:

  • PrintInfo
  • PrintSuccess
  • PrintWarning
  • PrintError
  • ReportProgress

這些方法的定義請參見 JSON-RPC 規範。