@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;
 }
  @Override
  public IReconciler getReconciler(ISourceViewer sourceViewer) {
    if (fPreferenceStore == null
        || !fPreferenceStore.getBoolean(SpellingService.PREFERENCE_SPELLING_ENABLED)) return null;

    SpellingService spellingService = EditorsUI.getSpellingService();
    if (spellingService.getActiveSpellingEngineDescriptor(fPreferenceStore) == null) return null;

    // Overridden (just) to return a PyReconciler!
    IReconcilingStrategy strategy = new PyReconciler(sourceViewer, spellingService);

    MonoReconciler reconciler = new MonoReconciler(strategy, false);
    reconciler.setIsIncrementalReconciler(false);
    reconciler.setProgressMonitor(new NullProgressMonitor());
    reconciler.setDelay(500);
    return reconciler;
  }