mirror of
https://github.com/atom/atom.git
synced 2026-04-06 03:02:13 -04:00
Only update injections intersecting changed ranges
This commit is contained in:
@@ -474,13 +474,14 @@ class LanguageLayer {
|
||||
let affectedRange
|
||||
let existingInjectionMarkers
|
||||
if (this.tree) {
|
||||
const changedTokenRange = this.tree.getEditedRange()
|
||||
affectedRange = new Range(changedTokenRange.startPosition, changedTokenRange.endPosition)
|
||||
|
||||
const rangesWithSyntaxChanges = this.tree.getChangedRanges(tree)
|
||||
for (const range of rangesWithSyntaxChanges) {
|
||||
emitRangeUpdate(new Range(range.startPosition, range.endPosition))
|
||||
}
|
||||
|
||||
affectedRange = new Range(Point.ZERO, Point.INFINITY)
|
||||
|
||||
if (rangesWithSyntaxChanges.length > 0) {
|
||||
affectedRange = affectedRange.union(new Range(
|
||||
rangesWithSyntaxChanges[0].startPosition,
|
||||
@@ -515,6 +516,7 @@ class LanguageLayer {
|
||||
if (!grammar) continue
|
||||
|
||||
const injectionNode = injectionPoint.content(node)
|
||||
if (!injectionNode) continue
|
||||
|
||||
const injectionRange = new Range(injectionNode.startPosition, injectionNode.endPosition)
|
||||
let marker = existingInjectionMarkers.find(m => m.getRange().isEqual(injectionRange))
|
||||
|
||||
Reference in New Issue
Block a user