mirror of
https://github.com/pulsar-edit/pulsar.git
synced 2025-01-08 16:19:17 +03:00
Merge pull request #3619 from lee-dohm/scroll-past-end
Add ability to scroll past the end of the file
This commit is contained in:
commit
1f2fc4bf00
@ -1100,6 +1100,33 @@ describe "DisplayBuffer", ->
|
|||||||
expect(displayBuffer.setScrollTop(maxScrollTop + 50)).toBe maxScrollTop
|
expect(displayBuffer.setScrollTop(maxScrollTop + 50)).toBe maxScrollTop
|
||||||
expect(displayBuffer.getScrollTop()).toBe maxScrollTop
|
expect(displayBuffer.getScrollTop()).toBe maxScrollTop
|
||||||
|
|
||||||
|
describe "editor.scrollPastEnd", ->
|
||||||
|
describe "when editor.scrollPastEnd is false", ->
|
||||||
|
beforeEach ->
|
||||||
|
atom.config.set("editor.scrollPastEnd", false)
|
||||||
|
displayBuffer.manageScrollPosition = true
|
||||||
|
displayBuffer.setLineHeightInPixels(10)
|
||||||
|
|
||||||
|
it "does not add the height of the view to the scroll height", ->
|
||||||
|
lineHeight = displayBuffer.getLineHeightInPixels()
|
||||||
|
originalScrollHeight = displayBuffer.getScrollHeight()
|
||||||
|
displayBuffer.setHeight(50)
|
||||||
|
|
||||||
|
expect(displayBuffer.getScrollHeight()).toBe originalScrollHeight
|
||||||
|
|
||||||
|
describe "when editor.scrollPastEnd is true", ->
|
||||||
|
beforeEach ->
|
||||||
|
atom.config.set("editor.scrollPastEnd", true)
|
||||||
|
displayBuffer.manageScrollPosition = true
|
||||||
|
displayBuffer.setLineHeightInPixels(10)
|
||||||
|
|
||||||
|
it "adds the height of the view to the scroll height", ->
|
||||||
|
lineHeight = displayBuffer.getLineHeightInPixels()
|
||||||
|
originalScrollHeight = displayBuffer.getScrollHeight()
|
||||||
|
displayBuffer.setHeight(50)
|
||||||
|
|
||||||
|
expect(displayBuffer.getScrollHeight()).toEqual(originalScrollHeight + displayBuffer.height - (lineHeight * 3))
|
||||||
|
|
||||||
describe "::setScrollLeft", ->
|
describe "::setScrollLeft", ->
|
||||||
beforeEach ->
|
beforeEach ->
|
||||||
displayBuffer.manageScrollPosition = true
|
displayBuffer.manageScrollPosition = true
|
||||||
|
@ -315,9 +315,14 @@ class DisplayBuffer extends Model
|
|||||||
@charWidthsByScope = {}
|
@charWidthsByScope = {}
|
||||||
|
|
||||||
getScrollHeight: ->
|
getScrollHeight: ->
|
||||||
return 0 unless @getLineHeightInPixels() > 0
|
lineHeight = @getLineHeightInPixels()
|
||||||
|
return 0 unless lineHeight > 0
|
||||||
|
|
||||||
@getLineCount() * @getLineHeightInPixels()
|
scrollHeight = @getLineCount() * lineHeight
|
||||||
|
if @height? and atom.config.get('editor.scrollPastEnd')
|
||||||
|
scrollHeight = scrollHeight + @height - (lineHeight * 3)
|
||||||
|
|
||||||
|
scrollHeight
|
||||||
|
|
||||||
getScrollWidth: ->
|
getScrollWidth: ->
|
||||||
@scrollWidth
|
@scrollWidth
|
||||||
|
@ -60,6 +60,7 @@ class TextEditorView extends View
|
|||||||
space: '\u00b7'
|
space: '\u00b7'
|
||||||
tab: '\u00bb'
|
tab: '\u00bb'
|
||||||
cr: '\u00a4'
|
cr: '\u00a4'
|
||||||
|
scrollPastEnd: false
|
||||||
|
|
||||||
@content: (params) ->
|
@content: (params) ->
|
||||||
attributes = params.attributes ? {}
|
attributes = params.attributes ? {}
|
||||||
|
Loading…
Reference in New Issue
Block a user