ILanguageClient 接口
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示连接到基于语言服务器的语言服务器的语言客户端的接口。
public interface class ILanguageClient
public interface ILanguageClient
type ILanguageClient = interface
Public Interface ILanguageClient
注解
的 ILanguageClient 正常激活序列遵循以下模式:
- Visual Studio 调用 OnLoadedAsync()、
- 扩展在从 OnLoadedAsync()返回之前调用 并等待 StartAsyncInvokeAsync<TEventArgs>(AsyncEventHandler<TEventArgs>, Object, TEventArgs) 事件。
- Visual Studio 在从 OnLoadedAsync()返回之前调用 并等待ActivateAsync(CancellationToken)
- 该扩展启动 LSP 服务器,并将 返回 Connection 给 Visual Studio,
- Visual Studio 使用“initialize”和“initialized”LSP 消息开始异步初始化服务器,
- Visual Studio 完成 StartAsync 事件处理,
- 扩展完成 OnLoadedAsync() 执行,
- Visual Studio 在“initialize”和“initialized”LSP 消息 (或OnServerInitializeFailedAsync(ILanguageClientInitializationInfo)方法交换后调用 OnServerInitializedAsync() 方法,以防) 失败。
属性
ConfigurationSections |
获取语言客户端的配置节名称。 如果语言客户端不提供设置,则可能为 null。 |
FilesToWatch |
获取要watch更改的文件名列表。 更改将通过“workspace/didChangeWatchedFiles”消息发送到服务器。 要watch的文件必须位于当前活动工作区下。 文件名可以指定为确切文件的相对路径,也可以指定为遵循 .gitignore see https://www.kernel.org/pub/software/scm/git/docs/gitignore.html 文件中标准的 glob 模式。 |
InitializationOptions |
获取客户端在发送“initialize”消息时要发送的初始化选项对象。 如果客户端不需要自定义初始化选项,则可能为 null。 |
Name |
获取显示给用户) 的语言客户端 (的名称。 |
ShowNotificationOnInitializeFailed |
获取一个值,该值指示在语言服务器初始化失败时是否显示通知气泡。 |
方法
ActivateAsync(CancellationToken) |
Visual Studio 调用此方法以通知扩展应启动 LSP 服务器。 |
OnLoadedAsync() |
Visual Studio 调用此方法以通知扩展已加载语言客户端。 该扩展可以立即启动 LSP 服务器,或等待用户操作启动。 若要启动服务器调用,并在从此方法返回之前等待 InvokeAsync<TEventArgs>(AsyncEventHandler<TEventArgs>, Object, TEventArgs)StartAsync 事件。 |
OnServerInitializedAsync() |
Visual Studio 调用此方法以通知扩展 LSP 服务器已初始化:LSP“initialize”和“initialized”消息已交换。 |
OnServerInitializeFailedAsync(Exception) |
向语言服务器初始化失败的扩展发出信号。 |
OnServerInitializeFailedAsync(ILanguageClientInitializationInfo) |
Visual Studio 调用此方法以通知扩展 LSP 服务器的初始化失败。 |
事件
StartAsync |
异步事件,用于向 Visual Studio 指示应通过调用 ActivateAsync(CancellationToken)来启动服务器。 如果服务器已启动,则将忽略此事件。 |
StopAsync |
异步事件,用于向 Visual Studio 指示应通过发送 LSP“关闭”请求来停止服务器。 如果未启动服务器,则将忽略此事件。 |