mirror of
https://github.com/atom/atom.git
synced 2026-01-25 06:48:28 -05:00
Merge branch 'master' of github.com:github/atom
This commit is contained in:
@@ -90,6 +90,21 @@ describe 'Buffer', ->
|
||||
expect(event.newText).toBe "second"
|
||||
expect(buffer.isModified()).toBeFalsy()
|
||||
|
||||
describe "when the buffer is modified", ->
|
||||
it "sets modifiedOnDisk to be true", ->
|
||||
fileChangeHandler = jasmine.createSpy('fileChange')
|
||||
buffer.file.on 'contents-change', fileChangeHandler
|
||||
|
||||
buffer.insert([0, 0], "a change")
|
||||
fs.write(path, "second")
|
||||
|
||||
expect(fileChangeHandler.callCount).toBe 0
|
||||
waitsFor "file to trigger contents-change event", ->
|
||||
fileChangeHandler.callCount > 0
|
||||
|
||||
runs ->
|
||||
expect(buffer.isModifiedOnDisk()).toBeTruthy()
|
||||
|
||||
describe ".isModified()", ->
|
||||
beforeEach ->
|
||||
buffer.destroy()
|
||||
@@ -284,6 +299,17 @@ describe 'Buffer', ->
|
||||
buffer = new Buffer
|
||||
expect(-> buffer.save()).toThrow()
|
||||
|
||||
describe "reload()", ->
|
||||
it "loads text from disk are sets @modified and @modifiedOnDisk to false", ->
|
||||
buffer.modified = true
|
||||
buffer.modifiedOnDisk = true
|
||||
buffer.setText("abc")
|
||||
|
||||
buffer.reload()
|
||||
expect(buffer.modifed).toBeFalsy()
|
||||
expect(buffer.modifiedOnDisk).toBeFalsy()
|
||||
expect(buffer.getText()).toBe(fileContents)
|
||||
|
||||
describe ".saveAs(path)", ->
|
||||
filePath = null
|
||||
|
||||
|
||||
@@ -12,6 +12,7 @@ class Buffer
|
||||
@idCounter = 1
|
||||
undoManager: null
|
||||
modified: null
|
||||
modifiedOnDisk: null
|
||||
lines: null
|
||||
file: null
|
||||
|
||||
@@ -32,6 +33,11 @@ class Buffer
|
||||
destroy: ->
|
||||
@file?.off()
|
||||
|
||||
reload: ->
|
||||
@setText(fs.read(@file.getPath()))
|
||||
@modified = false
|
||||
@modifiedOnDisk = false
|
||||
|
||||
getPath: ->
|
||||
@file?.getPath()
|
||||
|
||||
@@ -41,7 +47,9 @@ class Buffer
|
||||
@file?.off()
|
||||
@file = new File(path)
|
||||
@file.on "contents-change", =>
|
||||
unless @isModified()
|
||||
if @isModified()
|
||||
@modifiedOnDisk = true
|
||||
else
|
||||
@setText(fs.read(@file.getPath()))
|
||||
@modified = false
|
||||
@trigger "path-change", this
|
||||
@@ -167,9 +175,13 @@ class Buffer
|
||||
fs.write path, @getText()
|
||||
@file?.updateMd5()
|
||||
@modified = false
|
||||
@modifiedOnDisk = false
|
||||
@setPath(path)
|
||||
@trigger 'after-save'
|
||||
|
||||
isModifiedOnDisk: ->
|
||||
@modifiedOnDisk
|
||||
|
||||
isModified: ->
|
||||
@modified
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@ window.keymap.bindKeys '.editor',
|
||||
'meta-enter': 'newline-below'
|
||||
'tab': 'indent'
|
||||
'backspace': 'backspace'
|
||||
'shift-backspace': 'backspace'
|
||||
'delete': 'delete'
|
||||
'meta-x': 'cut'
|
||||
'meta-c': 'copy'
|
||||
|
||||
Reference in New Issue
Block a user