From ad0669d814e01967997358319bbf16ebcb7158f6 Mon Sep 17 00:00:00 2001 From: Mostafa Eweda Date: Fri, 27 Feb 2015 15:49:18 -0800 Subject: [PATCH] Default directory provider should handle only local filesystem directories --- src/default-directory-provider.coffee | 5 ++++- src/project.coffee | 11 +++++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/default-directory-provider.coffee b/src/default-directory-provider.coffee index 7ecdbd354..5ddc89cca 100644 --- a/src/default-directory-provider.coffee +++ b/src/default-directory-provider.coffee @@ -21,7 +21,10 @@ class DefaultDirectoryProvider else path.dirname(projectPath) - new Directory(directoryPath) + if fs.isDirectorySync(projectPath) + return new Directory(directoryPath) + else + return null # Public: Create a Directory that corresponds to the specified URI. # diff --git a/src/project.coffee b/src/project.coffee index c92462ead..946ae4c55 100644 --- a/src/project.coffee +++ b/src/project.coffee @@ -39,6 +39,7 @@ class Project extends Model @emitter = new Emitter @buffers ?= [] @rootDirectories = [] + @packageRootDirectoryPaths = [] @repositories = [] @directoryProviders = [new DefaultDirectoryProvider()] @@ -203,10 +204,12 @@ class Project extends Model for provider in @directoryProviders break if directory = provider.directoryForURISync?(projectPath) if directory is null - # This should never happen because DefaultDirectoryProvider should always - # return a Directory. - throw new Error(projectPath + ' could not be resolved to a directory') - @rootDirectories.push(directory) + # DefaultDirectoryProvider doesn't handle specific directory protocols + # Atom Packages may use packageDirectoryPaths to add thier own paths later. + @packageRootDirectoryPaths.push(projectPath) + return + else + @rootDirectories.push(directory) repo = null for provider in @repositoryProviders