Skip to content

Commit 9fe6e33

Browse files
authored
Fix links error reporting (#596)
* Fix links error reporting Signed-off-by: Yevhen Vydolob <[email protected]> * remove console warn Signed-off-by: Yevhen Vydolob <[email protected]>
1 parent 520a328 commit 9fe6e33

File tree

5 files changed

+22
-16
lines changed

5 files changed

+22
-16
lines changed

src/languageservice/services/yamlCodeLens.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ export class YamlCodeLens {
4242
}
4343
}
4444
} catch (err) {
45-
this.telemetry.sendError('yaml.codeLens.error', { error: err, documentUri: document.uri });
45+
this.telemetry.sendError('yaml.codeLens.error', { error: err.toString() });
4646
}
4747

4848
return result;

src/languageservice/services/yamlDefinition.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ export function getDefinition(document: TextDocument, params: DefinitionParams):
2828
}
2929
}
3030
} catch (err) {
31-
this.telemetry.sendError('yaml.definition.error', { error: err });
31+
this.telemetry.sendError('yaml.definition.error', { error: err.toString() });
3232
}
3333

3434
return undefined;

src/languageservice/services/yamlHover.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ export class YAMLHover {
5151
currentDoc.currentDocIndex = currentDocIndex;
5252
return this.getHover(document, position, currentDoc);
5353
} catch (error) {
54-
this.telemetry.sendError('yaml.hover.error', { error, documentUri: document.uri });
54+
this.telemetry.sendError('yaml.hover.error', { error: error.toString() });
5555
}
5656
}
5757

src/languageservice/services/yamlLinks.ts

+16-11
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,24 @@
55
import { findLinks as JSONFindLinks } from 'vscode-json-languageservice/lib/umd/services/jsonLinks';
66
import { DocumentLink } from 'vscode-languageserver';
77
import { TextDocument } from 'vscode-languageserver-textdocument';
8+
import { Telemetry } from '../../languageserver/telemetry';
89
import { yamlDocumentsCache } from '../parser/yaml-documents';
910

10-
export function findLinks(document: TextDocument): Promise<DocumentLink[]> {
11-
try {
12-
const doc = yamlDocumentsCache.getYamlDocument(document);
13-
// Find links across all YAML Documents then report them back once finished
14-
const linkPromises = [];
15-
for (const yamlDoc of doc.documents) {
16-
linkPromises.push(JSONFindLinks(document, yamlDoc));
11+
export class YamlLinks {
12+
constructor(private readonly telemetry: Telemetry) {}
13+
14+
findLinks(document: TextDocument): Promise<DocumentLink[]> {
15+
try {
16+
const doc = yamlDocumentsCache.getYamlDocument(document);
17+
// Find links across all YAML Documents then report them back once finished
18+
const linkPromises = [];
19+
for (const yamlDoc of doc.documents) {
20+
linkPromises.push(JSONFindLinks(document, yamlDoc));
21+
}
22+
// Wait for all the promises to return and then flatten them into one DocumentLink array
23+
return Promise.all(linkPromises).then((yamlLinkArray) => [].concat(...yamlLinkArray));
24+
} catch (err) {
25+
this.telemetry.sendError('yaml.documentLink.error', { error: err.toString() });
1726
}
18-
// Wait for all the promises to return and then flatten them into one DocumentLink array
19-
return Promise.all(linkPromises).then((yamlLinkArray) => [].concat(...yamlLinkArray));
20-
} catch (err) {
21-
this.telemetry.sendError('yaml.documentLink.error', { error: err });
2227
}
2328
}

src/languageservice/yamlLanguageService.ts

+3-2
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ import { YAMLHover } from './services/yamlHover';
2929
import { YAMLValidation } from './services/yamlValidation';
3030
import { YAMLFormatter } from './services/yamlFormatter';
3131
import { DocumentSymbolsContext } from 'vscode-json-languageservice';
32-
import { findLinks } from './services/yamlLinks';
32+
import { YamlLinks } from './services/yamlLinks';
3333
import {
3434
FoldingRange,
3535
ClientCapabilities,
@@ -172,6 +172,7 @@ export function getLanguageService(
172172
const formatter = new YAMLFormatter();
173173
const yamlCodeActions = new YamlCodeActions(clientCapabilities);
174174
const yamlCodeLens = new YamlCodeLens(schemaService, telemetry);
175+
const yamlLinks = new YamlLinks(telemetry);
175176

176177
new JSONSchemaSelection(schemaService, yamlSettings, connection);
177178

@@ -203,7 +204,7 @@ export function getLanguageService(
203204
registerCustomSchemaProvider: (schemaProvider: CustomSchemaProvider) => {
204205
schemaService.registerCustomSchemaProvider(schemaProvider);
205206
},
206-
findLinks,
207+
findLinks: yamlLinks.findLinks.bind(yamlLinks),
207208
doComplete: completer.doComplete.bind(completer),
208209
doValidation: yamlValidation.doValidation.bind(yamlValidation),
209210
doHover: hover.doHover.bind(hover),

0 commit comments

Comments
 (0)