Remove telepath as a core dependency

Esse commit está contido em:
Nathan Sobo
2014-01-03 17:42:11 -07:00
commit e26d97d5ac
15 arquivos alterados com 59 adições e 82 exclusões
+2 -3
Ver Arquivo
@@ -1,12 +1,11 @@
{TelepathicObject, Model, Point, Range} = require 'telepath'
{Model} = require 'reactionary'
{Point, Range} = require 'text-buffer'
module.exports =
_: require 'underscore-plus'
BufferedNodeProcess: require '../src/buffered-node-process'
BufferedProcess: require '../src/buffered-process'
Directory: require '../src/directory'
TelepathicObject: TelepathicObject
Document: TelepathicObject # Deprecated Shim
File: require '../src/file'
fs: require 'fs-plus'
Git: require '../src/git'
-1
Ver Arquivo
@@ -45,7 +45,6 @@
"season": "0.14.0",
"semver": "1.1.4",
"space-pen": "2.0.2",
"telepath": "0.80.0",
"temp": "0.5.0",
"text-buffer": "0.3.0",
"underscore-plus": "0.6.1",
+4 -4
Ver Arquivo
@@ -7,7 +7,7 @@ describe "DisplayBuffer", ->
tabLength = 2
atom.packages.activatePackage('language-javascript', sync: true)
buffer = atom.project.bufferForPathSync('sample.js')
displayBuffer = atom.create(new DisplayBuffer({buffer, tabLength}))
displayBuffer = new DisplayBuffer({buffer, tabLength})
changeHandler = jasmine.createSpy 'changeHandler'
displayBuffer.on 'changed', changeHandler
@@ -150,7 +150,7 @@ describe "DisplayBuffer", ->
describe "when a newline is inserted, deleted, and re-inserted at the end of a wrapped line (regression)", ->
it "correctly renders the original wrapped line", ->
buffer = atom.project.buildBufferSync(null, '')
displayBuffer = atom.create(new DisplayBuffer({buffer, tabLength, editorWidthInChars: 30, softWrap: true}))
displayBuffer = new DisplayBuffer({buffer, tabLength, editorWidthInChars: 30, softWrap: true})
buffer.insert([0, 0], "the quick brown fox jumps over the lazy dog.")
buffer.insert([0, Infinity], '\n')
@@ -202,7 +202,7 @@ describe "DisplayBuffer", ->
displayBuffer.destroy()
buffer.release()
buffer = atom.project.bufferForPathSync('two-hundred.txt')
displayBuffer = atom.create(new DisplayBuffer({buffer, tabLength}))
displayBuffer = new DisplayBuffer({buffer, tabLength})
displayBuffer.on 'changed', changeHandler
describe "when folds are created and destroyed", ->
@@ -308,7 +308,7 @@ describe "DisplayBuffer", ->
describe "when there is another display buffer pointing to the same buffer", ->
it "does not create folds in the other display buffer", ->
otherDisplayBuffer = atom.create(new DisplayBuffer({buffer, tabLength}))
otherDisplayBuffer = new DisplayBuffer({buffer, tabLength})
displayBuffer.createFold(2, 4)
expect(otherDisplayBuffer.foldsStartingAtBufferRow(2).length).toBe 0
+1 -1
Ver Arquivo
@@ -5,7 +5,7 @@ describe "Selection", ->
beforeEach ->
buffer = atom.project.bufferForPathSync('sample.js')
editor = atom.create(new Editor(buffer: buffer, tabLength: 2))
editor = new Editor(buffer: buffer, tabLength: 2)
selection = editor.getSelection()
afterEach ->
+2 -3
Ver Arquivo
@@ -110,15 +110,14 @@ afterEach ->
atom.workspaceView?.remove?()
atom.workspaceView = null
atom.state.remove('workspaceView')
delete atom.state.workspaceView
atom.project?.destroy?()
atom.project = null
atom.state.remove('packageStates')
delete atom.state.packageStates
$('#jasmine-content').empty() unless window.debugContent
atom.destroyOrphans()
jasmine.unspy(atom, 'saveSync')
ensureNoPathSubscriptions()
+8 -8
Ver Arquivo
@@ -21,7 +21,7 @@ describe "TokenizedBuffer", ->
describe "when the buffer is destroyed", ->
beforeEach ->
buffer = atom.project.bufferForPathSync('sample.js')
tokenizedBuffer = atom.create(new TokenizedBuffer({buffer}))
tokenizedBuffer = new TokenizedBuffer({buffer})
startTokenizing(tokenizedBuffer)
it "stops tokenization", ->
@@ -33,7 +33,7 @@ describe "TokenizedBuffer", ->
describe "when the buffer contains soft-tabs", ->
beforeEach ->
buffer = atom.project.bufferForPathSync('sample.js')
tokenizedBuffer = atom.create(new TokenizedBuffer({buffer}))
tokenizedBuffer = new TokenizedBuffer({buffer})
startTokenizing(tokenizedBuffer)
tokenizedBuffer.on "changed", changeHandler = jasmine.createSpy('changeHandler')
@@ -313,7 +313,7 @@ describe "TokenizedBuffer", ->
beforeEach ->
atom.packages.activatePackage('language-coffee-script', sync: true)
buffer = atom.project.bufferForPathSync('sample-with-tabs.coffee')
tokenizedBuffer = atom.create(new TokenizedBuffer({buffer}))
tokenizedBuffer = new TokenizedBuffer({buffer})
startTokenizing(tokenizedBuffer)
afterEach ->
@@ -347,7 +347,7 @@ describe "TokenizedBuffer", ->
'abc\uD835\uDF97def'
//\uD835\uDF97xyz
"""
tokenizedBuffer = atom.create(new TokenizedBuffer({buffer}))
tokenizedBuffer = new TokenizedBuffer({buffer})
fullyTokenize(tokenizedBuffer)
afterEach ->
@@ -384,7 +384,7 @@ describe "TokenizedBuffer", ->
buffer = atom.project.bufferForPathSync()
buffer.setText "<div class='name'><%= User.find(2).full_name %></div>"
tokenizedBuffer = atom.create(new TokenizedBuffer({buffer}))
tokenizedBuffer = new TokenizedBuffer({buffer})
tokenizedBuffer.setGrammar(atom.syntax.selectGrammar('test.erb'))
fullyTokenize(tokenizedBuffer)
@@ -403,7 +403,7 @@ describe "TokenizedBuffer", ->
it "returns the correct token (regression)", ->
buffer = atom.project.bufferForPathSync('sample.js')
tokenizedBuffer = atom.create(new TokenizedBuffer({buffer}))
tokenizedBuffer = new TokenizedBuffer({buffer})
fullyTokenize(tokenizedBuffer)
expect(tokenizedBuffer.tokenForPosition([1,0]).scopes).toEqual ["source.js"]
expect(tokenizedBuffer.tokenForPosition([1,1]).scopes).toEqual ["source.js"]
@@ -412,7 +412,7 @@ describe "TokenizedBuffer", ->
describe ".bufferRangeForScopeAtPosition(selector, position)", ->
beforeEach ->
buffer = atom.project.bufferForPathSync('sample.js')
tokenizedBuffer = atom.create(new TokenizedBuffer({buffer}))
tokenizedBuffer = new TokenizedBuffer({buffer})
fullyTokenize(tokenizedBuffer)
describe "when the selector does not match the token at the position", ->
@@ -431,7 +431,7 @@ describe "TokenizedBuffer", ->
it "updates the tab length of the tokenized lines", ->
buffer = atom.project.bufferForPathSync('sample.js')
buffer.setText('\ttest')
tokenizedBuffer = atom.create(new TokenizedBuffer({buffer}))
tokenizedBuffer = new TokenizedBuffer({buffer})
fullyTokenize(tokenizedBuffer)
expect(tokenizedBuffer.tokenForPosition([0,0]).value).toBe ' '
atom.config.set('editor.tabLength', 6)
+2 -2
Ver Arquivo
@@ -93,8 +93,8 @@ describe "Window", ->
atom.unloadEditorWindow()
expect(atom.state.getObject('workspaceView')).toEqual workspaceViewState
expect(atom.state.getObject('syntax')).toEqual syntaxState
expect(atom.state.workspaceView).toEqual workspaceViewState
expect(atom.state.syntax).toEqual syntaxState
expect(atom.saveSync).toHaveBeenCalled()
it "unsubscribes from all buffers", ->
+33 -38
Ver Arquivo
@@ -9,12 +9,10 @@ dialog = remote.require 'dialog'
app = remote.require 'app'
_ = require 'underscore-plus'
telepath = require 'telepath'
{Model} = telepath
{Model} = require 'reactionary'
fs = require 'fs-plus'
{$} = require './space-pen-extensions'
SiteShim = require './site-shim'
WindowEventHandler = require './window-event-handler'
# Public: Atom global for dealing with packages, themes, menus, and the window.
@@ -35,6 +33,8 @@ WindowEventHandler = require './window-event-handler'
# * `atom.themes` - A {ThemeManager} instance
module.exports =
class Atom extends Model
@version: 1
# Public: Load or create the Atom environment in the given mode
#
# - mode: Pass 'editor' or 'spec' depending on the kind of environment you
@@ -42,28 +42,27 @@ class Atom extends Model
#
# Returns an Atom instance, fully initialized
@loadOrCreate: (mode) ->
telepath.devMode = not @isReleasedVersion()
@deserialize(@loadState(mode)) ? new this({mode, @version})
if documentState = @loadDocumentState(mode)
environment = @deserialize(documentState)
environment ? @createAsRoot({mode})
# Private: Deserializes the Atom environment from a state object
@deserialize: (state) ->
new this(state) if state?.version is @version
# Private: Loads and returns the serialized state corresponding to this window
# if it exists; otherwise returns undefined.
@loadDocumentState: (mode) ->
@loadState: (mode) ->
statePath = @getStatePath(mode)
if fs.existsSync(statePath)
try
documentStateString = fs.readFileSync(statePath, 'utf8')
stateString = fs.readFileSync(statePath, 'utf8')
catch error
console.warn "Error reading window state: #{statePath}", error.stack, error
else
documentStateString = @getLoadSettings().windowState
stateString = @getLoadSettings().windowState
try
JSON.parse(documentStateString) if documentStateString?
JSON.parse(stateString) if documentStateString?
catch error
console.warn "Error parsing window state: #{statePath} #{error.stack}", error
@@ -112,14 +111,11 @@ class Atom extends Model
@isReleasedVersion: ->
not /\w{7}/.test(@getVersion()) # Check if the release is a 7-character SHA prefix
@properties
mode: null
project: null
workspaceViewParentSelector: 'body'
# Private: Called by telepath. I'd like this to be merged with initialize eventually.
created: ->
# Private: Call .loadOrCreate instead
constructor: (@state) ->
{@mode} = @state
DeserializerManager = require './deserializer-manager'
@deserializers = new DeserializerManager(this)
@@ -150,8 +146,7 @@ class Atom extends Model
@contextMenu = new ContextMenuManager(devMode)
@menu = new MenuManager({resourcePath})
@pasteboard = new Pasteboard()
@syntax = @deserializers.deserialize(@state.get('syntax')) ? new Syntax()
@site = new SiteShim(this)
@syntax = @deserializers.deserialize(@state.syntax) ? new Syntax()
@subscribe @packages, 'activated', => @watchThemes()
@@ -160,11 +155,15 @@ class Atom extends Model
TokenizedBuffer = require './tokenized-buffer'
DisplayBuffer = require './display-buffer'
Editor = require './editor'
@registerRepresentationClasses(Project, TextBuffer, TokenizedBuffer, DisplayBuffer, Editor)
@createRepresentations()
@windowEventHandler = new WindowEventHandler
# Deprecated: Callers should be converted to use atom.deserializers
registerRepresentationClass: ->
# Deprecated: Callers should be converted to use atom.deserializers
registerRepresentationClasses: ->
# Private:
setBodyPlatformClass: ->
document.body.classList.add("platform-#{process.platform}")
@@ -204,7 +203,7 @@ class Atom extends Model
# Private:
restoreWindowDimensions: ->
windowDimensions = @state.getObject('windowDimensions') ? {}
windowDimensions = @state.windowDimensions ? {}
{initialSize} = @getLoadSettings()
windowDimensions.height ?= initialSize?.height ? global.screen.availHeight
windowDimensions.width ?= initialSize?.width ? Math.min(global.screen.availWidth, 1024)
@@ -212,7 +211,7 @@ class Atom extends Model
# Private:
storeWindowDimensions: ->
@state.set('windowDimensions', @getWindowDimensions())
@state.windowDimensions = @getWindowDimensions()
# Public: Get the load settings for the current window.
#
@@ -228,16 +227,13 @@ class Atom extends Model
# Private:
deserializeWorkspaceView: ->
WorkspaceView = require './workspace-view'
@workspaceView = @deserializers.deserialize(@state.get('workspaceView'))
unless @workspaceView?
@workspaceView = new WorkspaceView()
@state.set('workspaceView', @workspaceView.serialize())
@workspaceView = @deserializers.deserialize(@state.workspaceView) ? new WorkspaceView
$(@workspaceViewParentSelector).append(@workspaceView)
# Private:
deserializePackageStates: ->
@packages.packageStates = @state.getObject('packageStates') ? {}
@state.remove('packageStates')
@packages.packageStates = @state.packageStates ? {}
delete @state.packageStates
# Private:
deserializeEditorWindow: ->
@@ -259,7 +255,6 @@ class Atom extends Model
@keymap.loadBundledKeymaps()
@themes.loadBaseStylesheets()
@packages.loadPackages()
@createRepresentations()
@deserializeEditorWindow()
@packages.activate()
@keymap.loadUserKeymap()
@@ -277,10 +272,10 @@ class Atom extends Model
unloadEditorWindow: ->
return if not @project and not @workspaceView
@state.set('syntax', @syntax.serialize())
@state.set('workspaceView', @workspaceView.serialize())
@state.syntax = @syntax.serialize()
@state.workspaceView = @workspaceView.serialize()
@packages.deactivatePackages()
@state.set('packageStates', @packages.packageStates)
@state.packageStates = @packages.packageStates
@saveSync()
@workspaceView.remove()
@workspaceView = null
@@ -392,7 +387,7 @@ class Atom extends Model
setImmediate =>
@show()
@focus()
@setFullScreen(true) if @workspaceView.getState().get('fullScreen')
@setFullScreen(true) if @workspaceView.fullScreen
# Public: Close the current window.
close: ->
@@ -448,11 +443,11 @@ class Atom extends Model
# Private:
saveSync: ->
stateString = JSON.stringify(@state)
if statePath = @constructor.getStatePath(@mode)
super(statePath)
fs.writeFileSync(statePath, stateString, 'utf8')
else
@getCurrentWindow().loadSettings.windowState = JSON.stringify(@serializeForPersistence())
@getCurrentWindow().loadSettings.windowState = stateString
# Public: Get the time taken to completely load the current window.
#
-7
Ver Arquivo
@@ -1,5 +1,3 @@
{TelepathicObject, Model} = require 'telepath'
# Public: Manages the deserializers used for serialized state
#
# Should be accessed via `atom.deserializers`
@@ -12,12 +10,10 @@ class DeserializerManager
# Public: Register the given class(es) as deserializers.
add: (klasses...) ->
@deserializers[klass.name] = klass for klass in klasses
@environment?.registerRepresentationClasses(klasses...)
# Public: Add a deferred deserializer for the given class name.
addDeferred: (name, fn) ->
@deferredDeserializers[name] = fn
@environment?.registerDeferredRepresentationClass(name, fn)
# Public: Remove the given class(es) as deserializers.
remove: (klasses...) ->
@@ -26,13 +22,10 @@ class DeserializerManager
# Public: Deserialize the state and params.
deserialize: (state, params) ->
return unless state?
return state unless state.constructor is Object or state instanceof TelepathicObject
if deserializer = @get(state)
stateVersion = state.get?('version') ? state.version
return if deserializer.version? and deserializer.version isnt stateVersion
if (state instanceof TelepathicObject) and not deserializer.acceptsDocuments
state = state.toObject()
deserializer.deserialize(state, params)
else
console.warn "No deserializer found for", state
+1 -1
Ver Arquivo
@@ -56,7 +56,7 @@ class DisplayBuffer extends Model
params
copy: ->
newDisplayBuffer = atom.create(new DisplayBuffer({@buffer, tabLength: @getTabLength()}))
newDisplayBuffer = new DisplayBuffer({@buffer, tabLength: @getTabLength()})
for marker in @findMarkers(displayBufferId: @id)
marker.copy(displayBufferId: newDisplayBuffer.id)
newDisplayBuffer
+3 -3
Ver Arquivo
@@ -105,12 +105,12 @@ class EditorView extends View
if editor?
@edit(editor)
else if @mini
@edit(atom.create(new Editor
buffer: atom.create(new TextBuffer)
@edit(new Editor
buffer: new TextBuffer
softWrap: false
tabLength: 2
softTabs: true
))
)
else
throw new Error("Must supply an Editor or mini: true")
+1 -1
Ver Arquivo
@@ -1,4 +1,4 @@
{Point, Range} = require 'telepath'
{Point, Range} = require 'text-buffer'
{View, $$} = require './space-pen-extensions'
# Internal:
+1 -1
Ver Arquivo
@@ -1,4 +1,4 @@
{Range} = require 'telepath'
{Range} = require 'text-buffer'
{Emitter} = require 'emissary'
{pick} = require 'underscore-plus'
-8
Ver Arquivo
@@ -1,8 +0,0 @@
# Private: TODO remove once telepath upgrades are complete.
module.exports =
class SiteShim
constructor: (@environment) ->
{@id} = @environment.state.siteId
createDocument: (values) ->
@environment.create(values)
+1 -1
Ver Arquivo
@@ -59,7 +59,7 @@ class WorkspaceView extends View
@div class: 'panes', outlet: 'panes'
# Private:
initialize: ({panes}={}) ->
initialize: ({panes, @fullScreen}={}) ->
panes ?= new PaneContainer
@panes.replaceWith(panes)
@panes = panes