Update foldable icon when a row's foldability changes

This commit is contained in:
Antonio Scandurra
2017-05-16 14:05:11 +02:00
parent 96533998e2
commit 4c5127ca2f
2 changed files with 23 additions and 4 deletions

View File

@@ -195,6 +195,21 @@ describe('TextEditorComponent', () => {
expect(lineNodeForScreenRow(component, 7)).toBe(lineNode)
})
it('updates lines numbers when a row\'s foldability changes (regression)', async () => {
const {component, element, editor} = buildComponent({text: 'abc\n'})
editor.setCursorBufferPosition([1, 0])
await component.getNextUpdatePromise()
expect(lineNumberNodeForScreenRow(component, 0).querySelector('.foldable')).toBeNull()
editor.insertText(' def')
await component.getNextUpdatePromise()
expect(lineNumberNodeForScreenRow(component, 0).querySelector('.foldable')).toBeDefined()
editor.undo()
await component.getNextUpdatePromise()
expect(lineNumberNodeForScreenRow(component, 0).querySelector('.foldable')).toBeNull()
})
it('renders dummy vertical and horizontal scrollbars when content overflows', async () => {
const {component, element, editor} = buildComponent({height: 100, width: 100})
const verticalScrollbar = component.refs.verticalScrollbar.element

View File

@@ -823,11 +823,10 @@ class TextEditorComponent {
const endRow = this.getRenderedEndRow()
const renderedRowCount = this.getRenderedRowCount()
const {keys, softWrappedFlags, foldableFlags} = this.lineNumbersToRender
const bufferRows = model.bufferRowsForScreenRows(startRow, endRow - 1)
this.lineNumbersToRender.bufferRows = bufferRows
keys.length = renderedRowCount
foldableFlags.length = renderedRowCount
const keys = new Array(endRow - startRow)
const foldableFlags = new Array(endRow - startRow)
const softWrappedFlags = new Array(endRow - startRow)
let previousBufferRow = (startRow > 0) ? model.bufferRowForScreenRow(startRow - 1) : -1
let softWrapCount = 0
@@ -847,6 +846,11 @@ class TextEditorComponent {
}
previousBufferRow = bufferRow
}
this.lineNumbersToRender.bufferRows = bufferRows
this.lineNumbersToRender.keys = keys
this.lineNumbersToRender.foldableFlags = foldableFlags
this.lineNumbersToRender.softWrappedFlags = softWrappedFlags
}
queryMaxLineNumberDigits () {