本文整理匯總了TypeScript中vscode.DiagnosticCollection類的典型用法代碼示例。如果您正苦於以下問題:TypeScript DiagnosticCollection類的具體用法?TypeScript DiagnosticCollection怎麽用?TypeScript DiagnosticCollection使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。
在下文中一共展示了DiagnosticCollection類的9個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的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: 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}`);
}
}
示例3: resetDiagnostics
function resetDiagnostics() {
diagnosticCollection.clear();
diagnosticMap.forEach((diags, file) => {
diagnosticCollection.set(Uri.parse(file), diags);
});
}
示例4: loadConfiguration
function loadConfiguration(context: ExtensionContext): void {
const section = workspace.getConfiguration('npm');
if (section) {
validationEnabled = section.get<boolean>('validate.enable', true);
}
diagnosticCollection.clear();
if (validationEnabled) {
workspace.onDidSaveTextDocument(document => {
validateDocument(document);
}, null, context.subscriptions);
window.onDidChangeActiveTextEditor(editor => {
if (editor && editor.document) {
validateDocument(editor.document);
}
}, null, context.subscriptions);
// remove markers on close
workspace.onDidCloseTextDocument(_document => {
diagnosticCollection.clear();
}, null, context.subscriptions);
// workaround for onDidOpenTextDocument
// workspace.onDidOpenTextDocument(document => {
// console.log("onDidOpenTextDocument ", document.fileName);
// validateDocument(document);
// }, null, context.subscriptions);
validateAllDocuments();
}
}
示例5: reInitialize
public reInitialize(): void {
this.currentDiagnostics.clear();
this.syntaxDiagnostics = Object.create(null);
this.bufferSyncSupport.reOpenDocuments();
this.bufferSyncSupport.requestAllDiagnostics();
}
示例6: 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);
}
示例7: 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))
);
}
示例8:
/* internal */ populateService(): void {
this.currentDiagnostics.clear();
this.syntaxDiagnostics = Object.create(null);
// See https://github.com/Microsoft/TypeScript/issues/5530
workspace.saveAll(false).then((value) => {
this.bufferSyncSupports.forEach(support => {
support.reOpenDocuments();
support.requestAllDiagnostics();
});
});
}
示例9: updateValidate
private updateValidate(value: boolean) {
if (this._validate === value) {
return;
}
this._validate = value;
this.bufferSyncSupport.validate = value;
if (value) {
this.triggerAllDiagnostics();
} else {
this.syntaxDiagnostics = Object.create(null);
this.currentDiagnostics.clear();
}
}