如何使用TypeScript编译器API通过语言服务插件实例化languageService?我认为createLanguageService
可以解决这个问题,但似乎并没有加载插件。
这是否在某个地方包裹在tsserver中?理想情况下,我想在进程中运行所有内容。是否有某种ServerHost
我需要实例化以languageService
访问require()
node_modules?
我的动机:我想以编程方式从我正在构建的CLI工具中将插件快速修复程序应用于代码库。
答案 0 :(得分:0)
我想我明白了。 import * as ts from 'typescript/lib/tsserverlibrary';
(在创作插件时使用相同的导入)并创建new ts.server.ProjectService
。然后通过projectService.openClientFile
打开源文件,这将使服务自动获取您的tsconfig并创建一个新的ConfiguredProject
,您可以通过各种方法检索它。然后是configuredProject.getLanguageService()
。
您必须设置serverHost.require
,否则服务无法加载插件,并且会跳过它们。我从src/server/server.ts
我遗漏了很多混乱的细节,但这些都是步骤。 Intellisense会告诉您需要做的其他事情。