Replace TokenizedBuffer.setVisible with simpler .startTokenizing

We will still wait to tokenize a buffer until it is visible in *some*
tab, but we no longer enable and disable tokenization as different
editors become visible.
This commit is contained in:
Max Brunsfeld
2017-11-28 12:12:40 -08:00
parent e08091f193
commit 61ac366491
3 changed files with 17 additions and 17 deletions

View File

@@ -953,8 +953,10 @@ class TextEditor {
// Controls visibility based on the given {Boolean}.
setVisible (visible) {
const languageMode = this.buffer.getLanguageMode()
languageMode.setVisible && languageMode.setVisible(visible)
if (visible) {
const languageMode = this.buffer.getLanguageMode()
if (languageMode.startTokenizing) languageMode.startTokenizing()
}
}
setMini (mini) {
@@ -4130,7 +4132,9 @@ class TextEditor {
}
const languageMode = this.buffer.getLanguageMode()
if (languageMode.setVisible) languageMode.setVisible(this.component && this.component.visible)
if (this.component && this.component.visible && languageMode.startTokenizing) {
languageMode.startTokenizing()
}
this.languageModeSubscription = languageMode.onDidTokenize && languageMode.onDidTokenize(() => {
this.emitter.emit('did-tokenize')
})

View File

@@ -23,7 +23,7 @@ class TokenizedBuffer {
this.regexesByPattern = {}
this.alive = true
this.visible = false
this.tokenizationStarted = false
this.id = params.id != null ? params.id : nextId++
this.buffer = params.buffer
this.largeFileMode = params.largeFileMode
@@ -255,15 +255,15 @@ class TokenizedBuffer {
}
}
setVisible (visible) {
this.visible = visible
if (this.visible && this.grammar.name !== 'Null Grammar' && !this.largeFileMode) {
startTokenizing () {
this.tokenizationStarted = true
if (this.grammar.name !== 'Null Grammar' && !this.largeFileMode) {
this.tokenizeInBackground()
}
}
tokenizeInBackground () {
if (!this.visible || this.pendingChunk || !this.alive) return
if (!this.tokenizationStarted || this.pendingChunk || !this.alive) return
this.pendingChunk = true
_.defer(() => {