Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

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 构建,负责底层消息的读写处理。

  • 使用 PipeReader 和 PipeWriter 进行高性能流式 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 生命周期(initialize、shutdown、exit)
  • 支持客户端请求取消($/cancelRequest),为每个请求提供独立的 CancellationToken
  • 支持以委托注册方法处理器,自动将 params 绑定到参数(按位置或按名称)
  • 提供类型安全的外发请求 / 通知(SendRequestAsync、SendNotification 等)
  • 内置工作区进度上报(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