Skip to content

Latest commit

 

History

26 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Shimakaze.LanguageServerProtocol

一个用于构建语言服务器的 SDK,实现了 LSP(语言服务器协议)3.18 版本。

项目结构

Shimakaze.BaseProtocol.Model

基础协议消息模型库,定义了 LSP 通信的基础消息结构。

  • BaseProtocolHeader - 消息头解析,包含 Content-Length 和 Content-Type 等头部信息
  • BaseProtocolMessage - 消息体封装,包含头部和二进制正文数据

Shimakaze.BaseProtocol.Server

基础协议服务器实现,基于 System.IO.Pipelines 构建,负责底层消息的读写处理。

  • 使用 PipeReaderPipeWriter 进行高性能流式 I/O
  • 通过 Channel 实现异步消息队列,支持非阻塞发送
  • 自动处理消息分帧(framing),包括头部解析和正文读取

Shimakaze.JsonRPC.Model

JSON-RPC 2.0 协议数据模型,定义了协议规范中所有核心类型。

  • JsonRpcRequest - 请求对象,支持普通请求和通知(Notification)
  • JsonRpcResponse - 响应对象,支持成功和错误响应
  • JsonRpcError / JsonRpcErrorCode - 错误定义,包含标准错误码
  • JsonRpcParams - 参数封装,支持位置参数和命名参数
  • JsonRpcBatch - 批量请求支持

Shimakaze.JsonRPC.Server

JSON-RPC 服务器实现,提供方法注册和请求分发机制。

  • 支持方法处理器的注册和注销
  • 自动解析 JSON-RPC 消息并分发到对应的处理器
  • 支持批量请求处理
  • 提供 IServiceProvider 依赖注入集成
  • 内置错误处理和异常转换

Shimakaze.LanguageServerProtocol.Model

LSP 协议数据模型,基于 Language Server Protocol 3.18 规范定义的类型系统。

包含以下模块:

  • TextDocument - 文本文档相关类型(打开、关闭、同步等)
  • Completion - 代码补全功能
  • Symbols - 符号定义和引用
  • Diagnostics - 诊断信息
  • Workspace - 工作区管理
  • Window - 窗口相关通知
  • Progress - 进度报告
  • Notebook - Notebook 支持
  • Features - LSP 功能特性定义
  • General - 通用类型(初始化、能力协商等)
  • ClientCapabilities - 客户端能力声明

Shimakaze.LanguageServerProtocol.Server

LSP 服务器实现,基于 JSON-RPC 服务器和基础协议服务器构建,提供语言服务器协议的核心处理能力。

  • 通过 LanguageServer 类作为 JsonRpcServer/BaseProtocolServer 之间的调度器进行集成
  • 处理 LSP 生命周期(initializeshutdownexit
  • 支持客户端请求取消($/cancelRequest),为每个请求提供独立的 CancellationToken
  • 支持以委托注册方法处理器,自动将 params 绑定到参数(按位置或按名称)
  • 提供类型安全的外发请求 / 通知(SendRequestAsyncSendNotification 等)
  • 内置工作区进度上报(WorkDoneProgress$/progress
  • 支持 $/setTrace 追踪级别变更通知

许可证

参见 LICENSE 文件。

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages