diff options
3 files changed, 10 insertions, 2 deletions
diff --git a/bundles/org.eclipse.team.genericeditor.diff.extension/src/org/eclipse/team/internal/genericeditor/diff/extension/partitioner/DiffPartitioner.java b/bundles/org.eclipse.team.genericeditor.diff.extension/src/org/eclipse/team/internal/genericeditor/diff/extension/partitioner/DiffPartitioner.java index 1caf63515..eb52620dc 100644 --- a/bundles/org.eclipse.team.genericeditor.diff.extension/src/org/eclipse/team/internal/genericeditor/diff/extension/partitioner/DiffPartitioner.java +++ b/bundles/org.eclipse.team.genericeditor.diff.extension/src/org/eclipse/team/internal/genericeditor/diff/extension/partitioner/DiffPartitioner.java @@ -12,6 +12,7 @@ package org.eclipse.team.internal.genericeditor.diff.extension.partitioner; import org.eclipse.core.filebuffers.IDocumentSetupParticipant; import org.eclipse.jface.text.IDocument; +import org.eclipse.jface.text.IDocumentExtension3; import org.eclipse.jface.text.rules.FastPartitioner; import org.eclipse.jface.text.rules.IPartitionTokenScanner; @@ -20,7 +21,12 @@ public class DiffPartitioner implements IDocumentSetupParticipant{ public void setup(IDocument document) { IPartitionTokenScanner scanner = new DiffPartitionScanner(); FastPartitioner partitioner = new FastPartitioner(scanner, IDiffPartitioning.LEGAL_PARTITION_TYPES); - document.setDocumentPartitioner(partitioner); - partitioner.connect(document); + if (document instanceof IDocumentExtension3) { + final IDocumentExtension3 extension3 = (IDocumentExtension3) document; + extension3.setDocumentPartitioner(IDiffPartitioning.DIFF_PARTITIONINING, partitioner); + } else { + document.setDocumentPartitioner(partitioner); + } + partitioner.connect(document); } } diff --git a/bundles/org.eclipse.team.genericeditor.diff.extension/src/org/eclipse/team/internal/genericeditor/diff/extension/partitioner/IDiffPartitioning.java b/bundles/org.eclipse.team.genericeditor.diff.extension/src/org/eclipse/team/internal/genericeditor/diff/extension/partitioner/IDiffPartitioning.java index a85e77b36..24533bb4c 100644 --- a/bundles/org.eclipse.team.genericeditor.diff.extension/src/org/eclipse/team/internal/genericeditor/diff/extension/partitioner/IDiffPartitioning.java +++ b/bundles/org.eclipse.team.genericeditor.diff.extension/src/org/eclipse/team/internal/genericeditor/diff/extension/partitioner/IDiffPartitioning.java @@ -13,6 +13,7 @@ package org.eclipse.team.internal.genericeditor.diff.extension.partitioner; import org.eclipse.jface.text.IDocument; public interface IDiffPartitioning { + public static final String DIFF_PARTITIONINING = "__DIFF_PARTITIONING"; //$NON-NLS-1$ public static final String PARTITION_BODY = "__PARTITION_BODY"; //$NON-NLS-1$ public static final String PARTITION_HEADER = "__PARTITION_HEADER"; //$NON-NLS-1$ public static final String[] LEGAL_PARTITION_TYPES = new String[] {PARTITION_HEADER,PARTITION_BODY, IDocument.DEFAULT_CONTENT_TYPE }; diff --git a/bundles/org.eclipse.team.genericeditor.diff.extension/src/org/eclipse/team/internal/genericeditor/diff/extension/presentation/DiffPresentationReconciler.java b/bundles/org.eclipse.team.genericeditor.diff.extension/src/org/eclipse/team/internal/genericeditor/diff/extension/presentation/DiffPresentationReconciler.java index f6e74dcd9..9c5b12e3e 100644 --- a/bundles/org.eclipse.team.genericeditor.diff.extension/src/org/eclipse/team/internal/genericeditor/diff/extension/presentation/DiffPresentationReconciler.java +++ b/bundles/org.eclipse.team.genericeditor.diff.extension/src/org/eclipse/team/internal/genericeditor/diff/extension/presentation/DiffPresentationReconciler.java @@ -63,6 +63,7 @@ public class DiffPresentationReconciler extends PresentationReconciler { DefaultDamagerRepairer dr = new DefaultDamagerRepairer(scanner); this.setDamager(dr, IDiffPartitioning.PARTITION_BODY); this.setRepairer(dr, IDiffPartitioning.PARTITION_BODY); + this.setDocumentPartitioning(IDiffPartitioning.DIFF_PARTITIONINING); } } |