pulsar/spec/tokenized-line-spec.coffee

41 lines
1.6 KiB
CoffeeScript
Raw Normal View History

2014-03-28 20:28:06 +04:00
describe "TokenizedLine", ->
editor = null
beforeEach ->
waitsForPromise -> atom.packages.activatePackage('language-coffee-script')
2014-03-28 20:28:06 +04:00
2014-06-25 01:44:45 +04:00
describe "::isOnlyWhitespace()", ->
beforeEach ->
waitsForPromise ->
atom.project.open('coffee.coffee').then (o) -> editor = o
it "returns true when the line is only whitespace", ->
expect(editor.tokenizedLineForScreenRow(3).isOnlyWhitespace()).toBe true
expect(editor.tokenizedLineForScreenRow(7).isOnlyWhitespace()).toBe true
expect(editor.tokenizedLineForScreenRow(23).isOnlyWhitespace()).toBe true
2014-06-25 01:44:45 +04:00
2014-06-25 02:13:01 +04:00
it "returns false when the line is not only whitespace", ->
expect(editor.tokenizedLineForScreenRow(0).isOnlyWhitespace()).toBe false
expect(editor.tokenizedLineForScreenRow(2).isOnlyWhitespace()).toBe false
2014-06-25 01:44:45 +04:00
2014-03-28 20:28:06 +04:00
describe "::getScopeTree()", ->
2014-10-14 03:30:41 +04:00
it "returns a tree whose inner nodes are scopeDescriptor and whose leaf nodes are tokens in those scopeDescriptor", ->
[tokens, tokenIndex] = []
2014-10-14 03:30:41 +04:00
ensureValidScopeTree = (scopeTree, scopeDescriptor=[]) ->
if scopeTree.children?
for child in scopeTree.children
2014-10-14 03:30:41 +04:00
ensureValidScopeTree(child, scopeDescriptor.concat([scopeTree.scope]))
else
expect(scopeTree).toBe tokens[tokenIndex++]
expect(scopeDescriptor).toEqual scopeTree.scopes
2014-04-25 01:14:10 +04:00
waitsForPromise ->
atom.project.open('coffee.coffee').then (o) -> editor = o
runs ->
tokenIndex = 0
tokens = editor.tokenizedLineForScreenRow(1).tokens
scopeTree = editor.tokenizedLineForScreenRow(1).getScopeTree()
2014-04-25 01:14:10 +04:00
ensureValidScopeTree(scopeTree)