mirror of
https://github.com/pulsar-edit/pulsar.git
synced 2024-09-21 07:58:04 +03:00
Improve TokenizedLine::getScopeTree specs and fix bug
This commit is contained in:
parent
958bc638d7
commit
2dda577d7c
@ -2,18 +2,21 @@ describe "TokenizedLine", ->
|
||||
editor = null
|
||||
|
||||
beforeEach ->
|
||||
waitsForPromise -> atom.packages.activatePackage('language-javascript')
|
||||
runs -> editor = atom.project.openSync('sample.js')
|
||||
waitsForPromise -> atom.packages.activatePackage('language-coffee-script')
|
||||
|
||||
describe "::getScopeTree()", ->
|
||||
it "returns a tree whose inner nodes are scopes and whose leaf nodes are tokens in those scopes", ->
|
||||
editor = atom.project.openSync('coffee.coffee')
|
||||
|
||||
ensureValidScopeTree = (scopeTree, scopes=[]) ->
|
||||
if scopeTree.children?
|
||||
for child in scopeTree.children
|
||||
ensureValidScopeTree(child, scopes.concat([scopeTree.scope]))
|
||||
else
|
||||
expect(scopeTree).toBe tokens[tokenIndex++]
|
||||
expect(scopes).toEqual scopeTree.scopes
|
||||
|
||||
tokenIndex = 0
|
||||
tokens = editor.lineForScreenRow(1).tokens
|
||||
scopeTree = editor.lineForScreenRow(1).getScopeTree()
|
||||
expect(scopeTree.scope).toBe 'source.js'
|
||||
expect(scopeTree.children[0].value).toBe ' '
|
||||
expect(scopeTree.children[1].scope).toBe 'storage.modifier.js'
|
||||
expect(scopeTree.children[1].children[0].value).toBe 'var'
|
||||
expect(scopeTree.children[2].value).toBe ' '
|
||||
expect(scopeTree.children[3].scope).toBe 'meta.function.js'
|
||||
expect(scopeTree.children[4].value).toBe ' '
|
||||
expect(scopeTree.children[5].scope).toBe 'meta.brace.curly.js'
|
||||
expect(scopeTree.children[5].children[0].value).toBe '{'
|
||||
ensureValidScopeTree(scopeTree)
|
||||
|
@ -162,7 +162,7 @@ class TokenizedLine
|
||||
|
||||
# Push onto common prefix until scopeStack equals desiredScopes
|
||||
for j in [i...desiredScopes.length]
|
||||
scopeStack.push(new Scope(scope))
|
||||
scopeStack.push(new Scope(desiredScopes[j]))
|
||||
|
||||
class Scope
|
||||
constructor: (@scope) ->
|
||||
|
Loading…
Reference in New Issue
Block a user