comparison dwtx/jface/text/SequentialRewriteTextStore.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 75302ef3f92f
comparison
equal deleted inserted replaced
133:7d818bd32d63 134:51e6e63f930e
226 226
227 if (fReplaceList.size() is 0) { 227 if (fReplaceList.size() is 0) {
228 fReplaceList.add(new Replace(offset, offset, length, text)); 228 fReplaceList.add(new Replace(offset, offset, length, text));
229 229
230 } else { 230 } else {
231 Replace firstReplace= (Replace) fReplaceList.getFirst(); 231 Replace firstReplace= cast(Replace) fReplaceList.getFirst();
232 Replace lastReplace= (Replace) fReplaceList.getLast(); 232 Replace lastReplace= cast(Replace) fReplaceList.getLast();
233 233
234 // backward 234 // backward
235 if (offset + length <= firstReplace.newOffset) { 235 if (offset + length <= firstReplace.newOffset) {
236 int delta= text.length() - length; 236 int delta= text.length() - length;
237 if (delta !is 0) { 237 if (delta !is 0) {
238 for (Iterator i= fReplaceList.iterator(); i.hasNext(); ) { 238 for (Iterator i= fReplaceList.iterator(); i.hasNext(); ) {
239 Replace replace= (Replace) i.next(); 239 Replace replace= cast(Replace) i.next();
240 replace.newOffset += delta; 240 replace.newOffset += delta;
241 } 241 }
242 } 242 }
243 243
244 fReplaceList.addFirst(new Replace(offset, offset, length, text)); 244 fReplaceList.addFirst(new Replace(offset, offset, length, text));
246 // forward 246 // forward
247 } else if (offset >= lastReplace.newOffset + lastReplace.text.length()) { 247 } else if (offset >= lastReplace.newOffset + lastReplace.text.length()) {
248 int delta= getDelta(lastReplace); 248 int delta= getDelta(lastReplace);
249 fReplaceList.add(new Replace(offset - delta, offset, length, text)); 249 fReplaceList.add(new Replace(offset - delta, offset, length, text));
250 250
251 } else if (ASSERT_SEQUENTIALITY) { 251 } else if cast(ASSERT_SEQUENTIALITY) {
252 throw new IllegalArgumentException(); 252 throw new IllegalArgumentException();
253 253
254 } else { 254 } else {
255 commit(); 255 commit();
256 fSource.replace(offset, length, text); 256 fSource.replace(offset, length, text);
273 273
274 if (fReplaceList.isEmpty()) 274 if (fReplaceList.isEmpty())
275 return fSource.get(offset, length); 275 return fSource.get(offset, length);
276 276
277 277
278 Replace firstReplace= (Replace) fReplaceList.getFirst(); 278 Replace firstReplace= cast(Replace) fReplaceList.getFirst();
279 Replace lastReplace= (Replace) fReplaceList.getLast(); 279 Replace lastReplace= cast(Replace) fReplaceList.getLast();
280 280
281 // before 281 // before
282 if (offset + length <= firstReplace.newOffset) { 282 if (offset + length <= firstReplace.newOffset) {
283 return fSource.get(offset, length); 283 return fSource.get(offset, length);
284 284
285 // after 285 // after
286 } else if (offset >= lastReplace.newOffset + lastReplace.text.length()) { 286 } else if (offset >= lastReplace.newOffset + lastReplace.text.length()) {
287 int delta= getDelta(lastReplace); 287 int delta= getDelta(lastReplace);
288 return fSource.get(offset - delta, length); 288 return fSource.get(offset - delta, length);
289 289
290 } else if (ASSERT_SEQUENTIALITY) { 290 } else if cast(ASSERT_SEQUENTIALITY) {
291 throw new IllegalArgumentException(); 291 throw new IllegalArgumentException();
292 292
293 } else { 293 } else {
294 294
295 int delta= 0; 295 int delta= 0;
296 for (Iterator i= fReplaceList.iterator(); i.hasNext(); ) { 296 for (Iterator i= fReplaceList.iterator(); i.hasNext(); ) {
297 Replace replace= (Replace) i.next(); 297 Replace replace= cast(Replace) i.next();
298 298
299 if (offset + length < replace.newOffset) { 299 if (offset + length < replace.newOffset) {
300 return fSource.get(offset - delta, length); 300 return fSource.get(offset - delta, length);
301 301
302 } else if (offset >= replace.newOffset && offset + length <= replace.newOffset + replace.text.length()) { 302 } else if (offset >= replace.newOffset && offset + length <= replace.newOffset + replace.text.length()) {
333 */ 333 */
334 public char get(int offset) { 334 public char get(int offset) {
335 if (fReplaceList.isEmpty()) 335 if (fReplaceList.isEmpty())
336 return fSource.get(offset); 336 return fSource.get(offset);
337 337
338 Replace firstReplace= (Replace) fReplaceList.getFirst(); 338 Replace firstReplace= cast(Replace) fReplaceList.getFirst();
339 Replace lastReplace= (Replace) fReplaceList.getLast(); 339 Replace lastReplace= cast(Replace) fReplaceList.getLast();
340 340
341 // before 341 // before
342 if (offset < firstReplace.newOffset) { 342 if (offset < firstReplace.newOffset) {
343 return fSource.get(offset); 343 return fSource.get(offset);
344 344
345 // after 345 // after
346 } else if (offset >= lastReplace.newOffset + lastReplace.text.length()) { 346 } else if (offset >= lastReplace.newOffset + lastReplace.text.length()) {
347 int delta= getDelta(lastReplace); 347 int delta= getDelta(lastReplace);
348 return fSource.get(offset - delta); 348 return fSource.get(offset - delta);
349 349
350 } else if (ASSERT_SEQUENTIALITY) { 350 } else if cast(ASSERT_SEQUENTIALITY) {
351 throw new IllegalArgumentException(); 351 throw new IllegalArgumentException();
352 352
353 } else { 353 } else {
354 354
355 int delta= 0; 355 int delta= 0;
356 for (Iterator i= fReplaceList.iterator(); i.hasNext(); ) { 356 for (Iterator i= fReplaceList.iterator(); i.hasNext(); ) {
357 Replace replace= (Replace) i.next(); 357 Replace replace= cast(Replace) i.next();
358 358
359 if (offset < replace.newOffset) 359 if (offset < replace.newOffset)
360 return fSource.get(offset - delta); 360 return fSource.get(offset - delta);
361 361
362 else if (offset < replace.newOffset + replace.text.length()) 362 else if (offset < replace.newOffset + replace.text.length())
374 */ 374 */
375 public int getLength() { 375 public int getLength() {
376 if (fReplaceList.isEmpty()) 376 if (fReplaceList.isEmpty())
377 return fSource.getLength(); 377 return fSource.getLength();
378 378
379 Replace lastReplace= (Replace) fReplaceList.getLast(); 379 Replace lastReplace= cast(Replace) fReplaceList.getLast();
380 return fSource.getLength() + getDelta(lastReplace); 380 return fSource.getLength() + getDelta(lastReplace);
381 } 381 }
382 382
383 /** 383 /**
384 * Disposes this rewrite store. 384 * Disposes this rewrite store.
398 398
399 StringBuffer buffer= new StringBuffer(); 399 StringBuffer buffer= new StringBuffer();
400 400
401 int delta= 0; 401 int delta= 0;
402 for (Iterator i= fReplaceList.iterator(); i.hasNext(); ) { 402 for (Iterator i= fReplaceList.iterator(); i.hasNext(); ) {
403 Replace replace= (Replace) i.next(); 403 Replace replace= cast(Replace) i.next();
404 404
405 int offset= buffer.length() - delta; 405 int offset= buffer.length() - delta;
406 buffer.append(fSource.get(offset, replace.offset - offset)); 406 buffer.append(fSource.get(offset, replace.offset - offset));
407 buffer.append(replace.text); 407 buffer.append(replace.text);
408 delta= getDelta(replace); 408 delta= getDelta(replace);