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(); ) {