Use atom's null grammar when assignLanguageMode is called w/ null

This commit is contained in:
Max Brunsfeld
2017-11-21 14:59:42 -08:00
parent 93f5ab4780
commit be3010e8f7
2 changed files with 9 additions and 7 deletions

View File

@@ -1,4 +1,4 @@
const {it, fit, ffit, fffit, beforeEach, afterEach, conditionPromise, timeoutPromise} = require('./async-spec-helpers')
const {it, fit, ffit, fffit, beforeEach, afterEach} = require('./async-spec-helpers')
const path = require('path')
const fs = require('fs-plus')
@@ -43,7 +43,7 @@ describe('GrammarRegistry', () => {
expect(buffer.getLanguageMode().getLanguageName()).toBe('CSS')
expect(grammarRegistry.assignLanguageMode(buffer, null)).toBe(true)
expect(buffer.getLanguageMode().getLanguageName()).toBe('None')
expect(buffer.getLanguageMode().getLanguageName()).toBe('Null Grammar')
})
})
})

View File

@@ -89,12 +89,14 @@ class GrammarRegistry extends FirstMate.GrammarRegistry {
grammar = this.grammarForLanguageName(lowercaseLanguageName)
if (!grammar) return false
this.languageNameOverridesByBufferId.set(buffer.id, lowercaseLanguageName)
this.grammarScoresByBuffer.set(buffer, null)
if (grammar.name !== buffer.getLanguageMode().getLanguageName()) {
buffer.setLanguageMode(this.languageModeForGrammarAndBuffer(grammar, buffer))
}
} else {
buffer.setLanguageMode(null)
this.languageNameOverridesByBufferId.set(buffer.id, null)
grammar = this.nullGrammar
}
this.grammarScoresByBuffer.set(buffer, null)
if (grammar.name !== buffer.getLanguageMode().getLanguageName()) {
buffer.setLanguageMode(this.languageModeForGrammarAndBuffer(grammar, buffer))
}
return true