Construct Project during Atom environment construction

Signed-off-by: Max Brunsfeld <maxbrunsfeld@github.com>
This commit is contained in:
Nathan Sobo
2015-10-02 12:39:18 -06:00
parent d2e6cb0097
commit 3491fa3650
6 changed files with 19 additions and 20 deletions

View File

@@ -160,6 +160,9 @@ class Atom extends Model
GrammarRegistry = require './grammar-registry'
@grammars = new GrammarRegistry({@config})
Project = require './project'
@project = new Project({notificationManager: @notifications, packageManager: @packages, @confirm})
setConfigSchema: ->
@config.setSchema null, {type: 'object', properties: _.clone(require('./config-schema'))}
@@ -651,13 +654,6 @@ class Atom extends Model
false
deserializeProject: ->
Project = require './project'
startTime = Date.now()
@project = new Project()
@project.deserialize(@state.project, @deserializers) if @state.project?
@deserializeTimings.project = Date.now() - startTime
deserializeWorkspace: ->
Workspace = require './workspace'
@@ -679,7 +675,6 @@ class Atom extends Model
@grammars.grammarOverridesByPath = grammarOverridesByPath
@deserializePackageStates()
@deserializeProject()
@deserializeWorkspace()
loadThemes: ->
@@ -741,6 +736,10 @@ class Atom extends Model
@deserializeTimings.atom = Date.now() - startTime
startTime = Date.now()
@project.deserialize(@state.project, @deserializers) if @state.project?
@deserializeTimings.project = Date.now() - startTime
getStateKey: (paths) ->
if paths?.length > 0
sha1 = crypto.createHash('sha1').update(paths.slice().sort().join("\n")).digest('hex')

View File

@@ -21,7 +21,7 @@ class Project extends Model
Section: Construction and Destruction
###
constructor: ->
constructor: ({@confirm, @notificationManager, packageManager}) ->
@emitter = new Emitter
@buffers = []
@paths = []
@@ -30,7 +30,7 @@ class Project extends Model
@directoryProviders = []
@defaultDirectoryProvider = new DefaultDirectoryProvider()
atom.packages.serviceHub.consume(
packageManager.serviceHub.consume(
'atom.directory-provider',
'^0.1.0',
(provider) => @directoryProviders.unshift(provider))
@@ -42,7 +42,7 @@ class Project extends Model
@repositoryPromisesByPath = new Map()
@repositoryProviders = [new GitRepositoryProvider(this)]
atom.packages.serviceHub.consume(
packageManager.serviceHub.consume(
'atom.repository-provider',
'^0.1.0',
(provider) =>
@@ -417,9 +417,9 @@ class Project extends Model
subscribeToBuffer: (buffer) ->
buffer.onDidDestroy => @removeBuffer(buffer)
buffer.onWillThrowWatchError ({error, handle}) ->
buffer.onWillThrowWatchError ({error, handle}) =>
handle()
atom.notifications.addWarning """
@notificationManager.addWarning """
Unable to read file after file `#{error.eventType}` event.
Make sure you have permission to access `#{buffer.getPath()}`.
""",