diff --git a/spec/atom/editor-spec.coffee b/spec/atom/editor-spec.coffee index 5e03e9f72..094077dea 100644 --- a/spec/atom/editor-spec.coffee +++ b/spec/atom/editor-spec.coffee @@ -1,3 +1,4 @@ +Buffer = require 'buffer' Editor = require 'editor' $ = require 'jquery' ck = require 'coffeekup' @@ -29,6 +30,20 @@ describe "Editor", -> editor.destroy() expect(editor.aceEditor.destroy).toHaveBeenCalled() + describe "setBuffer(buffer)", -> + it "sets the document on the aceSession", -> + buffer = new Buffer filePath + editor.setBuffer buffer + + fileContents = fs.read(filePath) + expect(editor.getAceSession().getValue()).toBe fileContents + + it "sets the language mode based on the file extension", -> + buffer = new Buffer "something.js" + editor.setBuffer buffer + + expect(editor.getAceSession().getMode().name).toBe 'javascript' + describe "open(url)", -> describe "when called with a url", -> it "loads a buffer for the given url into the editor", -> diff --git a/spec/atom/root-view-spec.coffee b/spec/atom/root-view-spec.coffee index 5cd656b69..a2d3ee5a8 100644 --- a/spec/atom/root-view-spec.coffee +++ b/spec/atom/root-view-spec.coffee @@ -51,7 +51,7 @@ describe "RootView", -> rootView.toggleFileFinder() expect(rootView.find('.file-finder')).not.toExist() - fit "shows all relative file paths for the current project", -> + it "shows all relative file paths for the current project", -> waitsForPromise -> rootView.toggleFileFinder() @@ -73,7 +73,7 @@ describe "RootView", -> rootView.toggleFileFinder() expect(rootView.find('.file-finder')).not.toExist() - fdescribe "when a path is selected in the file finder", -> + describe "when a path is selected in the file finder", -> it "opens the file associated with that path in the editor", -> waitsForPromise -> rootView.toggleFileFinder() runs -> diff --git a/src/atom/editor.coffee b/src/atom/editor.coffee index 7d9a7a7dd..9cf6f3fe7 100644 --- a/src/atom/editor.coffee +++ b/src/atom/editor.coffee @@ -12,7 +12,6 @@ class Editor extends Template viewProperties: aceEditor: null buffer: null - editorElement: null initialize: () -> @buildAceEditor() @@ -24,11 +23,13 @@ class Editor extends Template destroy: -> @aceEditor.destroy() - open: (url) -> - @buffer = new Buffer(url) + setBuffer: (@buffer) -> session = new EditSession(@buffer.aceDocument, @buffer.getMode()) @aceEditor.setSession(session) + open: (url) -> + @setBuffer(new Buffer(url)) + buildAceEditor: -> @aceEditor = ace.edit this[0] @aceEditor.setTheme(require "ace/theme/twilight") diff --git a/src/atom/root-view.coffee b/src/atom/root-view.coffee index 15d088aee..6e51e798f 100644 --- a/src/atom/root-view.coffee +++ b/src/atom/root-view.coffee @@ -39,6 +39,8 @@ class RootView extends Template else @project.getFilePaths().done (paths) => relativePaths = (path.replace(@project.url, "") for path in paths) - @fileFinder = FileFinder.build({urls: relativePaths, selected: (relativePath) => @editor.open(@project.url + relativePath)}) + @fileFinder = FileFinder.build + urls: relativePaths + selected: (relativePath) => @editor.open(@project.url + relativePath) @addPane(@fileFinder) @fileFinder.input.focus()