erosolar-cli 1.7.146 → 1.7.147
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin/selfTest.js +15 -6
- package/dist/bin/selfTest.js.map +1 -1
- package/dist/shell/interactiveShell.d.ts.map +1 -1
- package/dist/shell/interactiveShell.js +36 -26
- package/dist/shell/interactiveShell.js.map +1 -1
- package/dist/tools/editTools.d.ts.map +1 -1
- package/dist/tools/editTools.js +138 -11
- package/dist/tools/editTools.js.map +1 -1
- package/dist/ui/persistentPrompt.d.ts +5 -0
- package/dist/ui/persistentPrompt.d.ts.map +1 -1
- package/dist/ui/persistentPrompt.js +40 -22
- package/dist/ui/persistentPrompt.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editTools.d.ts","sourceRoot":"","sources":["../../src/tools/editTools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"editTools.d.ts","sourceRoot":"","sources":["../../src/tools/editTools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAuG7D;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,EAAE,CA6MpE"}
|
package/dist/tools/editTools.js
CHANGED
|
@@ -1,8 +1,93 @@
|
|
|
1
|
-
import { readFile, writeFile, stat, mkdir } from 'node:fs/promises';
|
|
2
|
-
import { join, relative, dirname } from 'node:path';
|
|
1
|
+
import { readFile, writeFile, stat, mkdir, copyFile } from 'node:fs/promises';
|
|
2
|
+
import { join, relative, dirname, basename } from 'node:path';
|
|
3
3
|
import { buildError } from '../core/errors.js';
|
|
4
4
|
import { buildDiffSegmentsFast, formatDiffLines } from './diffUtils.js';
|
|
5
5
|
import { theme } from '../ui/theme.js';
|
|
6
|
+
/**
|
|
7
|
+
* Safety thresholds for edit operations.
|
|
8
|
+
* These prevent accidental destructive edits from corrupting files.
|
|
9
|
+
*/
|
|
10
|
+
const EDIT_SAFETY = {
|
|
11
|
+
/** Max lines that can be removed in a single edit without warning */
|
|
12
|
+
MAX_REMOVED_LINES_WARN: 50,
|
|
13
|
+
/** Max percentage of file that can be removed in a single edit */
|
|
14
|
+
MAX_REMOVAL_PERCENTAGE: 30,
|
|
15
|
+
/** Create backup if removing more than this many lines */
|
|
16
|
+
BACKUP_THRESHOLD_LINES: 20,
|
|
17
|
+
/** Reject edits where old_string is more than this many times larger than new_string */
|
|
18
|
+
MAX_SIZE_RATIO: 15,
|
|
19
|
+
/** Minimum old_string size (chars) to trigger size ratio check */
|
|
20
|
+
SIZE_RATIO_MIN_CHARS: 500,
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Create a backup of a file before potentially destructive edit.
|
|
24
|
+
* Backups are stored in .erosolar/backups/ with timestamp.
|
|
25
|
+
*/
|
|
26
|
+
async function createEditBackup(workingDir, filePath) {
|
|
27
|
+
try {
|
|
28
|
+
const backupDir = join(workingDir, '.erosolar', 'backups');
|
|
29
|
+
await mkdir(backupDir, { recursive: true });
|
|
30
|
+
const fileName = basename(filePath);
|
|
31
|
+
const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
|
|
32
|
+
const backupPath = join(backupDir, `${fileName}.${timestamp}.bak`);
|
|
33
|
+
await copyFile(filePath, backupPath);
|
|
34
|
+
return backupPath;
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Validate edit safety - check if the edit is potentially destructive.
|
|
42
|
+
* Returns rejection message if edit should be blocked, warning if concerning, null if safe.
|
|
43
|
+
*/
|
|
44
|
+
function validateEditSafety(oldString, newString, totalFileLines, filePath) {
|
|
45
|
+
const oldLines = oldString.split('\n').length;
|
|
46
|
+
const newLines = newString.split('\n').length;
|
|
47
|
+
const removedLines = Math.max(0, oldLines - newLines);
|
|
48
|
+
const removalPercentage = totalFileLines > 0 ? (removedLines / totalFileLines) * 100 : 0;
|
|
49
|
+
let warning = null;
|
|
50
|
+
let shouldBackup = false;
|
|
51
|
+
// Check size ratio (old_string suspiciously larger than new_string)
|
|
52
|
+
// This catches cases where the LLM accidentally included too much content
|
|
53
|
+
if (oldString.length > EDIT_SAFETY.SIZE_RATIO_MIN_CHARS) {
|
|
54
|
+
const sizeRatio = oldString.length / Math.max(1, newString.length);
|
|
55
|
+
if (sizeRatio > EDIT_SAFETY.MAX_SIZE_RATIO) {
|
|
56
|
+
const rejection = [
|
|
57
|
+
`⚠ SUSPICIOUS EDIT REJECTED`,
|
|
58
|
+
``,
|
|
59
|
+
`old_string: ${oldString.length} chars (${oldLines} lines)`,
|
|
60
|
+
`new_string: ${newString.length} chars (${newLines} lines)`,
|
|
61
|
+
`Size ratio: ${sizeRatio.toFixed(1)}x (max allowed: ${EDIT_SAFETY.MAX_SIZE_RATIO}x)`,
|
|
62
|
+
``,
|
|
63
|
+
`This usually indicates an error - old_string contains more content than intended.`,
|
|
64
|
+
`The edit would remove ${removedLines} lines (${removalPercentage.toFixed(1)}% of file).`,
|
|
65
|
+
``,
|
|
66
|
+
`To fix:`,
|
|
67
|
+
`1. Use a smaller, more targeted old_string`,
|
|
68
|
+
`2. Break the edit into multiple smaller changes`,
|
|
69
|
+
`3. Only include the specific lines you want to change`,
|
|
70
|
+
``,
|
|
71
|
+
`File: ${filePath}`,
|
|
72
|
+
].join('\n');
|
|
73
|
+
return { rejection, warning: null, shouldBackup: true };
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
// Check if removing a significant portion of the file
|
|
77
|
+
if (removedLines > EDIT_SAFETY.MAX_REMOVED_LINES_WARN) {
|
|
78
|
+
warning = `⚠ Large edit: removing ${removedLines} lines (${removalPercentage.toFixed(1)}% of file)`;
|
|
79
|
+
shouldBackup = true;
|
|
80
|
+
}
|
|
81
|
+
else if (removalPercentage > EDIT_SAFETY.MAX_REMOVAL_PERCENTAGE && removedLines > 10) {
|
|
82
|
+
warning = `⚠ Large edit: removing ${removalPercentage.toFixed(1)}% of file (${removedLines} lines)`;
|
|
83
|
+
shouldBackup = true;
|
|
84
|
+
}
|
|
85
|
+
// Check if should create backup
|
|
86
|
+
if (removedLines > EDIT_SAFETY.BACKUP_THRESHOLD_LINES) {
|
|
87
|
+
shouldBackup = true;
|
|
88
|
+
}
|
|
89
|
+
return { rejection: null, warning, shouldBackup };
|
|
90
|
+
}
|
|
6
91
|
/**
|
|
7
92
|
* Creates the Edit tool for surgical file modifications using exact string replacement.
|
|
8
93
|
*
|
|
@@ -66,14 +151,20 @@ export function createEditTools(workingDir) {
|
|
|
66
151
|
}
|
|
67
152
|
try {
|
|
68
153
|
const filePath = resolveFilePath(workingDir, pathArg);
|
|
69
|
-
// Check if file exists
|
|
154
|
+
// Check if file exists and is not a directory
|
|
70
155
|
let fileExists = true;
|
|
156
|
+
let isDirectory = false;
|
|
71
157
|
try {
|
|
72
|
-
await stat(filePath);
|
|
158
|
+
const fileStat = await stat(filePath);
|
|
159
|
+
isDirectory = fileStat.isDirectory();
|
|
73
160
|
}
|
|
74
161
|
catch {
|
|
75
162
|
fileExists = false;
|
|
76
163
|
}
|
|
164
|
+
// Reject directory paths
|
|
165
|
+
if (isDirectory) {
|
|
166
|
+
return `Error: Cannot edit a directory: ${filePath}\n\nProvide a file path, not a directory path.`;
|
|
167
|
+
}
|
|
77
168
|
// Handle file creation when old_string is empty and file doesn't exist
|
|
78
169
|
if (!fileExists) {
|
|
79
170
|
if (oldString !== '') {
|
|
@@ -130,6 +221,18 @@ export function createEditTools(workingDir) {
|
|
|
130
221
|
if (!replaceAll && occurrences > 1) {
|
|
131
222
|
return `Error: old_string appears ${occurrences} times in the file. Either:\n1. Provide a larger unique string that includes more context\n2. Set replace_all: true to replace all ${occurrences} occurrences\n\nFile: ${filePath}`;
|
|
132
223
|
}
|
|
224
|
+
// Validate edit safety - prevent accidentally destructive edits
|
|
225
|
+
const totalFileLines = currentContent.split('\n').length;
|
|
226
|
+
const safety = validateEditSafety(matchedOldString, newString, totalFileLines, filePath);
|
|
227
|
+
// Reject suspicious edits (e.g., old_string is 15x larger than new_string)
|
|
228
|
+
if (safety.rejection) {
|
|
229
|
+
return safety.rejection;
|
|
230
|
+
}
|
|
231
|
+
// Create backup if this is a risky edit
|
|
232
|
+
let backupPath = null;
|
|
233
|
+
if (safety.shouldBackup) {
|
|
234
|
+
backupPath = await createEditBackup(workingDir, filePath);
|
|
235
|
+
}
|
|
133
236
|
// Perform replacement using the matched string (may be auto-corrected)
|
|
134
237
|
const newContent = replaceAll
|
|
135
238
|
? currentContent.split(matchedOldString).join(newString)
|
|
@@ -151,13 +254,24 @@ export function createEditTools(workingDir) {
|
|
|
151
254
|
// Colorize the change summary: green for additions, red for removals
|
|
152
255
|
const addedText = theme.diff.added(`+${addedLines}`);
|
|
153
256
|
const removedText = theme.diff.removed(`-${removedLines}`);
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
257
|
+
// Build result message with optional warning and backup info
|
|
258
|
+
const resultParts = [];
|
|
259
|
+
// Add warning if present
|
|
260
|
+
if (safety.warning) {
|
|
261
|
+
resultParts.push(safety.warning);
|
|
262
|
+
resultParts.push('');
|
|
263
|
+
}
|
|
264
|
+
resultParts.push(`✓ Edited ${displayPath}${occurrencesText}`);
|
|
265
|
+
resultParts.push(`Lines changed: ${addedText} / ${removedText}`);
|
|
266
|
+
// Add backup info if created
|
|
267
|
+
if (backupPath) {
|
|
268
|
+
const relBackup = relative(workingDir, backupPath);
|
|
269
|
+
resultParts.push(`Backup: ${relBackup}`);
|
|
270
|
+
}
|
|
271
|
+
resultParts.push('');
|
|
272
|
+
resultParts.push('Diff preview:');
|
|
273
|
+
resultParts.push(diffBlock);
|
|
274
|
+
return resultParts.join('\n');
|
|
161
275
|
}
|
|
162
276
|
catch (error) {
|
|
163
277
|
return buildError('editing file', error, {
|
|
@@ -237,6 +351,19 @@ function tryAutoCorrectMatch(content, oldString) {
|
|
|
237
351
|
}
|
|
238
352
|
}
|
|
239
353
|
}
|
|
354
|
+
// Strategy 7: Single-line exact trimmed match
|
|
355
|
+
// Find a line in the file that matches when trimmed (handles tabs/spaces/indentation differences)
|
|
356
|
+
if (!oldString.includes('\n')) {
|
|
357
|
+
const searchTrimmed = oldString.trim();
|
|
358
|
+
if (searchTrimmed) {
|
|
359
|
+
const contentLines = content.split('\n');
|
|
360
|
+
for (const line of contentLines) {
|
|
361
|
+
if (line.trim() === searchTrimmed) {
|
|
362
|
+
return line;
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
}
|
|
240
367
|
return null;
|
|
241
368
|
}
|
|
242
369
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editTools.js","sourceRoot":"","sources":["../../src/tools/editTools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"editTools.js","sourceRoot":"","sources":["../../src/tools/editTools.ts"],"names":[],"mappings":"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"}
|
|
@@ -352,6 +352,11 @@ export declare class PinnedChatBox {
|
|
|
352
352
|
handleInput(char: string): void;
|
|
353
353
|
/**
|
|
354
354
|
* Handle multiline paste - show full content for small pastes, summary for large ones
|
|
355
|
+
* CRITICAL: Must work correctly in all circumstances:
|
|
356
|
+
* - During streaming (scroll region active)
|
|
357
|
+
* - During idle (normal readline mode)
|
|
358
|
+
* - Small pastes (≤5 lines AND ≤300 chars) - show full content
|
|
359
|
+
* - Large pastes - show condensed summary
|
|
355
360
|
*/
|
|
356
361
|
private handleMultilinePaste;
|
|
357
362
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persistentPrompt.d.ts","sourceRoot":"","sources":["../../src/ui/persistentPrompt.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"persistentPrompt.d.ts","sourceRoot":"","sources":["../../src/ui/persistentPrompt.ts"],"names":[],"mappings":"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"}
|
|
@@ -354,8 +354,8 @@ export class PinnedChatBox {
|
|
|
354
354
|
const rows = this.writeStream.rows || 24;
|
|
355
355
|
const cols = Math.max(this.writeStream.columns || 80, 40);
|
|
356
356
|
const borderWidth = cols - 2;
|
|
357
|
-
//
|
|
358
|
-
|
|
357
|
+
// Calculate starting row (4 lines: top border + input + bottom border + status)
|
|
358
|
+
let currentRow = rows - 3;
|
|
359
359
|
// Build status line
|
|
360
360
|
const queueCount = this.state.queuedCommands.length;
|
|
361
361
|
let statusText = '';
|
|
@@ -364,21 +364,25 @@ export class PinnedChatBox {
|
|
|
364
364
|
const queuePart = queueCount > 0 ? ` +${queueCount}` : '';
|
|
365
365
|
statusText = `${icon}${queuePart} [Enter: queue]`;
|
|
366
366
|
}
|
|
367
|
+
// Use absolute row positioning to prevent scroll history leakage
|
|
367
368
|
// Top border with status on right
|
|
368
369
|
const statusSuffix = statusText ? ` ${statusText}` : '';
|
|
369
370
|
const topBorderWidth = Math.max(10, borderWidth - statusSuffix.length);
|
|
370
|
-
this.safeWrite(ANSI.CLEAR_LINE);
|
|
371
|
+
this.safeWrite(`\u001b[${currentRow};1H${ANSI.CLEAR_LINE}`);
|
|
371
372
|
this.safeWrite(theme.ui.border('─'.repeat(topBorderWidth)) + theme.ui.muted(statusSuffix));
|
|
373
|
+
currentRow++;
|
|
372
374
|
// Input line with prompt
|
|
373
|
-
this.safeWrite(`\
|
|
375
|
+
this.safeWrite(`\u001b[${currentRow};1H${ANSI.CLEAR_LINE}`);
|
|
374
376
|
this.safeWrite(theme.ui.muted('> '));
|
|
377
|
+
currentRow++;
|
|
375
378
|
// Bottom border
|
|
376
|
-
this.safeWrite(`\
|
|
379
|
+
this.safeWrite(`\u001b[${currentRow};1H${ANSI.CLEAR_LINE}`);
|
|
377
380
|
this.safeWrite(theme.ui.border('─'.repeat(borderWidth)));
|
|
381
|
+
currentRow++;
|
|
378
382
|
// Status line (context + time)
|
|
379
383
|
const contextTimeLine = this.buildContextTimeStatus(cols);
|
|
380
384
|
if (contextTimeLine) {
|
|
381
|
-
this.safeWrite(`\
|
|
385
|
+
this.safeWrite(`\u001b[${currentRow};1H${ANSI.CLEAR_LINE}`);
|
|
382
386
|
this.safeWrite(contextTimeLine);
|
|
383
387
|
}
|
|
384
388
|
}
|
|
@@ -473,12 +477,15 @@ export class PinnedChatBox {
|
|
|
473
477
|
// Calculate dynamic height based on input content
|
|
474
478
|
const inputLines = this.calculateInputLines(cols);
|
|
475
479
|
const totalHeight = inputLines + 3; // top border + input + bottom border + status line
|
|
480
|
+
// Calculate starting row for the chat box (reserved area at bottom)
|
|
481
|
+
const startRow = rows - totalHeight + 1;
|
|
482
|
+
let currentRow = startRow;
|
|
476
483
|
// Build the entire output as a single string for atomic write
|
|
477
484
|
const output = [];
|
|
478
|
-
//
|
|
479
|
-
//
|
|
480
|
-
//
|
|
481
|
-
|
|
485
|
+
// CRITICAL: Use absolute row positioning instead of newlines (\n).
|
|
486
|
+
// Newlines cause content to be added to the terminal's scroll buffer,
|
|
487
|
+
// which makes the chat box appear multiple times when scrolling back.
|
|
488
|
+
// With absolute positioning, we overwrite the same rows in place.
|
|
482
489
|
// Build status indicators for top border
|
|
483
490
|
const queueCount = this.state.queuedCommands.length;
|
|
484
491
|
let statusText = '';
|
|
@@ -494,25 +501,25 @@ export class PinnedChatBox {
|
|
|
494
501
|
const statusSuffix = statusText ? ` ${statusText}` : '';
|
|
495
502
|
const topBorderWidth = Math.max(10, borderWidth - statusSuffix.length);
|
|
496
503
|
const topBorder = theme.ui.border('─'.repeat(topBorderWidth)) + theme.ui.muted(statusSuffix);
|
|
497
|
-
output.push(ANSI.CLEAR_LINE);
|
|
498
|
-
|
|
504
|
+
output.push(`\u001b[${currentRow};1H${ANSI.CLEAR_LINE}${topBorder}`);
|
|
505
|
+
currentRow++;
|
|
499
506
|
// Input lines
|
|
500
507
|
const currentInput = this.inputBuffer;
|
|
501
508
|
const contentWidth = cols - 4;
|
|
502
509
|
if (!currentInput) {
|
|
503
510
|
// Empty input - show just the prompt
|
|
504
|
-
output.push(`\
|
|
505
|
-
output.push(theme.ui.muted('> '));
|
|
511
|
+
output.push(`\u001b[${currentRow};1H${ANSI.CLEAR_LINE}${theme.ui.muted('> ')}`);
|
|
506
512
|
// Visual cursor at prompt position
|
|
507
513
|
if (this.showCursor) {
|
|
508
514
|
output.push('\u001b[7m \u001b[27m'); // Inverted space for cursor
|
|
509
515
|
}
|
|
516
|
+
currentRow++;
|
|
510
517
|
}
|
|
511
518
|
else {
|
|
512
519
|
// Wrap input text into display lines
|
|
513
520
|
const displayLines = this.wrapInputForDisplay(currentInput, contentWidth, inputLines);
|
|
514
521
|
for (let i = 0; i < displayLines.length; i++) {
|
|
515
|
-
output.push(`\
|
|
522
|
+
output.push(`\u001b[${currentRow};1H${ANSI.CLEAR_LINE}`);
|
|
516
523
|
const lineContent = displayLines[i] ?? '';
|
|
517
524
|
const isFirstLine = i === 0;
|
|
518
525
|
const prompt = isFirstLine ? theme.ui.muted('> ') : ' ';
|
|
@@ -532,6 +539,7 @@ export class PinnedChatBox {
|
|
|
532
539
|
else {
|
|
533
540
|
output.push(lineContent);
|
|
534
541
|
}
|
|
542
|
+
currentRow++;
|
|
535
543
|
}
|
|
536
544
|
// Show truncation indicator if content exceeds max lines
|
|
537
545
|
if (this.inputBuffer.split('\n').length > this.maxInputLines ||
|
|
@@ -543,18 +551,15 @@ export class PinnedChatBox {
|
|
|
543
551
|
}
|
|
544
552
|
}
|
|
545
553
|
// Bottom border (full width)
|
|
546
|
-
output.push(`\
|
|
547
|
-
|
|
554
|
+
output.push(`\u001b[${currentRow};1H${ANSI.CLEAR_LINE}${theme.ui.border('─'.repeat(borderWidth))}`);
|
|
555
|
+
currentRow++;
|
|
548
556
|
// Status line below: Context usage and session elapsed time
|
|
549
557
|
const statusLine = this.buildContextTimeStatus(cols);
|
|
550
558
|
if (statusLine) {
|
|
551
|
-
output.push(`\
|
|
552
|
-
output.push(statusLine);
|
|
559
|
+
output.push(`\u001b[${currentRow};1H${ANSI.CLEAR_LINE}${statusLine}`);
|
|
553
560
|
}
|
|
554
561
|
// Move cursor back to the bottom of the scroll region
|
|
555
562
|
// This ensures subsequent streaming output appears in the correct place
|
|
556
|
-
// Using explicit positioning instead of cursor save/restore prevents
|
|
557
|
-
// the chat box content from leaking into the scroll history
|
|
558
563
|
output.push(`\u001b[${this.scrollRegionBottomRow};1H`);
|
|
559
564
|
// Ensure terminal cursor stays hidden in the stream area
|
|
560
565
|
// We show a visual cursor (inverted block) in the chat box instead
|
|
@@ -920,6 +925,11 @@ export class PinnedChatBox {
|
|
|
920
925
|
}
|
|
921
926
|
/**
|
|
922
927
|
* Handle multiline paste - show full content for small pastes, summary for large ones
|
|
928
|
+
* CRITICAL: Must work correctly in all circumstances:
|
|
929
|
+
* - During streaming (scroll region active)
|
|
930
|
+
* - During idle (normal readline mode)
|
|
931
|
+
* - Small pastes (≤5 lines AND ≤300 chars) - show full content
|
|
932
|
+
* - Large pastes - show condensed summary
|
|
923
933
|
*/
|
|
924
934
|
handleMultilinePaste(content) {
|
|
925
935
|
const lines = content.split('\n');
|
|
@@ -944,7 +954,15 @@ export class PinnedChatBox {
|
|
|
944
954
|
this.cursorPosition = summary.length;
|
|
945
955
|
this.state.currentInput = summary;
|
|
946
956
|
}
|
|
947
|
-
|
|
957
|
+
// Use consistent rendering approach as handleInput:
|
|
958
|
+
// During streaming with scroll region active, render immediately
|
|
959
|
+
// Otherwise use scheduled render
|
|
960
|
+
if (this.scrollRegionActive && this.state.isProcessing) {
|
|
961
|
+
this.renderPersistentInput();
|
|
962
|
+
}
|
|
963
|
+
else {
|
|
964
|
+
this.scheduleRender();
|
|
965
|
+
}
|
|
948
966
|
}
|
|
949
967
|
/**
|
|
950
968
|
* Generate a short summary of pasted content for display
|