Fix failure to emit did-change-highlighting event

This commit is contained in:
Max Brunsfeld
2018-11-08 12:30:39 -08:00
parent 5910a8f7e9
commit 32d632ba9e
3 changed files with 19 additions and 13 deletions

6
package-lock.json generated
View File

@@ -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"

View File

@@ -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",

View File

@@ -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
}
}
}