mirror of
https://github.com/microsoft/vscode.git
synced 2025-12-23 19:59:37 +00:00
[html] validate: check if version is still current
This commit is contained in:
@@ -230,17 +230,21 @@ function isValidationEnabled(languageId: string, settings: Settings = globalSett
|
|||||||
|
|
||||||
async function validateTextDocument(textDocument: TextDocument) {
|
async function validateTextDocument(textDocument: TextDocument) {
|
||||||
try {
|
try {
|
||||||
|
let version = textDocument.version;
|
||||||
let diagnostics: Diagnostic[] = [];
|
let diagnostics: Diagnostic[] = [];
|
||||||
if (textDocument.languageId === 'html') {
|
if (textDocument.languageId === 'html') {
|
||||||
let modes = languageModes.getAllModesInDocument(textDocument);
|
let modes = languageModes.getAllModesInDocument(textDocument);
|
||||||
let settings = await getDocumentSettings(textDocument, () => modes.some(m => !!m.doValidation));
|
let settings = await getDocumentSettings(textDocument, () => modes.some(m => !!m.doValidation));
|
||||||
modes.forEach(mode => {
|
textDocument = documents.get(textDocument.uri);
|
||||||
if (mode.doValidation && isValidationEnabled(mode.getId(), settings)) {
|
if (textDocument && textDocument.version === version) { // check no new version has come in after in after the async op
|
||||||
pushAll(diagnostics, mode.doValidation(textDocument, settings));
|
modes.forEach(mode => {
|
||||||
}
|
if (mode.doValidation && isValidationEnabled(mode.getId(), settings)) {
|
||||||
});
|
pushAll(diagnostics, mode.doValidation(textDocument, settings));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
connection.sendDiagnostics({ uri: textDocument.uri, diagnostics });
|
||||||
|
}
|
||||||
}
|
}
|
||||||
connection.sendDiagnostics({ uri: textDocument.uri, diagnostics });
|
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
connection.console.error(formatError(`Error while validating ${textDocument.uri}`, e));
|
connection.console.error(formatError(`Error while validating ${textDocument.uri}`, e));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user