Создание TypeScript LanguageService с плагинами через API - PullRequest
0 голосов
/ 07 июня 2018

Как я могу использовать API компилятора TypeScript для создания экземпляра languageService с плагинами языковой службы?Я думал, что createLanguageService подойдет, но, похоже, он не загружает плагины.

Это где-нибудь в tsserver?В идеале я хочу запустить все в процессе.Есть ли какой-то тип ServerHost, который мне нужно создать, чтобы дать languageService доступ к require() node_modules?

Моя мотивация: я хочу программно применять быстрые исправления плагинов к базе кода из инструмента CLIЯ строю.

1 Ответ

0 голосов
/ 07 июня 2018

Думаю, я понял это.import * as ts from 'typescript/lib/tsserverlibrary'; (тот же импорт, который используется при разработке плагинов) и создание new ts.server.ProjectService.Затем откройте исходный файл через projectService.openClientFile, после чего служба автоматически подберет ваш tsconfig и создаст новый ConfiguredProject, который вы можете получить различными способами.Тогда configuredProject.getLanguageService().

Вы должны установить serverHost.require, иначе сервис не сможет загрузить плагины, и они будут пропущены.Я скопировал внутреннюю реализацию TS из src / server / server.ts

Я опускаю много грязных деталей, но это шаги.Intellisense говорит вам обо всем, что вам нужно сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...