Use new .bufferDidFinishTransaction language mode hook

This commit is contained in:
Max Brunsfeld
2018-11-19 22:48:24 -08:00
parent a384dde3f5
commit 31a321a7cf
4 changed files with 19 additions and 19 deletions

View File

@@ -375,6 +375,8 @@ class TextMateLanguageMode {
}
}
bufferDidFinishTransaction () {}
isFoldableAtRow (row) {
return this.endRowForFoldAtRow(row, 1, true) != null
}

View File

@@ -46,20 +46,6 @@ class TreeSitterLanguageMode {
this.grammarForLanguageString = this.grammarForLanguageString.bind(this)
this.subscription = this.buffer.onDidChangeText(({changes}) => {
for (let i = 0, {length} = changes; i < length; i++) {
const {oldRange, newRange} = changes[i]
spliceArray(
this.isFoldableCache,
newRange.start.row,
oldRange.end.row - oldRange.start.row,
{length: newRange.end.row - newRange.start.row}
)
}
this.rootLanguageLayer.update(null)
})
this.rootLanguageLayer.update(null).then(() =>
this.emitter.emit('did-tokenize')
)
@@ -90,7 +76,6 @@ class TreeSitterLanguageMode {
destroy () {
this.injectionsMarkerLayer.destroy()
this.subscription.dispose()
this.rootLanguageLayer = null
this.parser = null
}
@@ -109,6 +94,19 @@ class TreeSitterLanguageMode {
}
}
bufferDidFinishTransaction (changes) {
for (let i = 0, {length} = changes; i < length; i++) {
const {oldRange, newRange} = changes[i]
spliceArray(
this.isFoldableCache,
newRange.start.row,
oldRange.end.row - oldRange.start.row,
{length: newRange.end.row - newRange.start.row}
)
}
this.rootLanguageLayer.update(null)
}
parse (language, oldTree, ranges) {
const parser = PARSER_POOL.pop() || new Parser()
parser.setLanguage(language)