in src/extension.ts [276:331]
void callWithTelemetryAndErrorHandling('docker.composelanguageclient.activate', async (context: IActionContext) => {
context.telemetry.properties.isActivationEvent = 'true';
const config = vscode.workspace.getConfiguration('docker');
if (!config.get('enableDockerComposeLanguageService', true)) {
throw new UserCancelledError('languageServiceDisabled');
}
const serverModule = ctx.asAbsolutePath(
path.join(
"dist",
"compose-language-service",
"lib",
"server.js"
)
);
const debugOptions = { execArgv: ["--nolazy", "--inspect=6009"] };
const serverOptions: ServerOptions = {
run: {
module: serverModule,
transport: TransportKind.ipc,
args: ["--node-ipc"]
},
debug: {
module: serverModule,
transport: TransportKind.ipc,
options: debugOptions
}
};
const clientOptions: LanguageClientOptions = {
documentSelector: [{ language: 'dockercompose' }]
};
client = new LanguageClient(
"compose-language-service",
"Docker Compose Language Server",
serverOptions,
clientOptions
);
client.registerProposedFeatures();
client.registerFeature(new DocumentSettingsClientFeature(client));
registerEvent('compose-langserver-event', client.onTelemetry, (context: IActionContext, evtArgs: TelemetryEvent) => {
context.telemetry.properties.langServerEventName = evtArgs.eventName;
context.telemetry.suppressAll = evtArgs.suppressAll;
context.telemetry.suppressIfSuccessful = evtArgs.suppressIfSuccessful;
Object.assign(context.telemetry.measurements, evtArgs.measurements);
Object.assign(context.telemetry.properties, evtArgs.properties);
});
ctx.subscriptions.push(client.start());
});