如何使用TypeScript编译器API用语言服务插件实例化languageService?我原以为createLanguageService会做到这一点,但它似乎并没有加载插件。
这个包在某个地方的tsserver里了吗?理想情况下,我想运行所有的过程中的一切。是否需要实例化某种ServerHost来让languageService访问require() node_modules?
我的动机是:我想用编程的方式将插件快速修复应用到我正在构建的CLI工具的代码库中。
发布于 2018-06-07 03:59:32
我想我想明白了。import * as ts from 'typescript/lib/tsserverlibrary'; (在编写插件时使用的相同导入)并创建一个new ts.server.ProjectService。然后通过projectService.openClientFile打开一个源文件,这将导致服务自动获取您的tsconfig,并创建一个新的ConfiguredProject,您可以通过各种方法检索它。然后是configuredProject.getLanguageService()。
您必须设置serverHost.require,否则服务无法加载插件,它们将被跳过。我从src/server/server.ts复制了TS的内部实现
我遗漏了很多杂乱无章的细节,但这些都是步骤。Intellisense告诉您其他您需要做的事情。
https://stackoverflow.com/questions/50730406
复制相似问题