我正在编写vscode扩展,我想根据用户配置动态注册语言。然后,扩展将实例化LSP客户端,以与来自用户配置的服务器进行对话。
这将允许编写自定义语言和玩具语言的人获得“免费”扩展,并试验编辑器特性,而不必实现和发布其中的vscode部分。
我在vscode源代码中做了一些研究,并找到了一个看似有用的接口:"ILanguageService",但我不确定这是否可以从扩展API中访问。
知道我该怎么做吗?有可能吗?
发布于 2022-09-23 20:12:48
好吧,我的问题源于对LSP客户工作方式的误解。它们不一定需要与一种语言联系在一起,并且可以在全球模式的基础上工作,比如
const filter: DocumentFilter = {
scheme: 'file',
pattern: `**/*.${myLanguage.extension}`
};
const clientOptions: LanguageClientOptions = {
documentSelector: [filter]
};这似乎足以让vscode理解它应该调用哪个LSP。
https://stackoverflow.com/questions/73830218
复制相似问题