From: axelcl <axelcl> Date: Sat, 13 Nov 2004 12:36:32 +0000 (+0000) Subject: inserted nodes.clear() for every Partitioner initializing X-Git-Url: http://secure.phpeclipse.com inserted nodes.clear() for every Partitioner initializing --- diff --git a/net.sourceforge.phpeclipse.ui/src/net/sourceforge/phpeclipse/ui/text/rules/AbstractPartitioner.java b/net.sourceforge.phpeclipse.ui/src/net/sourceforge/phpeclipse/ui/text/rules/AbstractPartitioner.java index 981b803..d104237 100644 --- a/net.sourceforge.phpeclipse.ui/src/net/sourceforge/phpeclipse/ui/text/rules/AbstractPartitioner.java +++ b/net.sourceforge.phpeclipse.ui/src/net/sourceforge/phpeclipse/ui/text/rules/AbstractPartitioner.java @@ -8,7 +8,7 @@ * Contributors: * Igor Malinin - initial contribution * - * $Id: AbstractPartitioner.java,v 1.1 2004-09-02 18:26:29 jsurfer Exp $ + * $Id: AbstractPartitioner.java,v 1.2 2004-11-13 12:36:32 axelcl Exp $ */ package net.sourceforge.phpeclipse.ui.text.rules; @@ -35,7 +35,7 @@ import org.eclipse.jface.text.rules.IToken; * @author Igor Malinin */ public abstract class AbstractPartitioner implements IDocumentPartitioner, IDocumentPartitionerExtension { - public final static boolean DEBUG = true; + public final static boolean DEBUG = false; /** Partition scanner */ protected IPartitionTokenScanner scanner; @@ -103,7 +103,7 @@ public abstract class AbstractPartitioner implements IDocumentPartitioner, IDocu */ protected void initialize() { scanner.setRange(document, 0, document.getLength()); - + nodes.clear(); IToken token = scanner.nextToken(); while (!token.isEOF()) { String contentType = getTokenContentType(token); diff --git a/net.sourceforge.phpeclipse.ui/src/net/sourceforge/phpeclipse/ui/text/rules/MultiViewPartitioner.java b/net.sourceforge.phpeclipse.ui/src/net/sourceforge/phpeclipse/ui/text/rules/MultiViewPartitioner.java index ea7cdda..4bd1a6c 100644 --- a/net.sourceforge.phpeclipse.ui/src/net/sourceforge/phpeclipse/ui/text/rules/MultiViewPartitioner.java +++ b/net.sourceforge.phpeclipse.ui/src/net/sourceforge/phpeclipse/ui/text/rules/MultiViewPartitioner.java @@ -8,7 +8,7 @@ * Contributors: * Igor Malinin - initial contribution * - * $Id: MultiViewPartitioner.java,v 1.6 2004-11-12 20:15:58 axelcl Exp $ + * $Id: MultiViewPartitioner.java,v 1.7 2004-11-13 12:36:32 axelcl Exp $ */ package net.sourceforge.phpeclipse.ui.text.rules; @@ -436,7 +436,13 @@ public abstract class MultiViewPartitioner extends AbstractPartitioner { */ public ITypedRegion[] computePartitioning(int offset, int length) { List list = new ArrayList(); - +// if (DEBUG) { +// System.out.print("MultiViewPartitioner::computePartitioning - Offset: "); +// System.out.print(offset); +// System.out.print(", Length: "); +// System.out.print(length); +// System.out.println(""); +// } int end = offset + length; int index = computeFlatNodeIndex(offset); @@ -465,10 +471,33 @@ public abstract class MultiViewPartitioner extends AbstractPartitioner { ++index; } - +// if (DEBUG) { +// showList(list); +// } + return (TypedRegion[]) list.toArray(new TypedRegion[list.size()]); } + private void showList(List list) { + try { + throw new NullPointerException(); + } catch (Exception e){ + e.printStackTrace(); + } + System.out.println(">>>>>List start"); + TypedRegion temp; + for (int i = 0; i < list.size(); i++) { + temp = (TypedRegion)list.get(i); + System.out.print("Offset: "); + System.out.print(temp.getOffset()); + System.out.print(", Length: "); + System.out.print(temp.getLength()); + System.out.print(", Type: "); + System.out.print(temp.getType()); + System.out.println(""); + } + System.out.println("<<<<<List end"); + } private void addOuterPartitions(List list, int offset, int length, FlatNode prev, FlatNode next) { // limit region int start = offset; @@ -487,6 +516,11 @@ public abstract class MultiViewPartitioner extends AbstractPartitioner { } if (outerDocument == null) { +// if (DEBUG) { +// if (end - start<0) { +// throw new IndexOutOfBoundsException(); +// } +// } list.add(new TypedRegion(start, end - start, getContentType(null, IDocument.DEFAULT_CONTENT_TYPE))); return; } @@ -518,7 +552,21 @@ public abstract class MultiViewPartitioner extends AbstractPartitioner { end = offset; } } - +// if (DEBUG) { +// if (end - start<0) { +// showList(list); +// System.out.print("MultiViewPartitioner::addOuterPartitions - Offset: "); +// System.out.print(offset); +// System.out.print(", Start: "); +// System.out.print(start); +// System.out.print(", End: "); +// System.out.print(end); +// System.out.print(", Type: "); +// System.out.print(region.getType()); +// System.out.println(""); +// throw new IndexOutOfBoundsException(); +// } +// } list.add(new TypedRegion(start, end - start, getContentType(null, region.getType()))); } } @@ -529,12 +577,17 @@ public abstract class MultiViewPartitioner extends AbstractPartitioner { private void addInnerPartitions(List list, int offset, int length, FlatNode position) { InnerDocumentView innerDocument = null; if (position instanceof ViewNode) { - // TODO: revisit condition + // TODO: revisit condition innerDocument = ((ViewNode) position).view; } if (innerDocument == null) { // simple partition +// if (DEBUG) { +// if (position.length<0) { +// throw new IndexOutOfBoundsException(); +// } +// } list.add(new TypedRegion(position.offset, position.length, getContentType(position.type, null))); return; } @@ -557,7 +610,11 @@ public abstract class MultiViewPartitioner extends AbstractPartitioner { // convert back to parent offsets offset = innerDocument.getParentOffset(region.getOffset()); length = region.getLength(); - +// if (DEBUG) { +// if (length<0) { +// throw new IndexOutOfBoundsException(); +// } +// } list.add(new TypedRegion(offset, length, getContentType(position.type, region.getType()))); } } catch (BadLocationException x) {