通过API实例化带有插件的TypeScript语言服务

通过API实例化带有插件的TypeScript语言服务,typescript,typescript-compiler-api,Typescript,Typescript Compiler Api,如何使用TypeScript编译器API用语言服务插件实例化语言服务?我原以为createLanguageService可以做到这一点,但它似乎没有加载插件 这个包在tsserver的某个地方吗?理想情况下,我希望运行进程中的所有内容。是否有某种类型的ServerHost我需要实例化,以便languageService访问require()node\u模块 我的动机:我想通过编程将插件快速修复程序应用到我正在构建的CLI工具的代码库中。我想我已经找到了答案从“typescript/lib/tss

如何使用TypeScript编译器API用语言服务插件实例化语言服务?我原以为
createLanguageService
可以做到这一点,但它似乎没有加载插件

这个包在tsserver的某个地方吗?理想情况下,我希望运行进程中的所有内容。是否有某种类型的
ServerHost
我需要实例化,以便
languageService
访问
require()
node\u模块


我的动机:我想通过编程将插件快速修复程序应用到我正在构建的CLI工具的代码库中。

我想我已经找到了答案<代码>从“typescript/lib/tsserverlibrary”导入*作为ts(与编写插件时使用的导入相同)并创建一个
新的ts.server.ProjectService
。然后通过
projectService.openClientFile
打开一个源文件,这将使服务自动获取您的tsconfig并创建一个新的
ConfiguredProject
,您可以通过各种方法检索该文件。然后
configuredProject.getLanguageService()

您必须设置
serverHost.require
,否则服务无法加载插件,它们将被跳过。我从中复制了TS的内部实现


我遗漏了很多混乱的细节,但这些是步骤。Intellisense会告诉您需要做的一切。

非常酷,谢谢!您对此有演示repo吗?我正在尝试(但失败)从这里的命令行运行语言服务插件: