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