Mercurial > projects > dwt-addons
comparison dwtx/jface/text/SequentialRewriteTextStore.d @ 162:1a5b8f8129df
...
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Mon, 08 Sep 2008 00:51:37 +0200 |
parents | f70d9508c95c |
children |
comparison
equal
deleted
inserted
replaced
161:f8d52b926852 | 162:1a5b8f8129df |
---|---|
231 Replace firstReplace= cast(Replace) fReplaceList.getFirst(); | 231 Replace firstReplace= cast(Replace) fReplaceList.getFirst(); |
232 Replace lastReplace= cast(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= cast(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)); |
245 | 245 |
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 (ASSERT_SEQUENTIALITY) { |
252 throw new IllegalArgumentException(); | 252 throw new IllegalArgumentException(null); |
253 | 253 |
254 } else { | 254 } else { |
255 commit(); | 255 commit(); |
256 fSource.replace(offset, length, text); | 256 fSource.replace(offset, length, text); |
257 } | 257 } |
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 (ASSERT_SEQUENTIALITY) { |
291 throw new IllegalArgumentException(); | 291 throw new IllegalArgumentException(null); |
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= cast(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) { |
303 return replace.text.substring(offset - replace.newOffset, offset - replace.newOffset + length); | 303 return replace.text.substring(offset - replace.newOffset, offset - replace.newOffset + length); |
304 | 304 |
305 } else if (offset >= replace.newOffset + replace.text.length()) { | 305 } else if (offset >= replace.newOffset + replace.text.length) { |
306 delta= getDelta(replace); | 306 delta= getDelta(replace); |
307 continue; | 307 continue; |
308 | 308 |
309 } else { | 309 } else { |
310 commit(); | 310 commit(); |
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 (ASSERT_SEQUENTIALITY) { |
351 throw new IllegalArgumentException(); | 351 throw new IllegalArgumentException(null); |
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(); ) { |