Răsfoiți Sursa

Merge pull request #19424 from overleaf/jdt-batch-spelling-line-tracker-updates

Line changes spread into array (avoiding max call stack)

GitOrigin-RevId: a60520b2aff18603bfe96b92abf305576661223a
Jimmy Domagala-Tang 2 ani în urmă
părinte
comite
cb6deab3a9

+ 7 - 11
services/web/frontend/js/features/source-editor/extensions/spelling/line-tracker.ts

@@ -113,18 +113,14 @@ export class LineTracker {
                */
 
               const changes = new Array(insertedText.lines).fill(true)
-              try {
-                this._lines.splice(startLine - 1 + lineShift, 1, ...changes)
-                lineShift += changes.length - 1
-              } catch (error) {
-                if (error instanceof RangeError) {
-                  throw new OError(error.message).withInfo({
-                    changesSize: changes.length,
-                  })
-                }
+              const index = startLine - 1 + lineShift
 
-                throw error
-              }
+              this._lines = [
+                ...this._lines.slice(0, index),
+                ...changes,
+                ...this._lines.slice(index + 1),
+              ]
+              lineShift += changes.length - 1
             }
           }
         )