mirror of
https://github.com/atom/atom.git
synced 2026-01-24 22:38:20 -05:00
Buffer.getMode returns the ace mode based on the url.
This commit is contained in:
@@ -45,5 +45,13 @@ describe 'Buffer', ->
|
||||
buffer = new Buffer
|
||||
expect(-> buffer.save()).toThrow()
|
||||
|
||||
describe "getMode", ->
|
||||
describe "when given a url", ->
|
||||
it "sets 'mode' based on the file extension", ->
|
||||
buffer = new Buffer 'something.js'
|
||||
expect(buffer.getMode().name).toBe 'javascript'
|
||||
|
||||
|
||||
describe "when no url is given", ->
|
||||
it "sets 'mode' to text mode", ->
|
||||
buffer = new Buffer 'something'
|
||||
expect(buffer.getMode().name).toBe 'text'
|
||||
|
||||
@@ -11,6 +11,7 @@ class Buffer
|
||||
fs.read(@url)
|
||||
else
|
||||
""
|
||||
|
||||
@aceDocument = new Document text
|
||||
|
||||
getText: ->
|
||||
@@ -19,6 +20,18 @@ class Buffer
|
||||
setText: (text) ->
|
||||
@aceDocument.setValue text
|
||||
|
||||
getMode: ->
|
||||
return @mode if @mode
|
||||
|
||||
extension = @url.split('/').pop().split('.').pop()
|
||||
modeName = switch extension
|
||||
when "js" then "javascript"
|
||||
else "text"
|
||||
|
||||
@mode = new (require("ace/mode/#{modeName}").Mode)
|
||||
@mode.name = modeName
|
||||
@mode
|
||||
|
||||
save: ->
|
||||
if not @url then throw new Error("Tried to save buffer with no url")
|
||||
fs.write @url, @getText()
|
||||
|
||||
Reference in New Issue
Block a user