comparison dwtx/jface/text/projection/ProjectionMapping.d @ 134:51e6e63f930e

Regex fix for casts
author Frank Benoit <benoit@tionex.de>
date Sun, 24 Aug 2008 01:46:20 +0200
parents 7d818bd32d63
children 6dcb0baaa031
comparison
equal deleted inserted replaced
133:7d818bd32d63 134:51e6e63f930e
153 f.segment= s; 153 f.segment= s;
154 return s; 154 return s;
155 } 155 }
156 156
157 Position[] segments= getSegments(); 157 Position[] segments= getSegments();
158 return (Segment) segments[index]; 158 return cast(Segment) segments[index];
159 } 159 }
160 160
161 /** 161 /**
162 * Computes the fragment index given an origin offset. Returns the index of 162 * Computes the fragment index given an origin offset. Returns the index of
163 * the fragment that contains <code>offset</code>, or <code>-1</code> 163 * the fragment that contains <code>offset</code>, or <code>-1</code>
216 216
217 int index= findFragmentIndex(offset, NONE); 217 int index= findFragmentIndex(offset, NONE);
218 Position[] fragments= getFragments(); 218 Position[] fragments= getFragments();
219 if (index is -1) { 219 if (index is -1) {
220 if (fragments.length > 0) { 220 if (fragments.length > 0) {
221 Fragment last= (Fragment) fragments[fragments.length - 1]; 221 Fragment last= cast(Fragment) fragments[fragments.length - 1];
222 if (exclusiveEnd(last) is offset) 222 if (exclusiveEnd(last) is offset)
223 return last; 223 return last;
224 } 224 }
225 return null; 225 return null;
226 } 226 }
227 return (Fragment) fragments[index]; 227 return cast(Fragment) fragments[index];
228 } 228 }
229 229
230 /** 230 /**
231 * Returns the image region for <code>originRegion</code>. 231 * Returns the image region for <code>originRegion</code>.
232 * 232 *
258 if (exclusiveEnd(originRegion) <= allFragments[0].getOffset()) 258 if (exclusiveEnd(originRegion) <= allFragments[0].getOffset())
259 return new Region(0, 0); 259 return new Region(0, 0);
260 // after last 260 // after last
261 Position last= allFragments[allFragments.length - 1]; 261 Position last= allFragments[allFragments.length - 1];
262 if (originRegion.getOffset() >= exclusiveEnd(last)) 262 if (originRegion.getOffset() >= exclusiveEnd(last))
263 return new Region(exclusiveEnd(((Fragment) last).segment), 0); 263 return new Region(exclusiveEnd((cast(Fragment) last).segment), 0);
264 } 264 }
265 return new Region(0, 0); 265 return new Region(0, 0);
266 } 266 }
267 return null; 267 return null;
268 } 268 }
318 318
319 int endFragmentIdx= findFragmentIndex(inclusiveEnd(originRegion), exact ? NONE : LEFT); 319 int endFragmentIdx= findFragmentIndex(inclusiveEnd(originRegion), exact ? NONE : LEFT);
320 if (!takeClosestImage && startFragmentIdx > endFragmentIdx || endFragmentIdx is -1) 320 if (!takeClosestImage && startFragmentIdx > endFragmentIdx || endFragmentIdx is -1)
321 return null; 321 return null;
322 322
323 Fragment[] result= {(Fragment) fragments[startFragmentIdx], (Fragment) fragments[endFragmentIdx]}; 323 Fragment[] result= {cast(Fragment) fragments[startFragmentIdx], cast(Fragment) fragments[endFragmentIdx]};
324 return result; 324 return result;
325 } 325 }
326 326
327 private IRegion createOriginStartRegion(Segment image, int offsetShift) { 327 private IRegion createOriginStartRegion(Segment image, int offsetShift) {
328 return new Region(image.fragment.getOffset() + offsetShift, image.fragment.getLength() - offsetShift); 328 return new Region(image.fragment.getOffset() + offsetShift, image.fragment.getLength() - offsetShift);
515 515
516 IRegion originLineRegion= fMasterDocument.getLineInformation(originLine); 516 IRegion originLineRegion= fMasterDocument.getLineInformation(originLine);
517 int index= fMasterDocument.computeIndexInCategory(fFragmentsCategory, originLineRegion.getOffset()); 517 int index= fMasterDocument.computeIndexInCategory(fFragmentsCategory, originLineRegion.getOffset());
518 518
519 if (0 < index && index < fragments.length) { 519 if (0 < index && index < fragments.length) {
520 Fragment left= (Fragment) fragments[index - 1]; 520 Fragment left= cast(Fragment) fragments[index - 1];
521 int leftDistance= originLineRegion.getOffset() - (exclusiveEnd(left)); 521 int leftDistance= originLineRegion.getOffset() - (exclusiveEnd(left));
522 Fragment right= (Fragment) fragments[index]; 522 Fragment right= cast(Fragment) fragments[index];
523 int rightDistance= right.getOffset() - (exclusiveEnd(originLineRegion)); 523 int rightDistance= right.getOffset() - (exclusiveEnd(originLineRegion));
524 524
525 if (leftDistance <= rightDistance) 525 if (leftDistance <= rightDistance)
526 originLine= fMasterDocument.getLineOfOffset(left.getOffset() + Math.max(left.getLength() - 1, 0)); 526 originLine= fMasterDocument.getLineOfOffset(left.getOffset() + Math.max(left.getLength() - 1, 0));
527 else 527 else
528 originLine= fMasterDocument.getLineOfOffset(right.getOffset()); 528 originLine= fMasterDocument.getLineOfOffset(right.getOffset());
529 529
530 } else if (index is 0) { 530 } else if (index is 0) {
531 Fragment right= (Fragment) fragments[index]; 531 Fragment right= cast(Fragment) fragments[index];
532 originLine= fMasterDocument.getLineOfOffset(right.getOffset()); 532 originLine= fMasterDocument.getLineOfOffset(right.getOffset());
533 } else if (index is fragments.length) { 533 } else if (index is fragments.length) {
534 Fragment left= (Fragment) fragments[index - 1]; 534 Fragment left= cast(Fragment) fragments[index - 1];
535 originLine= fMasterDocument.getLineOfOffset(exclusiveEnd(left)); 535 originLine= fMasterDocument.getLineOfOffset(exclusiveEnd(left));
536 } 536 }
537 537
538 return toImageLine(originLine); 538 return toImageLine(originLine);
539 539
558 558
559 int resultLength= lastIndex - firstIndex + 1; 559 int resultLength= lastIndex - firstIndex + 1;
560 IRegion[] result= new IRegion[resultLength]; 560 IRegion[] result= new IRegion[resultLength];
561 561
562 // first 562 // first
563 result[0]= createOriginStartRegion((Segment) segments[firstIndex], imageRegion.getOffset() - segments[firstIndex].getOffset()); 563 result[0]= createOriginStartRegion(cast(Segment) segments[firstIndex], imageRegion.getOffset() - segments[firstIndex].getOffset());
564 // middles 564 // middles
565 for (int i= 1; i < resultLength - 1; i++) 565 for (int i= 1; i < resultLength - 1; i++)
566 result[i]= createOriginRegion((Segment) segments[firstIndex + i]); 566 result[i]= createOriginRegion(cast(Segment) segments[firstIndex + i]);
567 // last 567 // last
568 Segment last= (Segment) segments[lastIndex]; 568 Segment last= cast(Segment) segments[lastIndex];
569 int segmentEndOffset= exclusiveEnd(last); 569 int segmentEndOffset= exclusiveEnd(last);
570 IRegion lastRegion= createOriginEndRegion(last, segmentEndOffset - endOffset); 570 IRegion lastRegion= createOriginEndRegion(last, segmentEndOffset - endOffset);
571 if (resultLength > 1) { 571 if (resultLength > 1) {
572 // first !is last 572 // first !is last
573 result[resultLength - 1]= lastRegion; 573 result[resultLength - 1]= lastRegion;
615 615
616 int resultLength= lastIndex - firstIndex + 1; 616 int resultLength= lastIndex - firstIndex + 1;
617 IRegion[] result= new IRegion[resultLength]; 617 IRegion[] result= new IRegion[resultLength];
618 618
619 // first 619 // first
620 result[0]= createImageStartRegion((Fragment) fragments[firstIndex], offset - fragments[firstIndex].getOffset()); 620 result[0]= createImageStartRegion(cast(Fragment) fragments[firstIndex], offset - fragments[firstIndex].getOffset());
621 // middles 621 // middles
622 for (int i= 1; i < resultLength - 1; i++) 622 for (int i= 1; i < resultLength - 1; i++)
623 result[i]= createImageRegion((Fragment) fragments[firstIndex + i]); 623 result[i]= createImageRegion(cast(Fragment) fragments[firstIndex + i]);
624 // last 624 // last
625 Fragment last= (Fragment) fragments[lastIndex]; 625 Fragment last= cast(Fragment) fragments[lastIndex];
626 int fragmentEndOffset= exclusiveEnd(last); 626 int fragmentEndOffset= exclusiveEnd(last);
627 IRegion lastRegion= createImageEndRegion(last, fragmentEndOffset - endOffset); 627 IRegion lastRegion= createImageEndRegion(last, fragmentEndOffset - endOffset);
628 if (resultLength > 1) { 628 if (resultLength > 1) {
629 // first !is last 629 // first !is last
630 result[resultLength - 1]= lastRegion; 630 result[resultLength - 1]= lastRegion;
662 662
663 int resultLength= lastIndex - firstIndex + 1; 663 int resultLength= lastIndex - firstIndex + 1;
664 IRegion[] result= new IRegion[resultLength]; 664 IRegion[] result= new IRegion[resultLength];
665 665
666 // first 666 // first
667 result[0]= createOriginStartRegion((Fragment) fragments[firstIndex], originOffset - fragments[firstIndex].getOffset()); 667 result[0]= createOriginStartRegion(cast(Fragment) fragments[firstIndex], originOffset - fragments[firstIndex].getOffset());
668 // middles 668 // middles
669 for (int i= 1; i < resultLength - 1; i++) 669 for (int i= 1; i < resultLength - 1; i++)
670 result[i]= createOriginRegion((Fragment) fragments[firstIndex + i]); 670 result[i]= createOriginRegion(cast(Fragment) fragments[firstIndex + i]);
671 // last 671 // last
672 Fragment last= (Fragment) fragments[lastIndex]; 672 Fragment last= cast(Fragment) fragments[lastIndex];
673 int fragmentEndOffset= exclusiveEnd(last); 673 int fragmentEndOffset= exclusiveEnd(last);
674 IRegion lastRegion= createOriginEndRegion(last, fragmentEndOffset - endOffset); 674 IRegion lastRegion= createOriginEndRegion(last, fragmentEndOffset - endOffset);
675 if (resultLength > 1) { 675 if (resultLength > 1) {
676 // first !is last 676 // first !is last
677 result[resultLength - 1]= lastRegion; 677 result[resultLength - 1]= lastRegion;