Merge pull request #16455 from fordhurley/fix-unique-editor-ids

Ensure that new editors get unique ids
This commit is contained in:
Max Brunsfeld
2017-12-27 14:43:40 -08:00
committed by GitHub
2 changed files with 15 additions and 0 deletions

View File

@@ -20,6 +20,17 @@ describe('TextEditor', () => {
await atom.packages.activatePackage('language-javascript')
})
it('generates unique ids for each editor', async () => {
// Deserialized editors are initialized with the serialized id. We can
// initialize an editor with what we expect to be the next id:
const deserialized = new TextEditor({id: editor.id+1})
expect(deserialized.id).toEqual(editor.id+1)
// The id generator should skip the id used up by the deserialized one:
const fresh = new TextEditor()
expect(fresh.id).toNotEqual(deserialized.id)
})
describe('when the editor is deserialized', () => {
it('restores selections and folds based on markers in the buffer', async () => {
editor.setSelectedBufferRange([[1, 2], [3, 4]])

View File

@@ -119,6 +119,10 @@ class TextEditor {
}
this.id = params.id != null ? params.id : nextId++
if (this.id >= nextId) {
// Ensure that new editors get unique ids:
nextId = this.id + 1
}
this.initialScrollTopRow = params.initialScrollTopRow
this.initialScrollLeftColumn = params.initialScrollLeftColumn
this.decorationManager = params.decorationManager