mirror of
https://github.com/pulsar-edit/pulsar.git
synced 2024-09-20 23:48:05 +03:00
Don't use atom globals in TokenIterator
This commit is contained in:
parent
464cfd4474
commit
534f038631
@ -13,7 +13,7 @@ module.exports =
|
|||||||
class LinesComponent extends TiledComponent
|
class LinesComponent extends TiledComponent
|
||||||
placeholderTextDiv: null
|
placeholderTextDiv: null
|
||||||
|
|
||||||
constructor: ({@presenter, @hostElement, @useShadowDOM, visible, @domElementPool, @assert}) ->
|
constructor: ({@presenter, @hostElement, @useShadowDOM, visible, @domElementPool, @assert, @grammars}) ->
|
||||||
@domNode = document.createElement('div')
|
@domNode = document.createElement('div')
|
||||||
@domNode.classList.add('lines')
|
@domNode.classList.add('lines')
|
||||||
@tilesNode = document.createElement("div")
|
@tilesNode = document.createElement("div")
|
||||||
@ -63,7 +63,7 @@ class LinesComponent extends TiledComponent
|
|||||||
|
|
||||||
@oldState.indentGuidesVisible = @newState.indentGuidesVisible
|
@oldState.indentGuidesVisible = @newState.indentGuidesVisible
|
||||||
|
|
||||||
buildComponentForTile: (id) -> new LinesTileComponent({id, @presenter, @domElementPool, @assert})
|
buildComponentForTile: (id) -> new LinesTileComponent({id, @presenter, @domElementPool, @assert, @grammars})
|
||||||
|
|
||||||
buildEmptyState: ->
|
buildEmptyState: ->
|
||||||
{tiles: {}}
|
{tiles: {}}
|
||||||
|
@ -13,8 +13,8 @@ cloneObject = (object) ->
|
|||||||
|
|
||||||
module.exports =
|
module.exports =
|
||||||
class LinesTileComponent
|
class LinesTileComponent
|
||||||
constructor: ({@presenter, @id, @domElementPool, @assert}) ->
|
constructor: ({@presenter, @id, @domElementPool, @assert, grammars}) ->
|
||||||
@tokenIterator = new TokenIterator
|
@tokenIterator = new TokenIterator(grammarRegistry: grammars)
|
||||||
@measuredLines = new Set
|
@measuredLines = new Set
|
||||||
@lineNodesByLineId = {}
|
@lineNodesByLineId = {}
|
||||||
@screenRowsByLineId = {}
|
@screenRowsByLineId = {}
|
||||||
|
@ -41,7 +41,7 @@ class TextEditorComponent
|
|||||||
@assert domNode?, "TextEditorComponent::domNode was set to null."
|
@assert domNode?, "TextEditorComponent::domNode was set to null."
|
||||||
@domNodeValue = domNode
|
@domNodeValue = domNode
|
||||||
|
|
||||||
constructor: ({@editor, @hostElement, @rootElement, @stylesElement, @useShadowDOM, tileSize, @views, @themes, @config, @workspace, @assert}) ->
|
constructor: ({@editor, @hostElement, @rootElement, @stylesElement, @useShadowDOM, tileSize, @views, @themes, @config, @workspace, @assert, @grammars}) ->
|
||||||
@tileSize = tileSize if tileSize?
|
@tileSize = tileSize if tileSize?
|
||||||
@disposables = new CompositeDisposable
|
@disposables = new CompositeDisposable
|
||||||
|
|
||||||
@ -85,7 +85,7 @@ class TextEditorComponent
|
|||||||
@hiddenInputComponent = new InputComponent
|
@hiddenInputComponent = new InputComponent
|
||||||
@scrollViewNode.appendChild(@hiddenInputComponent.getDomNode())
|
@scrollViewNode.appendChild(@hiddenInputComponent.getDomNode())
|
||||||
|
|
||||||
@linesComponent = new LinesComponent({@presenter, @hostElement, @useShadowDOM, @domElementPool, @assert})
|
@linesComponent = new LinesComponent({@presenter, @hostElement, @useShadowDOM, @domElementPool, @assert, @grammars})
|
||||||
@scrollViewNode.appendChild(@linesComponent.getDomNode())
|
@scrollViewNode.appendChild(@linesComponent.getDomNode())
|
||||||
|
|
||||||
@horizontalScrollbarComponent = new ScrollbarComponent({orientation: 'horizontal', onScroll: @onHorizontalScroll})
|
@horizontalScrollbarComponent = new ScrollbarComponent({orientation: 'horizontal', onScroll: @onHorizontalScroll})
|
||||||
|
@ -27,6 +27,7 @@ class TextEditorElement extends HTMLElement
|
|||||||
@assert = atom.assert
|
@assert = atom.assert
|
||||||
@views = atom.views
|
@views = atom.views
|
||||||
@styles = atom.styles
|
@styles = atom.styles
|
||||||
|
@grammars = atom.grammars
|
||||||
|
|
||||||
@emitter = new Emitter
|
@emitter = new Emitter
|
||||||
@subscriptions = new CompositeDisposable
|
@subscriptions = new CompositeDisposable
|
||||||
@ -86,13 +87,14 @@ class TextEditorElement extends HTMLElement
|
|||||||
@subscriptions.add @component.onDidChangeScrollLeft =>
|
@subscriptions.add @component.onDidChangeScrollLeft =>
|
||||||
@emitter.emit("did-change-scroll-left", arguments...)
|
@emitter.emit("did-change-scroll-left", arguments...)
|
||||||
|
|
||||||
initialize: (model, {@views, @config, @themes, @workspace, @assert, @styles}) ->
|
initialize: (model, {@views, @config, @themes, @workspace, @assert, @styles, @grammars}) ->
|
||||||
throw new Error("Must pass a config parameter when initializing TextEditorElements") unless @views?
|
throw new Error("Must pass a config parameter when initializing TextEditorElements") unless @views?
|
||||||
throw new Error("Must pass a config parameter when initializing TextEditorElements") unless @config?
|
throw new Error("Must pass a config parameter when initializing TextEditorElements") unless @config?
|
||||||
throw new Error("Must pass a themes parameter when initializing TextEditorElements") unless @themes?
|
throw new Error("Must pass a themes parameter when initializing TextEditorElements") unless @themes?
|
||||||
throw new Error("Must pass a workspace parameter when initializing TextEditorElements") unless @workspace?
|
throw new Error("Must pass a workspace parameter when initializing TextEditorElements") unless @workspace?
|
||||||
throw new Error("Must pass a assert parameter when initializing TextEditorElements") unless @assert?
|
throw new Error("Must pass a assert parameter when initializing TextEditorElements") unless @assert?
|
||||||
throw new Error("Must pass a styles parameter when initializing TextEditorElements") unless @styles?
|
throw new Error("Must pass a styles parameter when initializing TextEditorElements") unless @styles?
|
||||||
|
throw new Error("Must pass a grammars parameter when initializing TextEditorElements") unless @grammars?
|
||||||
|
|
||||||
@setModel(model)
|
@setModel(model)
|
||||||
this
|
this
|
||||||
@ -140,6 +142,7 @@ class TextEditorElement extends HTMLElement
|
|||||||
config: @config
|
config: @config
|
||||||
workspace: @workspace
|
workspace: @workspace
|
||||||
assert: @assert
|
assert: @assert
|
||||||
|
grammars: @grammars
|
||||||
)
|
)
|
||||||
@rootElement.appendChild(@component.getDomNode())
|
@rootElement.appendChild(@component.getDomNode())
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
module.exports =
|
module.exports =
|
||||||
class TokenIterator
|
class TokenIterator
|
||||||
constructor: (line) ->
|
constructor: ({@grammarRegistry}, line) ->
|
||||||
@reset(line) if line?
|
@reset(line) if line?
|
||||||
|
|
||||||
reset: (@line) ->
|
reset: (@line) ->
|
||||||
@ -11,7 +11,7 @@ class TokenIterator
|
|||||||
@bufferEnd = @bufferStart
|
@bufferEnd = @bufferStart
|
||||||
@screenStart = 0
|
@screenStart = 0
|
||||||
@screenEnd = 0
|
@screenEnd = 0
|
||||||
@scopes = @line.openScopes.map (id) -> atom.grammars.scopeForId(id)
|
@scopes = @line.openScopes.map (id) => @grammarRegistry.scopeForId(id)
|
||||||
@scopeStarts = @scopes.slice()
|
@scopeStarts = @scopes.slice()
|
||||||
@scopeEnds = []
|
@scopeEnds = []
|
||||||
this
|
this
|
||||||
@ -31,7 +31,7 @@ class TokenIterator
|
|||||||
while @index < tags.length
|
while @index < tags.length
|
||||||
tag = tags[@index]
|
tag = tags[@index]
|
||||||
if tag < 0
|
if tag < 0
|
||||||
scope = atom.grammars.scopeForId(tag)
|
scope = @grammarRegistry.scopeForId(tag)
|
||||||
if tag % 2 is 0
|
if tag % 2 is 0
|
||||||
if @scopeStarts[@scopeStarts.length - 1] is scope
|
if @scopeStarts[@scopeStarts.length - 1] is scope
|
||||||
@scopeStarts.pop()
|
@scopeStarts.pop()
|
||||||
|
@ -37,7 +37,7 @@ class TokenizedBuffer extends Model
|
|||||||
|
|
||||||
@emitter = new Emitter
|
@emitter = new Emitter
|
||||||
@disposables = new CompositeDisposable
|
@disposables = new CompositeDisposable
|
||||||
@tokenIterator = new TokenIterator
|
@tokenIterator = new TokenIterator({@grammarRegistry})
|
||||||
|
|
||||||
@disposables.add @grammarRegistry.onDidAddGrammar(@grammarAddedOrUpdated)
|
@disposables.add @grammarRegistry.onDidAddGrammar(@grammarAddedOrUpdated)
|
||||||
@disposables.add @grammarRegistry.onDidUpdateGrammar(@grammarAddedOrUpdated)
|
@disposables.add @grammarRegistry.onDidUpdateGrammar(@grammarAddedOrUpdated)
|
||||||
|
Loading…
Reference in New Issue
Block a user