Skip to content
Permalink
Browse files

Make assignLanguageMode take a language id instead of a language name

  • Loading branch information...
maxbrunsfeld committed Nov 28, 2017
1 parent a1fc5ef commit e08091f19343ae8fa6c4446bef5d3f2a880e6e63
@@ -32,7 +32,7 @@ module.exports = async ({test}) => {
let t0 = window.performance.now()
const buffer = new TextBuffer({text})
const editor = new TextEditor({buffer, autoHeight: false, largeFileMode: true})
atom.grammars.assignLanguageMode(buffer, 'javascript')
atom.grammars.assignLanguageMode(buffer, 'source.js')
atom.workspace.getActivePane().activateItem(editor)
let t1 = window.performance.now()

@@ -70,7 +70,7 @@
"service-hub": "^0.7.4",
"sinon": "1.17.4",
"temp": "^0.8.3",
"text-buffer": "13.9.0",
"text-buffer": "13.9.1",
"typescript-simple": "1.0.0",
"underscore-plus": "^1.6.6",
"winreg": "^1.2.1",
@@ -303,7 +303,7 @@ describe('AtomEnvironment', () => {
it('serializes the text editor registry', async () => {
await atom.packages.activatePackage('language-text')
const editor = await atom.workspace.open('sample.js')
expect(atom.grammars.assignLanguageMode(editor, 'plain text')).toBe(true)
expect(atom.grammars.assignLanguageMode(editor, 'text.plain')).toBe(true)

const atom2 = new AtomEnvironment({
applicationDelegate: atom.applicationDelegate,
@@ -321,7 +321,7 @@ describe('AtomEnvironment', () => {
await atom2.deserialize(atom.serialize())
await atom2.packages.activatePackage('language-text')
const editor2 = atom2.workspace.getActiveTextEditor()
expect(editor2.getBuffer().getLanguageMode().getLanguageName()).toBe('Plain Text')
expect(editor2.getBuffer().getLanguageMode().getLanguageId()).toBe('text.plain')
atom2.destroy()
})

@@ -19,31 +19,31 @@ describe('GrammarRegistry', () => {
grammarRegistry.loadGrammarSync(require.resolve('language-css/grammars/css.cson'))

const buffer = new TextBuffer()
expect(grammarRegistry.assignLanguageMode(buffer, 'javascript')).toBe(true)
expect(buffer.getLanguageMode().getLanguageName()).toBe('JavaScript')
expect(grammarRegistry.assignLanguageMode(buffer, 'source.js')).toBe(true)
expect(buffer.getLanguageMode().getLanguageId()).toBe('source.js')

// Returns true if we found the grammar, even if it didn't change
expect(grammarRegistry.assignLanguageMode(buffer, 'javascript')).toBe(true)
expect(grammarRegistry.assignLanguageMode(buffer, 'source.js')).toBe(true)

// Language names are not case-sensitive
expect(grammarRegistry.assignLanguageMode(buffer, 'css')).toBe(true)
expect(buffer.getLanguageMode().getLanguageName()).toBe('CSS')
expect(grammarRegistry.assignLanguageMode(buffer, 'source.css')).toBe(true)
expect(buffer.getLanguageMode().getLanguageId()).toBe('source.css')

// Returns false if no language is found
expect(grammarRegistry.assignLanguageMode(buffer, 'blub')).toBe(false)
expect(buffer.getLanguageMode().getLanguageName()).toBe('CSS')
expect(buffer.getLanguageMode().getLanguageId()).toBe('source.css')
})

describe('when no languageName is passed', () => {
it('makes the buffer use the null grammar', () => {
grammarRegistry.loadGrammarSync(require.resolve('language-css/grammars/css.cson'))

const buffer = new TextBuffer()
expect(grammarRegistry.assignLanguageMode(buffer, 'css')).toBe(true)
expect(buffer.getLanguageMode().getLanguageName()).toBe('CSS')
expect(grammarRegistry.assignLanguageMode(buffer, 'source.css')).toBe(true)
expect(buffer.getLanguageMode().getLanguageId()).toBe('source.css')

expect(grammarRegistry.assignLanguageMode(buffer, null)).toBe(true)
expect(buffer.getLanguageMode().getLanguageName()).toBe('Null Grammar')
expect(buffer.getLanguageMode().getLanguageId()).toBe('text.plain.null-grammar')
})
})
})
@@ -55,11 +55,11 @@ describe('GrammarRegistry', () => {

const buffer = new TextBuffer()
buffer.setPath('foo.js')
expect(grammarRegistry.assignLanguageMode(buffer, 'css')).toBe(true)
expect(buffer.getLanguageMode().getLanguageName()).toBe('CSS')
expect(grammarRegistry.assignLanguageMode(buffer, 'source.css')).toBe(true)
expect(buffer.getLanguageMode().getLanguageId()).toBe('source.css')

grammarRegistry.autoAssignLanguageMode(buffer)
expect(buffer.getLanguageMode().getLanguageName()).toBe('JavaScript')
expect(buffer.getLanguageMode().getLanguageId()).toBe('source.js')
})
})

@@ -72,36 +72,35 @@ describe('GrammarRegistry', () => {

buffer.setPath('test.js')
grammarRegistry.maintainLanguageMode(buffer)
expect(buffer.getLanguageMode().getLanguageName()).toBe('JavaScript')
expect(buffer.getLanguageMode().getLanguageId()).toBe('source.js')

buffer.setPath('test.c')
expect(buffer.getLanguageMode().getLanguageName()).toBe('C')
expect(buffer.getLanguageMode().getLanguageId()).toBe('source.c')
})

it('updates the buffer\'s grammar when a more appropriate grammar is added for its path', async () => {
const buffer = new TextBuffer()
expect(buffer.getLanguageMode().getLanguageName()).toBe('None')
expect(buffer.getLanguageMode().getLanguageId()).toBe(null)

buffer.setPath('test.js')
grammarRegistry.maintainLanguageMode(buffer)

grammarRegistry.loadGrammarSync(require.resolve('language-javascript/grammars/javascript.cson'))
expect(buffer.getLanguageMode().getLanguageName()).toBe('JavaScript')
expect(buffer.getLanguageMode().getLanguageId()).toBe('source.js')
})

it('can be overridden by calling .assignLanguageMode', () => {
const buffer = new TextBuffer()
expect(buffer.getLanguageMode().getLanguageName()).toBe('None')

buffer.setPath('test.js')
grammarRegistry.maintainLanguageMode(buffer)

grammarRegistry.loadGrammarSync(require.resolve('language-css/grammars/css.cson'))
expect(grammarRegistry.assignLanguageMode(buffer, 'css')).toBe(true)
expect(buffer.getLanguageMode().getLanguageName()).toBe('CSS')
expect(grammarRegistry.assignLanguageMode(buffer, 'source.css')).toBe(true)
expect(buffer.getLanguageMode().getLanguageId()).toBe('source.css')

grammarRegistry.loadGrammarSync(require.resolve('language-javascript/grammars/javascript.cson'))
expect(buffer.getLanguageMode().getLanguageName()).toBe('CSS')
expect(buffer.getLanguageMode().getLanguageId()).toBe('source.css')
})

it('returns a disposable that can be used to stop the registry from updating the buffer', async () => {
@@ -114,17 +113,17 @@ describe('GrammarRegistry', () => {
expect(retainedBufferCount(grammarRegistry)).toBe(1)

buffer.setPath('test.js')
expect(buffer.getLanguageMode().getLanguageName()).toBe('JavaScript')
expect(buffer.getLanguageMode().getLanguageId()).toBe('source.js')

buffer.setPath('test.txt')
expect(buffer.getLanguageMode().getLanguageName()).toBe('Null Grammar')
expect(buffer.getLanguageMode().getLanguageId()).toBe('text.plain.null-grammar')

disposable.dispose()
expect(buffer.emitter.getTotalListenerCount()).toBe(previousSubscriptionCount)
expect(retainedBufferCount(grammarRegistry)).toBe(0)

buffer.setPath('test.js')
expect(buffer.getLanguageMode().getLanguageName()).toBe('Null Grammar')
expect(buffer.getLanguageMode().getLanguageId()).toBe('text.plain.null-grammar')
expect(retainedBufferCount(grammarRegistry)).toBe(0)
})

@@ -135,15 +134,15 @@ describe('GrammarRegistry', () => {
const disposable2 = grammarRegistry.maintainLanguageMode(buffer)

buffer.setPath('test.js')
expect(buffer.getLanguageMode().getLanguageName()).toBe('JavaScript')
expect(buffer.getLanguageMode().getLanguageId()).toBe('source.js')

disposable2.dispose()
buffer.setPath('test.txt')
expect(buffer.getLanguageMode().getLanguageName()).toBe('Null Grammar')
expect(buffer.getLanguageMode().getLanguageId()).toBe('text.plain.null-grammar')

disposable1.dispose()
buffer.setPath('test.js')
expect(buffer.getLanguageMode().getLanguageName()).toBe('Null Grammar')
expect(buffer.getLanguageMode().getLanguageId()).toBe('text.plain.null-grammar')
})

it('does not retain the buffer after the buffer is destroyed', () => {
@@ -358,8 +357,8 @@ describe('GrammarRegistry', () => {

grammarRegistry.maintainLanguageMode(buffer1)
grammarRegistry.maintainLanguageMode(buffer2)
grammarRegistry.assignLanguageMode(buffer1, 'c')
grammarRegistry.assignLanguageMode(buffer2, 'javascript')
grammarRegistry.assignLanguageMode(buffer1, 'source.c')
grammarRegistry.assignLanguageMode(buffer2, 'source.js')

const buffer1Copy = await TextBuffer.deserialize(buffer1.serialize())
const buffer2Copy = await TextBuffer.deserialize(buffer2.serialize())
@@ -370,17 +369,17 @@ describe('GrammarRegistry', () => {
grammarRegistryCopy.loadGrammarSync(require.resolve('language-c/grammars/c.cson'))
grammarRegistryCopy.loadGrammarSync(require.resolve('language-html/grammars/html.cson'))

expect(buffer1Copy.getLanguageMode().getLanguageName()).toBe('None')
expect(buffer2Copy.getLanguageMode().getLanguageName()).toBe('None')
expect(buffer1Copy.getLanguageMode().getLanguageId()).toBe(null)
expect(buffer2Copy.getLanguageMode().getLanguageId()).toBe(null)

grammarRegistryCopy.maintainLanguageMode(buffer1Copy)
grammarRegistryCopy.maintainLanguageMode(buffer2Copy)
expect(buffer1Copy.getLanguageMode().getLanguageName()).toBe('C')
expect(buffer2Copy.getLanguageMode().getLanguageName()).toBe('None')
expect(buffer1Copy.getLanguageMode().getLanguageId()).toBe('source.c')
expect(buffer2Copy.getLanguageMode().getLanguageId()).toBe(null)

grammarRegistryCopy.loadGrammarSync(require.resolve('language-javascript/grammars/javascript.cson'))
expect(buffer1Copy.getLanguageMode().getLanguageName()).toBe('C')
expect(buffer2Copy.getLanguageMode().getLanguageName()).toBe('JavaScript')
expect(buffer1Copy.getLanguageMode().getLanguageId()).toBe('source.c')
expect(buffer2Copy.getLanguageMode().getLanguageId()).toBe('source.js')
})
})
})
@@ -795,7 +795,7 @@ describe('TextEditorComponent', () => {
const {editor, element, component} = buildComponent()
expect(element.dataset.grammar).toBe('text plain null-grammar')

atom.grammars.assignLanguageMode(editor.getBuffer(), 'JavaScript')
atom.grammars.assignLanguageMode(editor.getBuffer(), 'source.js')
await component.getNextUpdatePromise()
expect(element.dataset.grammar).toBe('source js')
})
@@ -18,7 +18,7 @@ describe('TextEditorRegistry', function () {
})

editor = new TextEditor({autoHeight: false})
expect(atom.grammars.assignLanguageMode(editor, 'null grammar')).toBe(true)
expect(atom.grammars.assignLanguageMode(editor, 'text.plain.null-grammar')).toBe(true)
})

afterEach(function () {
@@ -80,7 +80,7 @@ describe('TextEditorRegistry', function () {

const editor2 = new TextEditor()

atom.grammars.assignLanguageMode(editor2, 'javascript')
atom.grammars.assignLanguageMode(editor2, 'source.js')

registry.maintainConfig(editor)
registry.maintainConfig(editor2)
@@ -142,14 +142,14 @@ describe('TextEditorRegistry', function () {
atom.config.set('core.fileEncoding', 'utf16le', {scopeSelector: '.source.js'})
expect(editor.getEncoding()).toBe('utf8')

atom.grammars.assignLanguageMode(editor, 'javascript')
atom.grammars.assignLanguageMode(editor, 'source.js')
await initialPackageActivation
expect(editor.getEncoding()).toBe('utf16le')

atom.config.set('core.fileEncoding', 'utf16be', {scopeSelector: '.source.js'})
expect(editor.getEncoding()).toBe('utf16be')

atom.grammars.assignLanguageMode(editor, 'null grammar')
atom.grammars.assignLanguageMode(editor, 'text.plain.null-grammar')
await initialPackageActivation
expect(editor.getEncoding()).toBe('utf8')
})
@@ -219,7 +219,7 @@ describe('TextEditorRegistry', function () {
describe('when the "tabType" config setting is "auto"', function () {
it('enables or disables soft tabs based on the editor\'s content', async function () {
await atom.packages.activatePackage('language-javascript')
atom.grammars.assignLanguageMode(editor, 'javascript')
atom.grammars.assignLanguageMode(editor, 'source.js')
atom.config.set('editor.tabType', 'auto')

registry.maintainConfig(editor)
@@ -1341,7 +1341,7 @@ describe('TextEditor', () => {
})

it('will limit paragraph range to comments', () => {
atom.grammars.assignLanguageMode(editor.getBuffer(), 'javascript')
atom.grammars.assignLanguageMode(editor.getBuffer(), 'source.js')
editor.setText(dedent`
var quicksort = function () {
/* Single line comment block */
@@ -3678,7 +3678,7 @@ describe('TextEditor', () => {
describe('when a newline is appended with a trailing closing tag behind the cursor (e.g. by pressing enter in the middel of a line)', () => {
it('indents the new line to the correct level when editor.autoIndent is true and using a curly-bracket language', () => {
editor.update({autoIndent: true})
atom.grammars.assignLanguageMode(editor, 'javascript')
atom.grammars.assignLanguageMode(editor, 'source.js')
editor.setText('var test = () => {\n return true;};')
editor.setCursorBufferPosition([1, 14])
editor.insertNewline()
@@ -3687,7 +3687,7 @@ describe('TextEditor', () => {
})

it('indents the new line to the current level when editor.autoIndent is true and no increaseIndentPattern is specified', () => {
atom.grammars.assignLanguageMode(editor, 'null grammar')
atom.grammars.assignLanguageMode(editor, null)
editor.update({autoIndent: true})
editor.setText(' if true')
editor.setCursorBufferPosition([0, 8])
@@ -3700,7 +3700,7 @@ describe('TextEditor', () => {
it('indents the new line to the correct level when editor.autoIndent is true and using an off-side rule language', async () => {
await atom.packages.activatePackage('language-coffee-script')
editor.update({autoIndent: true})
atom.grammars.assignLanguageMode(editor, 'coffeescript')
atom.grammars.assignLanguageMode(editor, 'source.coffee')
editor.setText('if true\n return trueelse\n return false')
editor.setCursorBufferPosition([1, 13])
editor.insertNewline()
@@ -3714,7 +3714,7 @@ describe('TextEditor', () => {
it('indents the new line to the correct level when editor.autoIndent is true', async () => {
await atom.packages.activatePackage('language-go')
editor.update({autoIndent: true})
atom.grammars.assignLanguageMode(editor, 'go')
atom.grammars.assignLanguageMode(editor, 'source.go')
editor.setText('fmt.Printf("some%s",\n "thing")')
editor.setCursorBufferPosition([1, 10])
editor.insertNewline()
@@ -5617,7 +5617,7 @@ describe('TextEditor', () => {
editor.onDidTokenize(event => events.push(event))

await atom.packages.activatePackage('language-c')
expect(atom.grammars.assignLanguageMode(editor.getBuffer(), 'c')).toBe(true)
expect(atom.grammars.assignLanguageMode(editor.getBuffer(), 'source.c')).toBe(true)
advanceClock(1)
expect(events.length).toBe(1)
})
@@ -5627,7 +5627,7 @@ describe('TextEditor', () => {
editor.onDidChangeGrammar(grammar => events.push(grammar))

await atom.packages.activatePackage('language-c')
expect(atom.grammars.assignLanguageMode(editor.getBuffer(), 'c')).toBe(true)
expect(atom.grammars.assignLanguageMode(editor.getBuffer(), 'source.c')).toBe(true)
expect(events.length).toBe(1)
expect(events[0].name).toBe('C')
})
@@ -1240,7 +1240,7 @@ describe('Workspace', () => {
await javascriptGrammarUsed

await atom.packages.activatePackage('language-coffee-script')
atom.grammars.assignLanguageMode(editor, 'coffeescript')
atom.grammars.assignLanguageMode(editor, 'source.coffee')
await coffeescriptGrammarUsed
})
})
@@ -1517,7 +1517,7 @@ describe('Workspace', () => {

const editor = await workspace.open('a')

atom.grammars.assignLanguageMode(editor, 'javascript')
atom.grammars.assignLanguageMode(editor, 'source.js')
expect(editor.getGrammar().name).toBe('JavaScript')

workspace.getActivePane().splitRight({copyActiveItem: true})
@@ -2784,12 +2784,12 @@ i = /test/; #FIXME\
expect(javascriptGrammarUsed).toHaveBeenCalled()

// Hooks are triggered when changing existing editors grammars
atom.grammars.assignLanguageMode(atom.workspace.getActiveTextEditor(), 'c')
atom.grammars.assignLanguageMode(atom.workspace.getActiveTextEditor(), 'source.c')
expect(cGrammarUsed).toHaveBeenCalled()

// Hooks are triggered when editors are added in other ways.
atom.workspace.getActivePane().splitRight({copyActiveItem: true})
atom.grammars.assignLanguageMode(atom.workspace.getActiveTextEditor(), 'ruby')
atom.grammars.assignLanguageMode(atom.workspace.getActiveTextEditor(), 'source.ruby')
expect(rubyGrammarUsed).toHaveBeenCalled()
})
})
Oops, something went wrong.

0 comments on commit e08091f

Please sign in to comment.
You can’t perform that action at this time.