From b8594ec3fbaca3a4a65a87eb89d5a7616a9eee5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Pupier?= Date: Thu, 23 Jul 2020 10:41:32 +0200 Subject: [PATCH 1/2] Use an output channel to log error message #326 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Aurélien Pupier --- src/extension.ts | 11 ++++++++++- src/schema-extension-api.ts | 3 ++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/extension.ts b/src/extension.ts index bb396636..9911682a 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -8,7 +8,7 @@ import * as path from 'path'; -import { workspace, ExtensionContext, extensions } from 'vscode'; +import { workspace, ExtensionContext, extensions, OutputChannel, window } from 'vscode'; import { LanguageClient, LanguageClientOptions, ServerOptions, TransportKind, NotificationType } from 'vscode-languageclient'; import { URI } from 'vscode-uri'; import { CUSTOM_SCHEMA_REQUEST, CUSTOM_CONTENT_REQUEST, SchemaExtensionAPI } from './schema-extension-api'; @@ -25,6 +25,8 @@ namespace DynamicCustomSchemaRequestRegistration { export const type: NotificationType<{}, {}> = new NotificationType('yaml/registerCustomSchemaRequest'); } +let outputChannel: OutputChannel; + export function activate(context: ExtensionContext) { // The YAML language server is implemented in node let serverModule = context.asAbsolutePath(path.join('node_modules', 'yaml-language-server', 'out', 'server', 'src', 'server.js')); @@ -131,3 +133,10 @@ function getSchemaAssociation(context: ExtensionContext): ISchemaAssociations { return associations; } + +export function logToExtensionOutputChannel(message: string) { + if(outputChannel === undefined){ + outputChannel = window.createOutputChannel('VS Code Yaml extension'); + } + outputChannel.appendLine(message); +} diff --git a/src/schema-extension-api.ts b/src/schema-extension-api.ts index bebf3aa3..a47be6d5 100644 --- a/src/schema-extension-api.ts +++ b/src/schema-extension-api.ts @@ -1,6 +1,7 @@ import { URI } from 'vscode-uri' import { LanguageClient, RequestType } from 'vscode-languageclient'; import { workspace } from 'vscode'; +import { logToExtensionOutputChannel } from './extension'; interface SchemaContributorProvider { readonly requestSchema: (resource: string) => string; @@ -113,7 +114,7 @@ class SchemaExtensionAPI implements ExtensionAPI { matches.push(uri); } } catch (error) { - console.log(`Error thrown while requesting schema ` + error); + logToExtensionOutputChannel(`Error thrown while requesting schema "${error}" when calling the registered contributor "${customKey}"`); } } return matches; From 6a7f1eedc830f2715e8c0ae82f548f27f966f7ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Pupier?= Date: Thu, 23 Jul 2020 16:37:19 +0200 Subject: [PATCH 2/2] Reuse the output channel of the Language Client #326 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Aurélien Pupier --- src/extension.ts | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/extension.ts b/src/extension.ts index 9911682a..9be0c92d 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -25,7 +25,7 @@ namespace DynamicCustomSchemaRequestRegistration { export const type: NotificationType<{}, {}> = new NotificationType('yaml/registerCustomSchemaRequest'); } -let outputChannel: OutputChannel; +let client: LanguageClient; export function activate(context: ExtensionContext) { // The YAML language server is implemented in node @@ -59,7 +59,7 @@ export function activate(context: ExtensionContext) { }; // Create the language client and start it - let client = new LanguageClient('yaml', 'YAML Support', serverOptions, clientOptions); + client = new LanguageClient('yaml', 'YAML Support', serverOptions, clientOptions); let disposable = client.start(); const schemaExtensionAPI = new SchemaExtensionAPI(client); @@ -135,8 +135,5 @@ function getSchemaAssociation(context: ExtensionContext): ISchemaAssociations { } export function logToExtensionOutputChannel(message: string) { - if(outputChannel === undefined){ - outputChannel = window.createOutputChannel('VS Code Yaml extension'); - } - outputChannel.appendLine(message); + client.outputChannel.appendLine(message); }