mirror of
https://github.com/pulsar-edit/pulsar.git
synced 2024-11-10 10:17:11 +03:00
00f4c7b282
Since this method will now construct a placeholder line, we want to use it only where necessary to keep memory footprint to a minimum.
38 lines
1.1 KiB
CoffeeScript
38 lines
1.1 KiB
CoffeeScript
TextBuffer = require 'text-buffer'
|
|
TokenizedBuffer = require '../src/tokenized-buffer'
|
|
|
|
describe "TokenIterator", ->
|
|
it "correctly terminates scopes at the beginning of the line (regression)", ->
|
|
grammar = atom.grammars.createGrammar('test', {
|
|
'scopeName': 'text.broken'
|
|
'name': 'Broken grammar'
|
|
'patterns': [
|
|
{
|
|
'begin': 'start'
|
|
'end': '(?=end)'
|
|
'name': 'blue.broken'
|
|
}
|
|
{
|
|
'match': '.'
|
|
'name': 'yellow.broken'
|
|
}
|
|
]
|
|
})
|
|
|
|
buffer = new TextBuffer(text: """
|
|
start x
|
|
end x
|
|
x
|
|
""")
|
|
tokenizedBuffer = new TokenizedBuffer({
|
|
buffer, config: atom.config, grammarRegistry: atom.grammars, packageManager: atom.packages, assert: atom.assert
|
|
})
|
|
tokenizedBuffer.setGrammar(grammar)
|
|
|
|
tokenIterator = tokenizedBuffer.tokenizedLines[1].getTokenIterator()
|
|
tokenIterator.next()
|
|
|
|
expect(tokenIterator.getBufferStart()).toBe 0
|
|
expect(tokenIterator.getScopeEnds()).toEqual []
|
|
expect(tokenIterator.getScopeStarts()).toEqual ['text.broken', 'yellow.broken']
|