1 | ;
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | const languageclient_1 = require("../languageclient");
|
4 | /** Adapts Atom's user notifications to those of the language server protocol. */
|
5 | class LoggingConsoleAdapter {
|
6 | /**
|
7 | * Create a new {LoggingConsoleAdapter} that will listen for log messages via the supplied {LanguageClientConnection}.
|
8 | *
|
9 | * @param connection A {LanguageClientConnection} to the language server that will provide log messages.
|
10 | */
|
11 | constructor(connection) {
|
12 | this._consoles = new Set();
|
13 | connection.onLogMessage(this.logMessage.bind(this));
|
14 | }
|
15 | /** Dispose this adapter ensuring any resources are freed and events unhooked. */
|
16 | dispose() {
|
17 | this.detachAll();
|
18 | }
|
19 | /**
|
20 | * Public: Attach this {LoggingConsoleAdapter} to a given {atomIde.ConsoleApi}.
|
21 | *
|
22 | * @param console A {atomIde.ConsoleApi} that wants to receive messages.
|
23 | */
|
24 | attach(console) {
|
25 | this._consoles.add(console);
|
26 | }
|
27 | /** Public: Remove all {atomIde.ConsoleApi}'s attached to this adapter. */
|
28 | detachAll() {
|
29 | this._consoles.clear();
|
30 | }
|
31 | /**
|
32 | * Log a message using the Atom IDE UI Console API.
|
33 | *
|
34 | * @param params The {LogMessageParams} received from the language server indicating the details of the message to be loggedd.
|
35 | */
|
36 | logMessage(params) {
|
37 | switch (params.type) {
|
38 | case languageclient_1.MessageType.Error: {
|
39 | this._consoles.forEach((c) => c.error(params.message));
|
40 | return;
|
41 | }
|
42 | case languageclient_1.MessageType.Warning: {
|
43 | this._consoles.forEach((c) => c.warn(params.message));
|
44 | return;
|
45 | }
|
46 | case languageclient_1.MessageType.Info: {
|
47 | this._consoles.forEach((c) => c.info(params.message));
|
48 | return;
|
49 | }
|
50 | case languageclient_1.MessageType.Log: {
|
51 | this._consoles.forEach((c) => c.log(params.message));
|
52 | return;
|
53 | }
|
54 | }
|
55 | }
|
56 | }
|
57 | exports.default = LoggingConsoleAdapter;
|
58 | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2luZy1jb25zb2xlLWFkYXB0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvYWRhcHRlcnMvbG9nZ2luZy1jb25zb2xlLWFkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDQSxzREFBMkY7QUFFM0YsaUZBQWlGO0FBQ2pGLE1BQXFCLHFCQUFxQjtJQUd4Qzs7OztPQUlHO0lBQ0gsWUFBWSxVQUFvQztRQVB4QyxjQUFTLEdBQTRCLElBQUksR0FBRyxFQUFFLENBQUE7UUFRcEQsVUFBVSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ3JELENBQUM7SUFFRCxpRkFBaUY7SUFDMUUsT0FBTztRQUNaLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQTtJQUNsQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxPQUEyQjtRQUN2QyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUM3QixDQUFDO0lBRUQsMEVBQTBFO0lBQ25FLFNBQVM7UUFDZCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFBO0lBQ3hCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssVUFBVSxDQUFDLE1BQXdCO1FBQ3pDLFFBQVEsTUFBTSxDQUFDLElBQUksRUFBRTtZQUNuQixLQUFLLDRCQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFBO2dCQUN0RCxPQUFNO2FBQ1A7WUFDRCxLQUFLLDRCQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFBO2dCQUNyRCxPQUFNO2FBQ1A7WUFDRCxLQUFLLDRCQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFBO2dCQUNyRCxPQUFNO2FBQ1A7WUFDRCxLQUFLLDRCQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFBO2dCQUNwRCxPQUFNO2FBQ1A7U0FDRjtJQUNILENBQUM7Q0FDRjtBQXhERCx3Q0F3REMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSAqIGFzIGF0b21JZGUgZnJvbSBcImF0b20taWRlLWJhc2VcIlxuaW1wb3J0IHsgTGFuZ3VhZ2VDbGllbnRDb25uZWN0aW9uLCBMb2dNZXNzYWdlUGFyYW1zLCBNZXNzYWdlVHlwZSB9IGZyb20gXCIuLi9sYW5ndWFnZWNsaWVudFwiXG5cbi8qKiBBZGFwdHMgQXRvbSdzIHVzZXIgbm90aWZpY2F0aW9ucyB0byB0aG9zZSBvZiB0aGUgbGFuZ3VhZ2Ugc2VydmVyIHByb3RvY29sLiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTG9nZ2luZ0NvbnNvbGVBZGFwdGVyIHtcbiAgcHJpdmF0ZSBfY29uc29sZXM6IFNldDxhdG9tSWRlLkNvbnNvbGVBcGk+ID0gbmV3IFNldCgpXG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyB7TG9nZ2luZ0NvbnNvbGVBZGFwdGVyfSB0aGF0IHdpbGwgbGlzdGVuIGZvciBsb2cgbWVzc2FnZXMgdmlhIHRoZSBzdXBwbGllZCB7TGFuZ3VhZ2VDbGllbnRDb25uZWN0aW9ufS5cbiAgICpcbiAgICogQHBhcmFtIGNvbm5lY3Rpb24gQSB7TGFuZ3VhZ2VDbGllbnRDb25uZWN0aW9ufSB0byB0aGUgbGFuZ3VhZ2Ugc2VydmVyIHRoYXQgd2lsbCBwcm92aWRlIGxvZyBtZXNzYWdlcy5cbiAgICovXG4gIGNvbnN0cnVjdG9yKGNvbm5lY3Rpb246IExhbmd1YWdlQ2xpZW50Q29ubmVjdGlvbikge1xuICAgIGNvbm5lY3Rpb24ub25Mb2dNZXNzYWdlKHRoaXMubG9nTWVzc2FnZS5iaW5kKHRoaXMpKVxuICB9XG5cbiAgLyoqIERpc3Bvc2UgdGhpcyBhZGFwdGVyIGVuc3VyaW5nIGFueSByZXNvdXJjZXMgYXJlIGZyZWVkIGFuZCBldmVudHMgdW5ob29rZWQuICovXG4gIHB1YmxpYyBkaXNwb3NlKCk6IHZvaWQge1xuICAgIHRoaXMuZGV0YWNoQWxsKClcbiAgfVxuXG4gIC8qKlxuICAgKiBQdWJsaWM6IEF0dGFjaCB0aGlzIHtMb2dnaW5nQ29uc29sZUFkYXB0ZXJ9IHRvIGEgZ2l2ZW4ge2F0b21JZGUuQ29uc29sZUFwaX0uXG4gICAqXG4gICAqIEBwYXJhbSBjb25zb2xlIEEge2F0b21JZGUuQ29uc29sZUFwaX0gdGhhdCB3YW50cyB0byByZWNlaXZlIG1lc3NhZ2VzLlxuICAgKi9cbiAgcHVibGljIGF0dGFjaChjb25zb2xlOiBhdG9tSWRlLkNvbnNvbGVBcGkpOiB2b2lkIHtcbiAgICB0aGlzLl9jb25zb2xlcy5hZGQoY29uc29sZSlcbiAgfVxuXG4gIC8qKiBQdWJsaWM6IFJlbW92ZSBhbGwge2F0b21JZGUuQ29uc29sZUFwaX0ncyBhdHRhY2hlZCB0byB0aGlzIGFkYXB0ZXIuICovXG4gIHB1YmxpYyBkZXRhY2hBbGwoKTogdm9pZCB7XG4gICAgdGhpcy5fY29uc29sZXMuY2xlYXIoKVxuICB9XG5cbiAgLyoqXG4gICAqIExvZyBhIG1lc3NhZ2UgdXNpbmcgdGhlIEF0b20gSURFIFVJIENvbnNvbGUgQVBJLlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zIFRoZSB7TG9nTWVzc2FnZVBhcmFtc30gcmVjZWl2ZWQgZnJvbSB0aGUgbGFuZ3VhZ2Ugc2VydmVyIGluZGljYXRpbmcgdGhlIGRldGFpbHMgb2YgdGhlIG1lc3NhZ2UgdG8gYmUgbG9nZ2VkZC5cbiAgICovXG4gIHByaXZhdGUgbG9nTWVzc2FnZShwYXJhbXM6IExvZ01lc3NhZ2VQYXJhbXMpOiB2b2lkIHtcbiAgICBzd2l0Y2ggKHBhcmFtcy50eXBlKSB7XG4gICAgICBjYXNlIE1lc3NhZ2VUeXBlLkVycm9yOiB7XG4gICAgICAgIHRoaXMuX2NvbnNvbGVzLmZvckVhY2goKGMpID0+IGMuZXJyb3IocGFyYW1zLm1lc3NhZ2UpKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGNhc2UgTWVzc2FnZVR5cGUuV2FybmluZzoge1xuICAgICAgICB0aGlzLl9jb25zb2xlcy5mb3JFYWNoKChjKSA9PiBjLndhcm4ocGFyYW1zLm1lc3NhZ2UpKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGNhc2UgTWVzc2FnZVR5cGUuSW5mbzoge1xuICAgICAgICB0aGlzLl9jb25zb2xlcy5mb3JFYWNoKChjKSA9PiBjLmluZm8ocGFyYW1zLm1lc3NhZ2UpKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGNhc2UgTWVzc2FnZVR5cGUuTG9nOiB7XG4gICAgICAgIHRoaXMuX2NvbnNvbGVzLmZvckVhY2goKGMpID0+IGMubG9nKHBhcmFtcy5tZXNzYWdlKSlcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0= |
\ | No newline at end of file |