Ejemplo n.º 1
0
 connection.onRequest(vscode_languageserver_protocol_1.InitializeRequest.type, (params) => {
     const processId = params.processId;
     if (Is.number(processId) && exitTimer === void 0) {
         // We received a parent process id. Set up a timer to periodically check
         // if the parent is still alive.
         setInterval(() => {
             try {
                 process.kill(processId, 0);
             }
             catch (ex) {
                 // Parent process doesn't exist anymore. Exit the server.
                 process.exit(shutdownReceived ? 0 : 1);
             }
         }, 3000);
     }
     if (Is.string(params.trace)) {
         tracer.trace = vscode_languageserver_protocol_1.Trace.fromString(params.trace);
     }
     for (let remote of allRemotes) {
         remote.initialize(params.capabilities);
     }
     if (initializeHandler) {
         let result = initializeHandler(params, new vscode_languageserver_protocol_1.CancellationTokenSource().token);
         return asThenable(result).then((value) => {
             if (value instanceof vscode_languageserver_protocol_1.ResponseError) {
                 return value;
             }
             let result = value;
             if (!result) {
                 result = { capabilities: {} };
             }
             let capabilities = result.capabilities;
             if (!capabilities) {
                 capabilities = {};
                 result.capabilities = capabilities;
             }
             if (capabilities.textDocumentSync === void 0 || capabilities.textDocumentSync === null) {
                 capabilities.textDocumentSync = Is.number(protocolConnection.__textDocumentSync) ? protocolConnection.__textDocumentSync : vscode_languageserver_protocol_1.TextDocumentSyncKind.None;
             }
             else if (!Is.number(capabilities.textDocumentSync) && !Is.number(capabilities.textDocumentSync.change)) {
                 capabilities.textDocumentSync.change = Is.number(protocolConnection.__textDocumentSync) ? protocolConnection.__textDocumentSync : vscode_languageserver_protocol_1.TextDocumentSyncKind.None;
             }
             for (let remote of allRemotes) {
                 remote.fillServerCapabilities(capabilities);
             }
             return result;
         });
     }
     else {
         let result = { capabilities: { textDocumentSync: vscode_languageserver_protocol_1.TextDocumentSyncKind.None } };
         for (let remote of allRemotes) {
             remote.fillServerCapabilities(result.capabilities);
         }
         return result;
     }
 });
Ejemplo n.º 2
0
 connection.onNotification(vscode_languageserver_protocol_1.SetTraceNotification.type, (params) => {
     tracer.trace = vscode_languageserver_protocol_1.Trace.fromString(params.value);
 });