diff --git a/package-lock.json b/package-lock.json index a9106f6ca..621a305af 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5529,9 +5529,9 @@ "integrity": "sha512-DlX6dR0lOIRDFxI0mjL9IYg6OTncLm/Zt+JiBhE5OlFcAR8yc9S7FFXU9so0oda47frdM/JFsk7UjNt9vscKcg==" }, "tree-sitter": { - "version": "0.13.17", - "resolved": "https://registry.npmjs.org/tree-sitter/-/tree-sitter-0.13.17.tgz", - "integrity": "sha512-3kDtJdCEeeWn33486QcK4pG5Qb8NRfQZnZFqN0ZrAPwqktleNlPuhxHvd4IZTHIJNz/rSGjLlxBr0j7h7As7XQ==", + "version": "0.13.18", + "resolved": "https://registry.npmjs.org/tree-sitter/-/tree-sitter-0.13.18.tgz", + "integrity": "sha512-PKZ8ktadVboJ8vFhwuqUhv6y4OtHVhwAr9c7SzRwHf7GKEwsJ4ZSCBwUumIHD94qA04lQ6fhnyfmGGlN+KjxAg==", "requires": { "nan": "^2.10.0", "prebuild-install": "^5.0.0" diff --git a/package.json b/package.json index 0b3bad00b..0a48aab9a 100644 --- a/package.json +++ b/package.json @@ -159,7 +159,7 @@ "temp": "^0.8.3", "text-buffer": "13.14.10", "timecop": "https://www.atom.io/api/packages/timecop/versions/0.36.2/tarball", - "tree-sitter": "0.13.17", + "tree-sitter": "0.13.18", "tree-sitter-css": "^0.13.7", "tree-view": "https://www.atom.io/api/packages/tree-view/versions/0.224.2/tarball", "typescript-simple": "1.0.0", diff --git a/src/tree-sitter-language-mode.js b/src/tree-sitter-language-mode.js index cbc800ad2..76da07876 100644 --- a/src/tree-sitter-language-mode.js +++ b/src/tree-sitter-language-mode.js @@ -646,18 +646,22 @@ class LanguageLayer { const rangesWithSyntaxChanges = this.tree.getChangedRanges(tree) this.tree = tree - if (!affectedRange) return if (rangesWithSyntaxChanges.length > 0) { for (const range of rangesWithSyntaxChanges) { this.languageMode.emitRangeUpdate(rangeForNode(range)) } - affectedRange = affectedRange.union(new Range( + const combinedRangeWithSyntaxChange = new Range( rangesWithSyntaxChanges[0].startPosition, last(rangesWithSyntaxChanges).endPosition - )) - } else { - this.languageMode.emitRangeUpdate(affectedRange) + ) + + if (affectedRange) { + this.languageMode.emitRangeUpdate(affectedRange) + affectedRange = affectedRange.union(combinedRangeWithSyntaxChange) + } else { + affectedRange = combinedRangeWithSyntaxChange + } } } else { this.tree = tree @@ -669,10 +673,12 @@ class LanguageLayer { } } - const injectionPromise = this._populateInjections(affectedRange, nodeRangeSet) - if (injectionPromise) { - params.async = true - return injectionPromise + if (affectedRange) { + const injectionPromise = this._populateInjections(affectedRange, nodeRangeSet) + if (injectionPromise) { + params.async = true + return injectionPromise + } } }