Add ::state.content.scrollTop/Left to TextEditorPresenter

Esse commit está contido em:
Nathan Sobo
2015-01-21 17:01:23 -07:00
commit f479e9d029
2 arquivos alterados com 23 adições e 1 exclusões
+14
Ver Arquivo
@@ -82,6 +82,20 @@ describe "TextEditorPresenter", ->
editor.getBuffer().append("\n\n\n")
expect(presenter.state.content.scrollHeight).toBe editor.getScreenLineCount() * 10
describe ".scrollTop", ->
it "tracks the value of ::scrollTop", ->
presenter = new TextEditorPresenter(model: editor, scrollTop: 10, lineHeight: 10, lineOverdrawMargin: 1)
expect(presenter.state.content.scrollTop).toBe 10
presenter.setScrollTop(50)
expect(presenter.state.content.scrollTop).toBe 50
describe ".scrollLeft", ->
it "tracks the value of ::scrollLeft", ->
presenter = new TextEditorPresenter(model: editor, scrollLeft: 10, lineHeight: 10, lineOverdrawMargin: 1)
expect(presenter.state.content.scrollLeft).toBe 10
presenter.setScrollLeft(50)
expect(presenter.state.content.scrollLeft).toBe 50
describe ".indentGuidesVisible", ->
it "is initialized based on the editor.showIndentGuide config setting", ->
presenter = new TextEditorPresenter(model: editor)
+9 -1
Ver Arquivo
@@ -3,7 +3,7 @@
module.exports =
class TextEditorPresenter
constructor: ({@model, @clientHeight, @clientWidth, @scrollTop, @lineHeight, @baseCharacterWidth, @lineOverdrawMargin}) ->
constructor: ({@model, @clientHeight, @clientWidth, @scrollTop, @scrollLeft, @lineHeight, @baseCharacterWidth, @lineOverdrawMargin}) ->
@disposables = new CompositeDisposable
@charWidthsByScope = {}
@observeModel()
@@ -44,6 +44,8 @@ class TextEditorPresenter
updateContentState: ->
@state.content.scrollWidth = @computeScrollWidth()
@state.content.scrollHeight = @computeScrollHeight()
@state.content.scrollTop = @getScrollTop()
@state.content.scrollLeft = @getScrollLeft()
@state.content.indentGuidesVisible = atom.config.get('editor.showIndentGuide', scope: @model.getRootScopeDescriptor())
updateLinesState: ->
@@ -122,10 +124,16 @@ class TextEditorPresenter
decorationClasses
setScrollTop: (@scrollTop) ->
@updateContentState()
@updateLinesState()
getScrollTop: -> @scrollTop
setScrollLeft: (@scrollLeft) ->
@updateContentState()
getScrollLeft: -> @scrollLeft
setClientHeight: (@clientHeight) ->
@updateLinesState()