private void maybeAddReconcilingStrategyForContentType(
     MultiReconcilingStrategy multiStrategy, IReconciler reconciler, String contentType) {
   final IReconcilingStrategy reconcilingStrategy = reconciler.getReconcilingStrategy(contentType);
   if (reconcilingStrategy != null && !multiStrategy.contains(reconcilingStrategy)) {
     multiStrategy.add(reconcilingStrategy);
   }
 }
 @Override
 public IReconciler getReconciler(ISourceViewer sourceViewer) {
   IReconcilingStrategy strategy;
   {
     if (markupValidationReconcilingStrategy == null) {
       markupValidationReconcilingStrategy = new MarkupValidationReconcilingStrategy(sourceViewer);
       markupValidationReconcilingStrategy.setMarkupLanguage(markupLanguage);
       markupValidationReconcilingStrategy.setResource(file);
     }
     IReconciler reconciler = super.getReconciler(sourceViewer);
     if (reconciler != null) {
       MultiReconcilingStrategy multiStrategy = new MultiReconcilingStrategy();
       for (String contentType : FastMarkupPartitioner.ALL_CONTENT_TYPES) {
         maybeAddReconcilingStrategyForContentType(multiStrategy, reconciler, contentType);
       }
       maybeAddReconcilingStrategyForContentType(
           multiStrategy, reconciler, IDocument.DEFAULT_CONTENT_TYPE);
       multiStrategy.add(markupValidationReconcilingStrategy);
       strategy = multiStrategy;
     } else {
       strategy = markupValidationReconcilingStrategy;
     }
   }
   MonoReconciler reconciler = new MarkupMonoReconciler(strategy, false);
   reconciler.setIsIncrementalReconciler(false);
   reconciler.setProgressMonitor(new NullProgressMonitor());
   reconciler.setDelay(500);
   return reconciler;
 }