diff --git a/org.eclipse.lemminx/src/main/java/org/eclipse/lemminx/services/XMLLanguageService.java b/org.eclipse.lemminx/src/main/java/org/eclipse/lemminx/services/XMLLanguageService.java index b8d19ad17a..6d5c88756c 100644 --- a/org.eclipse.lemminx/src/main/java/org/eclipse/lemminx/services/XMLLanguageService.java +++ b/org.eclipse.lemminx/src/main/java/org/eclipse/lemminx/services/XMLLanguageService.java @@ -168,6 +168,11 @@ public List doDiagnostics(DOMDocument xmlDocument, XMLValidationSett public CompletableFuture publishDiagnostics(DOMDocument xmlDocument, Consumer publishDiagnostics, Consumer triggerValidation, XMLValidationSettings validationSettings, CancelChecker cancelChecker) { + if (validationSettings != null && !validationSettings.isEnabled()) { + // Validation is disabled + return null; + } + // Process validation String uri = xmlDocument.getDocumentURI(); TextDocument document = xmlDocument.getTextDocument(); @@ -177,7 +182,7 @@ public CompletableFuture publishDiagnostics(DOMDocument xmlDocument, publishDiagnostics.accept(new PublishDiagnosticsParams(uri, diagnostics)); List> futures = diagnostics.getFutures(); - if (futures != null) { + if (!futures.isEmpty()) { CompletableFuture allFutures = CompletableFuture .allOf(futures.toArray(new CompletableFuture[futures.size()])); allFutures.thenAccept(Void -> { @@ -271,7 +276,7 @@ public Position getMatchingTagPosition(DOMDocument xmlDocument, Position positio /** * Returns the linked editing ranges for the given xmlDocument at * the given position and null otherwise. - * + * * @param xmlDocument the DOM document. * @param position the position. * @param cancelChecker the cancel checker. diff --git a/org.eclipse.lemminx/src/main/java/org/eclipse/lemminx/services/extensions/diagnostics/DiagnosticsResult.java b/org.eclipse.lemminx/src/main/java/org/eclipse/lemminx/services/extensions/diagnostics/DiagnosticsResult.java index e8baf4a68d..61971eec27 100644 --- a/org.eclipse.lemminx/src/main/java/org/eclipse/lemminx/services/extensions/diagnostics/DiagnosticsResult.java +++ b/org.eclipse.lemminx/src/main/java/org/eclipse/lemminx/services/extensions/diagnostics/DiagnosticsResult.java @@ -21,7 +21,7 @@ /** * This class is the result of a diagnostic process. It contains: - * + * *
    *
  • list of diagnostics.
  • *
  • list of completable future which are not done(ex : download some external @@ -29,7 +29,7 @@ * again the diagnostics once all completable futures are finished (ex : all * download are finished).
  • *
- * + * * @author Angelo ZERR * */ @@ -55,12 +55,16 @@ public void addFuture(CompletableFuture future) { /** * Returns the completable futures used in a diagnostics (ex : completeable - * future to download external resources XSD, DTD) and null otherwise. - * + * future to download external resources XSD, DTD) and an empty list otherwise. + * * @return the completable futures used in a diagnostics (ex : completeable - * future to download external resources XSD, DTD) and null otherwise. + * future to download external resources XSD, DTD) and an empty list + * otherwise. */ public List> getFutures() { + if (futures == null) { + return Collections.emptyList(); + } return futures; }