Mercurial > projects > dwt-addons
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; |