mirror of
https://github.com/atom/atom.git
synced 2026-01-25 06:48:28 -05:00
Merge pull request #13585 from atom/fb-two-digits
Always reserve two digits on the line number gutter
This commit is contained in:
@@ -566,7 +566,7 @@ describe('TextEditorComponent', function () {
|
||||
editor.setSoftWrapped(true)
|
||||
runAnimationFrames()
|
||||
|
||||
componentNode.style.width = 16 * charWidth + wrapperNode.getVerticalScrollbarWidth() + 'px'
|
||||
componentNode.style.width = 17 * charWidth + wrapperNode.getVerticalScrollbarWidth() + 'px'
|
||||
component.measureDimensions()
|
||||
runAnimationFrames()
|
||||
})
|
||||
@@ -935,13 +935,17 @@ describe('TextEditorComponent', function () {
|
||||
})
|
||||
|
||||
it('pads line numbers to be right-justified based on the maximum number of line number digits', function () {
|
||||
editor.getBuffer().setText([1, 2, 3, 4, 5, 6, 7, 8, 9, 10].join('\n'))
|
||||
const input = [];
|
||||
for (let i = 1; i <= 100; ++i) {
|
||||
input.push(i);
|
||||
}
|
||||
editor.getBuffer().setText(input.join('\n'))
|
||||
runAnimationFrames()
|
||||
|
||||
for (let screenRow = 0; screenRow <= 8; ++screenRow) {
|
||||
expect(component.lineNumberNodeForScreenRow(screenRow).textContent).toBe('' + NBSP + (screenRow + 1))
|
||||
expect(component.lineNumberNodeForScreenRow(screenRow).textContent).toBe('' + NBSP + NBSP + (screenRow + 1))
|
||||
}
|
||||
expect(component.lineNumberNodeForScreenRow(9).textContent).toBe('10')
|
||||
expect(component.lineNumberNodeForScreenRow(99).textContent).toBe('100')
|
||||
let gutterNode = componentNode.querySelector('.gutter')
|
||||
let initialGutterWidth = gutterNode.offsetWidth
|
||||
editor.getBuffer().delete([[1, 0], [2, 0]])
|
||||
@@ -949,7 +953,7 @@ describe('TextEditorComponent', function () {
|
||||
runAnimationFrames()
|
||||
|
||||
for (let screenRow = 0; screenRow <= 8; ++screenRow) {
|
||||
expect(component.lineNumberNodeForScreenRow(screenRow).textContent).toBe('' + (screenRow + 1))
|
||||
expect(component.lineNumberNodeForScreenRow(screenRow).textContent).toBe('' + NBSP + (screenRow + 1))
|
||||
}
|
||||
expect(gutterNode.offsetWidth).toBeLessThan(initialGutterWidth)
|
||||
editor.getBuffer().insert([0, 0], '\n\n')
|
||||
@@ -957,9 +961,9 @@ describe('TextEditorComponent', function () {
|
||||
runAnimationFrames()
|
||||
|
||||
for (let screenRow = 0; screenRow <= 8; ++screenRow) {
|
||||
expect(component.lineNumberNodeForScreenRow(screenRow).textContent).toBe('' + NBSP + (screenRow + 1))
|
||||
expect(component.lineNumberNodeForScreenRow(screenRow).textContent).toBe('' + NBSP + NBSP + (screenRow + 1))
|
||||
}
|
||||
expect(component.lineNumberNodeForScreenRow(9).textContent).toBe('10')
|
||||
expect(component.lineNumberNodeForScreenRow(99).textContent).toBe('100')
|
||||
expect(gutterNode.offsetWidth).toBe(initialGutterWidth)
|
||||
})
|
||||
|
||||
|
||||
@@ -2819,7 +2819,7 @@ describe "TextEditorPresenter", ->
|
||||
expect(getLineNumberGutterState(presenter).content.maxLineNumberDigits).toBe 2
|
||||
|
||||
editor.setText("1\n2\n3")
|
||||
expect(getLineNumberGutterState(presenter).content.maxLineNumberDigits).toBe 1
|
||||
expect(getLineNumberGutterState(presenter).content.maxLineNumberDigits).toBe 2
|
||||
|
||||
describe ".content.tiles", ->
|
||||
lineNumberStateForScreenRow = (presenter, screenRow) ->
|
||||
|
||||
@@ -494,7 +494,10 @@ class TextEditorPresenter
|
||||
return
|
||||
|
||||
updateLineNumberGutterState: ->
|
||||
@lineNumberGutter.maxLineNumberDigits = @model.getLineCount().toString().length
|
||||
@lineNumberGutter.maxLineNumberDigits = Math.max(
|
||||
2,
|
||||
@model.getLineCount().toString().length
|
||||
)
|
||||
|
||||
updateCommonGutterState: ->
|
||||
@sharedGutterStyles.backgroundColor = if @gutterBackgroundColor isnt "rgba(0, 0, 0, 0)"
|
||||
|
||||
Reference in New Issue
Block a user