mirror of
https://github.com/atom/atom.git
synced 2026-04-28 03:01:47 -04:00
Indent soft-wrap spec correctly
This commit is contained in:
@@ -1050,90 +1050,6 @@ describe "Editor", ->
|
||||
buffer.insert([1,0], "/*")
|
||||
expect(editor.renderedLines.find('.line:eq(2) > span:first > span:first')).toMatchSelector '.comment'
|
||||
|
||||
describe "when soft-wrap is enabled", ->
|
||||
beforeEach ->
|
||||
setEditorHeightInLines(editor, 20)
|
||||
setEditorWidthInChars(editor, 50)
|
||||
editor.setSoftWrap(true)
|
||||
expect(editor.activeEditSession.softWrapColumn).toBe 50
|
||||
|
||||
it "wraps lines that are too long to fit within the editor's width, adjusting cursor positioning accordingly", ->
|
||||
expect(editor.renderedLines.find('.line').length).toBe 16
|
||||
expect(editor.renderedLines.find('.line:eq(3)').text()).toBe " var pivot = items.shift(), current, left = [], "
|
||||
expect(editor.renderedLines.find('.line:eq(4)').text()).toBe "right = [];"
|
||||
|
||||
editor.setCursorBufferPosition([3, 51], wrapAtSoftNewlines: true)
|
||||
expect(editor.find('.cursor').offset()).toEqual(editor.renderedLines.find('.line:eq(4)').offset())
|
||||
|
||||
editor.setCursorBufferPosition([4, 0])
|
||||
expect(editor.find('.cursor').offset()).toEqual(editor.renderedLines.find('.line:eq(5)').offset())
|
||||
|
||||
editor.getSelection().setBufferRange(new Range([6, 30], [6, 55]))
|
||||
[region1, region2] = editor.getSelectionView().regions
|
||||
expect(region1.offset().top).toBeCloseTo(editor.renderedLines.find('.line:eq(7)').offset().top)
|
||||
expect(region2.offset().top).toBeCloseTo(editor.renderedLines.find('.line:eq(8)').offset().top)
|
||||
|
||||
it "handles changes to wrapped lines correctly", ->
|
||||
buffer.insert([6, 28], '1234567')
|
||||
expect(editor.renderedLines.find('.line:eq(7)').text()).toBe ' current < pivot ? left1234567.push(current) '
|
||||
expect(editor.renderedLines.find('.line:eq(8)').text()).toBe ': right.push(current);'
|
||||
expect(editor.renderedLines.find('.line:eq(9)').text()).toBe ' }'
|
||||
|
||||
it "changes the max line length and repositions the cursor when the window size changes", ->
|
||||
editor.setCursorBufferPosition([3, 60])
|
||||
setEditorWidthInChars(editor, 40)
|
||||
expect(editor.renderedLines.find('.line').length).toBe 19
|
||||
expect(editor.renderedLines.find('.line:eq(4)').text()).toBe "left = [], right = [];"
|
||||
expect(editor.renderedLines.find('.line:eq(5)').text()).toBe " while(items.length > 0) {"
|
||||
expect(editor.bufferPositionForScreenPosition(editor.getCursorScreenPosition())).toEqual [3, 60]
|
||||
|
||||
it "does not wrap the lines of any newly assigned buffers", ->
|
||||
otherEditSession = project.buildEditSession()
|
||||
otherEditSession.buffer.setText([1..100].join(''))
|
||||
editor.edit(otherEditSession)
|
||||
expect(editor.renderedLines.find('.line').length).toBe(1)
|
||||
|
||||
it "unwraps lines and cancels window resize listener when softwrap is disabled", ->
|
||||
editor.toggleSoftWrap()
|
||||
expect(editor.renderedLines.find('.line:eq(3)').text()).toBe ' var pivot = items.shift(), current, left = [], right = [];'
|
||||
|
||||
spyOn(editor, 'setSoftWrapColumn')
|
||||
$(window).trigger 'resize'
|
||||
expect(editor.setSoftWrapColumn).not.toHaveBeenCalled()
|
||||
|
||||
it "allows the cursor to move down to the last line", ->
|
||||
_.times editor.getLastScreenRow(), -> editor.moveCursorDown()
|
||||
expect(editor.getCursorScreenPosition()).toEqual [editor.getLastScreenRow(), 0]
|
||||
editor.moveCursorDown()
|
||||
expect(editor.getCursorScreenPosition()).toEqual [editor.getLastScreenRow(), 2]
|
||||
|
||||
it "allows the cursor to move up to a shorter soft wrapped line", ->
|
||||
editor.setCursorScreenPosition([11, 15])
|
||||
editor.moveCursorUp()
|
||||
expect(editor.getCursorScreenPosition()).toEqual [10, 10]
|
||||
editor.moveCursorUp()
|
||||
editor.moveCursorUp()
|
||||
expect(editor.getCursorScreenPosition()).toEqual [8, 15]
|
||||
|
||||
it "it allows the cursor to wrap when moving horizontally past the beginning / end of a wrapped line", ->
|
||||
editor.setCursorScreenPosition([11, 0])
|
||||
editor.moveCursorLeft()
|
||||
expect(editor.getCursorScreenPosition()).toEqual [10, 10]
|
||||
|
||||
editor.moveCursorRight()
|
||||
expect(editor.getCursorScreenPosition()).toEqual [11, 0]
|
||||
|
||||
it "calls .setSoftWrapColumn() when the editor is attached because now its dimensions are available to calculate it", ->
|
||||
otherEditor = new Editor(editSession: project.buildEditSession('sample.js'))
|
||||
spyOn(otherEditor, 'setSoftWrapColumn')
|
||||
|
||||
otherEditor.setSoftWrap(true)
|
||||
expect(otherEditor.setSoftWrapColumn).not.toHaveBeenCalled()
|
||||
|
||||
otherEditor.simulateDomAttachment()
|
||||
expect(otherEditor.setSoftWrapColumn).toHaveBeenCalled()
|
||||
otherEditor.remove()
|
||||
|
||||
describe "when some lines at the end of the buffer are not visible on screen", ->
|
||||
beforeEach ->
|
||||
editor.attachToDom(heightInLines: 5.5)
|
||||
@@ -1582,6 +1498,91 @@ describe "Editor", ->
|
||||
expect(editor.renderedLines.find('.line:eq(10) .indent-guide').length).toBe 2
|
||||
expect(editor.renderedLines.find('.line:eq(10) .indent-guide').text()).toBe ' '
|
||||
|
||||
describe "when soft-wrap is enabled", ->
|
||||
beforeEach ->
|
||||
editor.attachToDom()
|
||||
setEditorHeightInLines(editor, 20)
|
||||
setEditorWidthInChars(editor, 50)
|
||||
editor.setSoftWrap(true)
|
||||
expect(editor.activeEditSession.softWrapColumn).toBe 50
|
||||
|
||||
it "wraps lines that are too long to fit within the editor's width, adjusting cursor positioning accordingly", ->
|
||||
expect(editor.renderedLines.find('.line').length).toBe 16
|
||||
expect(editor.renderedLines.find('.line:eq(3)').text()).toBe " var pivot = items.shift(), current, left = [], "
|
||||
expect(editor.renderedLines.find('.line:eq(4)').text()).toBe "right = [];"
|
||||
|
||||
editor.setCursorBufferPosition([3, 51], wrapAtSoftNewlines: true)
|
||||
expect(editor.find('.cursor').offset()).toEqual(editor.renderedLines.find('.line:eq(4)').offset())
|
||||
|
||||
editor.setCursorBufferPosition([4, 0])
|
||||
expect(editor.find('.cursor').offset()).toEqual(editor.renderedLines.find('.line:eq(5)').offset())
|
||||
|
||||
editor.getSelection().setBufferRange(new Range([6, 30], [6, 55]))
|
||||
[region1, region2] = editor.getSelectionView().regions
|
||||
expect(region1.offset().top).toBeCloseTo(editor.renderedLines.find('.line:eq(7)').offset().top)
|
||||
expect(region2.offset().top).toBeCloseTo(editor.renderedLines.find('.line:eq(8)').offset().top)
|
||||
|
||||
it "handles changes to wrapped lines correctly", ->
|
||||
buffer.insert([6, 28], '1234567')
|
||||
expect(editor.renderedLines.find('.line:eq(7)').text()).toBe ' current < pivot ? left1234567.push(current) '
|
||||
expect(editor.renderedLines.find('.line:eq(8)').text()).toBe ': right.push(current);'
|
||||
expect(editor.renderedLines.find('.line:eq(9)').text()).toBe ' }'
|
||||
|
||||
it "changes the max line length and repositions the cursor when the window size changes", ->
|
||||
editor.setCursorBufferPosition([3, 60])
|
||||
setEditorWidthInChars(editor, 40)
|
||||
expect(editor.renderedLines.find('.line').length).toBe 19
|
||||
expect(editor.renderedLines.find('.line:eq(4)').text()).toBe "left = [], right = [];"
|
||||
expect(editor.renderedLines.find('.line:eq(5)').text()).toBe " while(items.length > 0) {"
|
||||
expect(editor.bufferPositionForScreenPosition(editor.getCursorScreenPosition())).toEqual [3, 60]
|
||||
|
||||
it "does not wrap the lines of any newly assigned buffers", ->
|
||||
otherEditSession = project.buildEditSession()
|
||||
otherEditSession.buffer.setText([1..100].join(''))
|
||||
editor.edit(otherEditSession)
|
||||
expect(editor.renderedLines.find('.line').length).toBe(1)
|
||||
|
||||
it "unwraps lines and cancels window resize listener when softwrap is disabled", ->
|
||||
editor.toggleSoftWrap()
|
||||
expect(editor.renderedLines.find('.line:eq(3)').text()).toBe ' var pivot = items.shift(), current, left = [], right = [];'
|
||||
|
||||
spyOn(editor, 'setSoftWrapColumn')
|
||||
$(window).trigger 'resize'
|
||||
expect(editor.setSoftWrapColumn).not.toHaveBeenCalled()
|
||||
|
||||
it "allows the cursor to move down to the last line", ->
|
||||
_.times editor.getLastScreenRow(), -> editor.moveCursorDown()
|
||||
expect(editor.getCursorScreenPosition()).toEqual [editor.getLastScreenRow(), 0]
|
||||
editor.moveCursorDown()
|
||||
expect(editor.getCursorScreenPosition()).toEqual [editor.getLastScreenRow(), 2]
|
||||
|
||||
it "allows the cursor to move up to a shorter soft wrapped line", ->
|
||||
editor.setCursorScreenPosition([11, 15])
|
||||
editor.moveCursorUp()
|
||||
expect(editor.getCursorScreenPosition()).toEqual [10, 10]
|
||||
editor.moveCursorUp()
|
||||
editor.moveCursorUp()
|
||||
expect(editor.getCursorScreenPosition()).toEqual [8, 15]
|
||||
|
||||
it "it allows the cursor to wrap when moving horizontally past the beginning / end of a wrapped line", ->
|
||||
editor.setCursorScreenPosition([11, 0])
|
||||
editor.moveCursorLeft()
|
||||
expect(editor.getCursorScreenPosition()).toEqual [10, 10]
|
||||
|
||||
editor.moveCursorRight()
|
||||
expect(editor.getCursorScreenPosition()).toEqual [11, 0]
|
||||
|
||||
it "calls .setSoftWrapColumn() when the editor is attached because now its dimensions are available to calculate it", ->
|
||||
otherEditor = new Editor(editSession: project.buildEditSession('sample.js'))
|
||||
spyOn(otherEditor, 'setSoftWrapColumn')
|
||||
|
||||
otherEditor.setSoftWrap(true)
|
||||
expect(otherEditor.setSoftWrapColumn).not.toHaveBeenCalled()
|
||||
|
||||
otherEditor.simulateDomAttachment()
|
||||
expect(otherEditor.setSoftWrapColumn).toHaveBeenCalled()
|
||||
otherEditor.remove()
|
||||
|
||||
describe "gutter rendering", ->
|
||||
beforeEach ->
|
||||
editor.attachToDom(heightInLines: 5.5)
|
||||
|
||||
Reference in New Issue
Block a user