Disable buffer modified indicator if buffer content matches content on disk

This commit is contained in:
Will Farrington
2012-10-08 17:55:35 -10:00
parent 7dd69cfecd
commit 4b3505d9b5
3 changed files with 20 additions and 5 deletions

View File

@@ -47,13 +47,24 @@ describe "StatusBar", ->
expect(statusBar.currentPath.text()).toBe 'sample.txt'
describe "when the associated editor's buffer's content changes", ->
it "updates the buffer modified indicator", ->
it "enables the buffer modified indicator", ->
expect(statusBar.bufferModified.text()).toBe ''
oldText = buffer.getText()
editor.insertText("/")
editor.insertText("\n")
expect(statusBar.bufferModified.text()).toBe '*'
editor.backspace()
describe "when the buffer content has changed from the content on disk", ->
it "disables the buffer modified indicator on save", ->
editor.insertText("\n")
editor.save()
expect(statusBar.bufferModified.text()).toBe ''
editor.backspace()
editor.save()
it "disables the buffer modified indicator if the content matches again", ->
editor.insertText("\n")
expect(statusBar.bufferModified.text()).toBe '*'
editor.backspace()
buffer.save()
expect(statusBar.bufferModified.text()).toBe ''
describe "when the associated editor's cursor position changes", ->

View File

@@ -248,6 +248,9 @@ class Buffer
isModified: ->
@modified
contentDifferentOnDisk: ->
fs.read(@file.getPath()) != @getText()
getAnchors: -> new Array(@anchors...)
addAnchor: (options) ->

View File

@@ -33,7 +33,8 @@ class StatusBar extends View
@editor.getBuffer().on 'buffer-change', => @updateBufferModifiedText()
updateBufferModifiedText: ->
if @editor.getBuffer().isModified()
buffer = @editor.getBuffer()
if buffer.isModified() and buffer.contentDifferentOnDisk()
@bufferModified.text('*')
else
@bufferModified.text('')