Merge branch 'master' into ns-fix-editor-auto-height

# Conflicts:
#	src/text-editor.coffee
This commit is contained in:
Antonio Scandurra
2016-08-19 13:27:26 +02:00
8 changed files with 98 additions and 45 deletions

View File

@@ -102,6 +102,7 @@ class TextEditor extends Model
try
state.tokenizedBuffer = TokenizedBuffer.deserialize(state.tokenizedBuffer, atomEnvironment)
state.tabLength = state.tokenizedBuffer.getTabLength()
catch error
if error.syscall is 'read'
return # Error reading the file, don't deserialize an editor for it
@@ -128,7 +129,7 @@ class TextEditor extends Model
@softWrapped, @decorationManager, @selectionsMarkerLayer, @buffer, suppressCursorCreation,
@mini, @placeholderText, lineNumberGutterVisible, @largeFileMode, @clipboard,
@assert, grammar, @showInvisibles, @autoHeight, @autoWidth, @scrollPastEnd, @editorWidthInChars,
@tokenizedBuffer, @displayLayer, @invisibles, @showIndentGuide, @softWrapHangingIndentLength,
@tokenizedBuffer, @displayLayer, @invisibles, @showIndentGuide,
@softWrapped, @softWrapAtPreferredLineLength, @preferredLineLength
} = params
@@ -154,7 +155,6 @@ class TextEditor extends Model
@undoGroupingInterval ?= 300
@nonWordCharacters ?= "/\\()\"':,.;<>~!@#$%^&*|+=[]{}`?-…"
@softWrapped ?= false
@softWrapHangingIndentLength ?= 0
@softWrapAtPreferredLineLength ?= false
@preferredLineLength ?= 80
@@ -162,17 +162,24 @@ class TextEditor extends Model
@tokenizedBuffer ?= new TokenizedBuffer({
grammar, tabLength, @buffer, @largeFileMode, @assert
})
@displayLayer ?= @buffer.addDisplayLayer({
displayLayerParams = {
invisibles: @getInvisibles(),
softWrapColumn: @getSoftWrapColumn(),
showIndentGuides: not @isMini() and @doesShowIndentGuide(),
atomicSoftTabs: @hasAtomicSoftTabs(),
tabLength: @getTabLength(),
atomicSoftTabs: params.atomicSoftTabs ? true,
tabLength: tabLength,
ratioForCharacter: @ratioForCharacter.bind(this),
isWrapBoundary: isWrapBoundary,
foldCharacter: ZERO_WIDTH_NBSP,
softWrapHangingIndent: @getSoftWrapHangingIndentLength()
})
softWrapHangingIndent: params.softWrapHangingIndentLength ? 0
}
if @displayLayer?
@displayLayer.reset(displayLayerParams)
else
@displayLayer = @buffer.addDisplayLayer(displayLayerParams)
@displayLayer.setTextDecorationLayer(@tokenizedBuffer)
@defaultMarkerLayer = @displayLayer.addMarkerLayer()
@selectionsMarkerLayer ?= @addMarkerLayer(maintainHistory: true, persistent: true)
@@ -229,8 +236,7 @@ class TextEditor extends Model
@softTabs = value
when 'atomicSoftTabs'
if value isnt @atomicSoftTabs
@atomicSoftTabs = value
if value isnt @displayLayer.atomicSoftTabs
displayLayerParams.atomicSoftTabs = value
when 'tabLength'
@@ -245,8 +251,7 @@ class TextEditor extends Model
@emitter.emit 'did-change-soft-wrapped', @isSoftWrapped()
when 'softWrapHangingIndentLength'
if value isnt @softWrapHangingIndentLength
@softWrapHangingIndentLength = value
if value isnt @displayLayer.softWrapHangingIndent
displayLayerParams.softWrapHangingIndent = value
when 'softWrapAtPreferredLineLength'
@@ -351,11 +356,12 @@ class TextEditor extends Model
firstVisibleScreenRow: @getFirstVisibleScreenRow()
firstVisibleScreenColumn: @getFirstVisibleScreenColumn()
@id, @softTabs, @atomicSoftTabs, @tabLength, @softWrapped,
@softWrapHangingIndentLength, @softWrapAtPreferredLineLength,
@preferredLineLength, @mini, @editorWidthInChars, @width, @largeFileMode,
@registered, @invisibles, @showInvisibles, @showIndentGuide, @autoHeight,
@autoWidth
atomicSoftTabs: @displayLayer.atomicSoftTabs
softWrapHangingIndentLength: @displayLayer.softWrapHangingIndent
@id, @softTabs, @softWrapped, @softWrapAtPreferredLineLength,
@preferredLineLength, @mini, @editorWidthInChars, @width, @largeFileMode,
@registered, @invisibles, @showInvisibles, @showIndentGuide, @autoHeight, @autoWidth
}
subscribeToBuffer: ->
@@ -694,8 +700,9 @@ class TextEditor extends Model
selectionsMarkerLayer = displayLayer.getMarkerLayer(@buffer.getMarkerLayer(@selectionsMarkerLayer.id).copy().id)
softTabs = @getSoftTabs()
new TextEditor({
@buffer, selectionsMarkerLayer, @tabLength, softTabs,
@buffer, selectionsMarkerLayer, softTabs,
suppressCursorCreation: true,
tabLength: @tokenizedBuffer.getTabLength(),
@firstVisibleScreenRow, @firstVisibleScreenColumn,
@clipboard, @assert, displayLayer, grammar: @getGrammar()
})
@@ -2817,7 +2824,7 @@ class TextEditor extends Model
setSoftTabs: (@softTabs) -> @update({softTabs})
# Returns a {Boolean} indicating whether atomic soft tabs are enabled for this editor.
hasAtomicSoftTabs: -> @atomicSoftTabs
hasAtomicSoftTabs: -> @displayLayer.atomicSoftTabs
# Essential: Toggle soft tabs for this editor
toggleSoftTabs: -> @setSoftTabs(not @getSoftTabs())
@@ -2844,7 +2851,7 @@ class TextEditor extends Model
doesShowIndentGuide: -> @showIndentGuide and not @mini
getSoftWrapHangingIndentLength: -> @softWrapHangingIndentLength
getSoftWrapHangingIndentLength: -> @displayLayer.softWrapHangingIndent
# Extended: Determine if the buffer uses hard or soft tabs.
#