mirror of
https://github.com/atom/atom.git
synced 2026-04-28 03:01:47 -04:00
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:
@@ -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')
|
||||
})
|
||||
|
||||
@@ -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(() => {
|
||||
|
||||
Reference in New Issue
Block a user