本文整理汇总了TypeScript中vscode.DiagnosticCollection.set方法的典型用法代码示例。如果您正苦于以下问题:TypeScript DiagnosticCollection.set方法的具体用法?TypeScript DiagnosticCollection.set怎么用?TypeScript DiagnosticCollection.set使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类vscode.DiagnosticCollection
的用法示例。
在下文中一共展示了DiagnosticCollection.set方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: addUniqueDiagnostic
export function addUniqueDiagnostic(diagnostic: FileDiagnostic, diagnostics: DiagnosticCollection): void {
const uri = Uri.file(diagnostic.filePath);
const fileDiagnostics = diagnostics.get(uri);
if (!fileDiagnostics) {
// No diagnostics for the file
// The diagnostic is unique
diagnostics.set(uri, [diagnostic.diagnostic]);
} else if (isUniqueDiagnostic(diagnostic.diagnostic, fileDiagnostics)) {
const newFileDiagnostics = fileDiagnostics.concat([diagnostic.diagnostic]);
diagnostics.set(uri, newFileDiagnostics);
}
}
示例2: semanticDiagnosticsReceived
public semanticDiagnosticsReceived(file: string, diagnostics: Diagnostic[]): void {
let syntaxMarkers = this.syntaxDiagnostics[file];
if (syntaxMarkers) {
delete this.syntaxDiagnostics[file];
diagnostics = syntaxMarkers.concat(diagnostics);
}
this.currentDiagnostics.set(Uri.file(file), diagnostics);
}
示例3: handleErrors
private handleErrors(notification: as.AnalysisErrorsNotification) {
let errors = notification.errors;
if (!config.showTodos)
errors = errors.filter((error) => error.type != "TODO");
this.diagnostics.set(
Uri.file(notification.file),
errors.map(e => this.createDiagnostic(e))
);
}
示例4:
/* internal */ semanticDiagnosticsReceived(event: Proto.DiagnosticEvent): void {
let body = event.body;
if (body.diagnostics) {
let diagnostics = this.createMarkerDatas(body.diagnostics);
let syntaxMarkers = this.syntaxDiagnostics[body.file];
if (syntaxMarkers) {
delete this.syntaxDiagnostics[body.file];
diagnostics = syntaxMarkers.concat(diagnostics);
}
this.currentDiagnostics.set(Uri.file(body.file), diagnostics);
}
}
示例5: doValidate
async function doValidate(document: TextDocument) {
let report = null;
let documentWasClosed = false; // track whether the document was closed while getInstalledModules/'npm ls' runs
const listener = workspace.onDidCloseTextDocument(doc => {
if (doc.uri === document.uri) {
documentWasClosed = true;
}
});
try {
report = await getInstalledModules(path.dirname(document.fileName));
} catch (e) {
listener.dispose();
return;
}
try {
diagnosticCollection.clear();
if (report.invalid && report.invalid === true) {
return;
}
if (!anyModuleErrors(report)) {
return;
}
if (documentWasClosed || !document.getText()) {
return;
}
const sourceRanges = parseSourceRanges(document.getText());
const dependencies = report.dependencies;
const diagnostics: Diagnostic[] = [];
for (var moduleName in dependencies) {
if (dependencies.hasOwnProperty(moduleName)) {
const diagnostic = getDiagnostic(document, report, moduleName, sourceRanges);
if (diagnostic) {
diagnostic.source = 'npm';
diagnostics.push(diagnostic);
}
}
}
//console.log("diagnostic count ", diagnostics.length, " ", document.uri.fsPath);
diagnosticCollection.set(document.uri, diagnostics);
} catch (e) {
window.showInformationMessage(`[npm-script-runner] Cannot validate the package.json ` + e);
console.log(`npm-script-runner: 'error while validating package.json stacktrace: ${e.stack}`);
}
}
示例6: configFileDiagnosticsReceived
public configFileDiagnosticsReceived(file: string, diagnostics: Diagnostic[]): void {
this.currentDiagnostics.set(Uri.file(file), diagnostics);
}
示例7:
diagnosticMap.forEach((diags, file) => {
diagnosticCollection.set(Uri.parse(file), diags);
});
示例8: checkVariables
public async checkVariables(document: TextDocument) {
if (document.languageId !== 'http' || document.uri.scheme !== 'file') {
return;
}
const diagnostics: Diagnostic[] = [];
const allAvailableVariables = await VariableProcessor.getAllVariablesDefinitions(document);
const variableReferences = this.findVariableReferences(document);
// Variable not found
[...variableReferences.entries()]
.filter(([name]) => !allAvailableVariables.has(name))
.forEach(([, variables]) => {
variables.forEach(v => {
diagnostics.push(
new Diagnostic(
new Range(new Position(v.lineNumber, v.startIndex), new Position(v.lineNumber, v.endIndex)),
`${v.variableName} is not found`,
DiagnosticSeverity.Error));
});
});
// Request variable not active
[...variableReferences.entries()]
.filter(([name]) =>
allAvailableVariables.has(name)
&& allAvailableVariables.get(name)[0] === VariableType.Request
&& !RequestVariableCache.has(new RequestVariableCacheKey(name, document.uri.toString())))
.forEach(([, variables]) => {
variables.forEach(v => {
diagnostics.push(
new Diagnostic(
new Range(new Position(v.lineNumber, v.startIndex), new Position(v.lineNumber, v.endIndex)),
`Request '${v.variableName}' has not been sent`,
DiagnosticSeverity.Information));
});
});
// Request variable resolve with warning or error
[...variableReferences.entries()]
.filter(([name]) =>
allAvailableVariables.has(name)
&& allAvailableVariables.get(name)[0] === VariableType.Request
&& RequestVariableCache.has(new RequestVariableCacheKey(name, document.uri.toString())))
.forEach(([name, variables]) => {
const value = RequestVariableCache.get(new RequestVariableCacheKey(name, document.uri.toString()));
variables.forEach(v => {
const path = v.variableValue.replace(/^\{{2}\s*/, '').replace(/\s*\}{2}$/, '');
const result = RequestVariableCacheValueProcessor.resolveRequestVariable(value, path);
if (result.state !== ResolveState.Success) {
diagnostics.push(
new Diagnostic(
new Range(new Position(v.lineNumber, v.startIndex), new Position(v.lineNumber, v.endIndex)),
result.message,
result.state === ResolveState.Error ? DiagnosticSeverity.Error : DiagnosticSeverity.Warning));
}
});
});
this.httpDiagnosticCollection.set(document.uri, diagnostics);
}
示例9: syntaxDiagnosticsReceived
public syntaxDiagnosticsReceived(file: string, diagnostics: Diagnostic[]): void {
this.syntaxDiagnostics[file] = diagnostics;
this.currentDiagnostics.set(Uri.file(file), diagnostics);
}
示例10: flushResults
private flushResults(notification: as.AnalysisFlushResultsNotification) {
let entries = notification.files.map<[Uri, Diagnostic[]]>(file => [Uri.file(file), undefined]);
this.diagnostics.set(entries);
}