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