Merge pull request #2431 from atom/cj-add-tokenized-event

Use tokenized event to determine tab style
This commit is contained in:
Corey Johnson
2014-05-29 15:19:14 -07:00
6 changed files with 78 additions and 1 deletions

View File

@@ -46,6 +46,7 @@ class DisplayBuffer extends Model
@updateAllScreenLines()
@createFoldForMarker(marker) for marker in @buffer.findMarkers(@getFoldMarkerAttributes())
@subscribe @tokenizedBuffer, 'grammar-changed', (grammar) => @emit 'grammar-changed', grammar
@subscribe @tokenizedBuffer, 'tokenized', => @emit 'tokenized'
@subscribe @tokenizedBuffer, 'changed', @handleTokenizedBufferChange
@subscribe @buffer, 'markers-updated', @handleBufferMarkersUpdated
@subscribe @buffer, 'marker-created', @handleBufferMarkerCreated

View File

@@ -211,6 +211,7 @@ class Editor extends Model
@subscribe @displayBuffer, "changed", (e) => @emit 'screen-lines-changed', e
@subscribe @displayBuffer, "markers-updated", => @mergeIntersectingSelections()
@subscribe @displayBuffer, 'grammar-changed', => @handleGrammarChange()
@subscribe @displayBuffer, 'tokenized', => @handleTokenization()
@subscribe @displayBuffer, 'soft-wrap-changed', (args...) => @emit 'soft-wrap-changed', args...
getViewClass: ->
@@ -1851,6 +1852,9 @@ class Editor extends Model
logScreenLines: (start, end) -> @displayBuffer.logLines(start, end)
handleTokenization: ->
@softTabs = @usesSoftTabs() ? @softTabs
handleGrammarChange: ->
@unfoldAll()
@emit 'grammar-changed'

View File

@@ -78,6 +78,7 @@ class TokenizedBuffer extends Model
@tokenizedLines = @buildPlaceholderTokenizedLinesForRows(0, @buffer.getLastRow())
@invalidRows = []
@invalidateRow(0)
@fullyTokenized = false
setVisible: (@visible) ->
@tokenizeInBackground() if @visible
@@ -124,7 +125,11 @@ class TokenizedBuffer extends Model
@invalidateRow(row + 1) unless filledRegion
@emit "changed", { start: invalidRow, end: row, delta: 0 }
@tokenizeInBackground() if @firstInvalidRow()?
if @firstInvalidRow()?
@tokenizeInBackground()
else
@emit "tokenized" unless @fullyTokenized
@fullyTokenized = true
firstInvalidRow: ->
@invalidRows[0]