UNPKG

atom-languageclient

Version:
58 lines 6.74 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const languageclient_1 = require("../languageclient"); /** Adapts Atom's user notifications to those of the language server protocol. */ class LoggingConsoleAdapter { /** * Create a new {LoggingConsoleAdapter} that will listen for log messages via the supplied {LanguageClientConnection}. * * @param connection A {LanguageClientConnection} to the language server that will provide log messages. */ constructor(connection) { this._consoles = new Set(); connection.onLogMessage(this.logMessage.bind(this)); } /** Dispose this adapter ensuring any resources are freed and events unhooked. */ dispose() { this.detachAll(); } /** * Public: Attach this {LoggingConsoleAdapter} to a given {atomIde.ConsoleApi}. * * @param console A {atomIde.ConsoleApi} that wants to receive messages. */ attach(console) { this._consoles.add(console); } /** Public: Remove all {atomIde.ConsoleApi}'s attached to this adapter. */ detachAll() { this._consoles.clear(); } /** * Log a message using the Atom IDE UI Console API. * * @param params The {LogMessageParams} received from the language server indicating the details of the message to be loggedd. */ logMessage(params) { switch (params.type) { case languageclient_1.MessageType.Error: { this._consoles.forEach((c) => c.error(params.message)); return; } case languageclient_1.MessageType.Warning: { this._consoles.forEach((c) => c.warn(params.message)); return; } case languageclient_1.MessageType.Info: { this._consoles.forEach((c) => c.info(params.message)); return; } case languageclient_1.MessageType.Log: { this._consoles.forEach((c) => c.log(params.message)); return; } } } } exports.default = LoggingConsoleAdapter; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2luZy1jb25zb2xlLWFkYXB0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvYWRhcHRlcnMvbG9nZ2luZy1jb25zb2xlLWFkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDQSxzREFBMkY7QUFFM0YsaUZBQWlGO0FBQ2pGLE1BQXFCLHFCQUFxQjtJQUd4Qzs7OztPQUlHO0lBQ0gsWUFBWSxVQUFvQztRQVB4QyxjQUFTLEdBQTRCLElBQUksR0FBRyxFQUFFLENBQUE7UUFRcEQsVUFBVSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ3JELENBQUM7SUFFRCxpRkFBaUY7SUFDMUUsT0FBTztRQUNaLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQTtJQUNsQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxPQUEyQjtRQUN2QyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUM3QixDQUFDO0lBRUQsMEVBQTBFO0lBQ25FLFNBQVM7UUFDZCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFBO0lBQ3hCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssVUFBVSxDQUFDLE1BQXdCO1FBQ3pDLFFBQVEsTUFBTSxDQUFDLElBQUksRUFBRTtZQUNuQixLQUFLLDRCQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFBO2dCQUN0RCxPQUFNO2FBQ1A7WUFDRCxLQUFLLDRCQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFBO2dCQUNyRCxPQUFNO2FBQ1A7WUFDRCxLQUFLLDRCQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFBO2dCQUNyRCxPQUFNO2FBQ1A7WUFDRCxLQUFLLDRCQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFBO2dCQUNwRCxPQUFNO2FBQ1A7U0FDRjtJQUNILENBQUM7Q0FDRjtBQXhERCx3Q0F3REMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSAqIGFzIGF0b21JZGUgZnJvbSBcImF0b20taWRlLWJhc2VcIlxuaW1wb3J0IHsgTGFuZ3VhZ2VDbGllbnRDb25uZWN0aW9uLCBMb2dNZXNzYWdlUGFyYW1zLCBNZXNzYWdlVHlwZSB9IGZyb20gXCIuLi9sYW5ndWFnZWNsaWVudFwiXG5cbi8qKiBBZGFwdHMgQXRvbSdzIHVzZXIgbm90aWZpY2F0aW9ucyB0byB0aG9zZSBvZiB0aGUgbGFuZ3VhZ2Ugc2VydmVyIHByb3RvY29sLiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTG9nZ2luZ0NvbnNvbGVBZGFwdGVyIHtcbiAgcHJpdmF0ZSBfY29uc29sZXM6IFNldDxhdG9tSWRlLkNvbnNvbGVBcGk+ID0gbmV3IFNldCgpXG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyB7TG9nZ2luZ0NvbnNvbGVBZGFwdGVyfSB0aGF0IHdpbGwgbGlzdGVuIGZvciBsb2cgbWVzc2FnZXMgdmlhIHRoZSBzdXBwbGllZCB7TGFuZ3VhZ2VDbGllbnRDb25uZWN0aW9ufS5cbiAgICpcbiAgICogQHBhcmFtIGNvbm5lY3Rpb24gQSB7TGFuZ3VhZ2VDbGllbnRDb25uZWN0aW9ufSB0byB0aGUgbGFuZ3VhZ2Ugc2VydmVyIHRoYXQgd2lsbCBwcm92aWRlIGxvZyBtZXNzYWdlcy5cbiAgICovXG4gIGNvbnN0cnVjdG9yKGNvbm5lY3Rpb246IExhbmd1YWdlQ2xpZW50Q29ubmVjdGlvbikge1xuICAgIGNvbm5lY3Rpb24ub25Mb2dNZXNzYWdlKHRoaXMubG9nTWVzc2FnZS5iaW5kKHRoaXMpKVxuICB9XG5cbiAgLyoqIERpc3Bvc2UgdGhpcyBhZGFwdGVyIGVuc3VyaW5nIGFueSByZXNvdXJjZXMgYXJlIGZyZWVkIGFuZCBldmVudHMgdW5ob29rZWQuICovXG4gIHB1YmxpYyBkaXNwb3NlKCk6IHZvaWQge1xuICAgIHRoaXMuZGV0YWNoQWxsKClcbiAgfVxuXG4gIC8qKlxuICAgKiBQdWJsaWM6IEF0dGFjaCB0aGlzIHtMb2dnaW5nQ29uc29sZUFkYXB0ZXJ9IHRvIGEgZ2l2ZW4ge2F0b21JZGUuQ29uc29sZUFwaX0uXG4gICAqXG4gICAqIEBwYXJhbSBjb25zb2xlIEEge2F0b21JZGUuQ29uc29sZUFwaX0gdGhhdCB3YW50cyB0byByZWNlaXZlIG1lc3NhZ2VzLlxuICAgKi9cbiAgcHVibGljIGF0dGFjaChjb25zb2xlOiBhdG9tSWRlLkNvbnNvbGVBcGkpOiB2b2lkIHtcbiAgICB0aGlzLl9jb25zb2xlcy5hZGQoY29uc29sZSlcbiAgfVxuXG4gIC8qKiBQdWJsaWM6IFJlbW92ZSBhbGwge2F0b21JZGUuQ29uc29sZUFwaX0ncyBhdHRhY2hlZCB0byB0aGlzIGFkYXB0ZXIuICovXG4gIHB1YmxpYyBkZXRhY2hBbGwoKTogdm9pZCB7XG4gICAgdGhpcy5fY29uc29sZXMuY2xlYXIoKVxuICB9XG5cbiAgLyoqXG4gICAqIExvZyBhIG1lc3NhZ2UgdXNpbmcgdGhlIEF0b20gSURFIFVJIENvbnNvbGUgQVBJLlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zIFRoZSB7TG9nTWVzc2FnZVBhcmFtc30gcmVjZWl2ZWQgZnJvbSB0aGUgbGFuZ3VhZ2Ugc2VydmVyIGluZGljYXRpbmcgdGhlIGRldGFpbHMgb2YgdGhlIG1lc3NhZ2UgdG8gYmUgbG9nZ2VkZC5cbiAgICovXG4gIHByaXZhdGUgbG9nTWVzc2FnZShwYXJhbXM6IExvZ01lc3NhZ2VQYXJhbXMpOiB2b2lkIHtcbiAgICBzd2l0Y2ggKHBhcmFtcy50eXBlKSB7XG4gICAgICBjYXNlIE1lc3NhZ2VUeXBlLkVycm9yOiB7XG4gICAgICAgIHRoaXMuX2NvbnNvbGVzLmZvckVhY2goKGMpID0+IGMuZXJyb3IocGFyYW1zLm1lc3NhZ2UpKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGNhc2UgTWVzc2FnZVR5cGUuV2FybmluZzoge1xuICAgICAgICB0aGlzLl9jb25zb2xlcy5mb3JFYWNoKChjKSA9PiBjLndhcm4ocGFyYW1zLm1lc3NhZ2UpKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGNhc2UgTWVzc2FnZVR5cGUuSW5mbzoge1xuICAgICAgICB0aGlzLl9jb25zb2xlcy5mb3JFYWNoKChjKSA9PiBjLmluZm8ocGFyYW1zLm1lc3NhZ2UpKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGNhc2UgTWVzc2FnZVR5cGUuTG9nOiB7XG4gICAgICAgIHRoaXMuX2NvbnNvbGVzLmZvckVhY2goKGMpID0+IGMubG9nKHBhcmFtcy5tZXNzYWdlKSlcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=