   exit: (status) -> app.exit(status)
 
   constructor: (options) ->
-    {@resourcePath, @version, @devMode, @safeMode, @socketPath} = options
+    {@resourcePath, @version, @devMode, @safeMode, @socketPath, @enableMultiFolderProject} = options
 
     # Normalize to make sure drive letter case is consistent on Windows
     @resourcePath = path.normalize(@resourcePath) if @resourcePath

    @openWithOptions(options)

  # Opens a new window based on the options provided.
  openWithOptions: ({pathsToOpen, urlsToOpen, test, pidToKillWhenClosed, devMode, safeMode, newWindow, specDirectory, logFile, enableMultiFolderProject}) ->
    if test
      @runSpecs({exitWhenDone: true, @resourcePath, specDirectory, logFile})
    else if pathsToOpen.length > 0
      if enableMultiFolderProject
        @openPaths({pathsToOpen, pidToKillWhenClosed, newWindow, devMode, safeMode})
      else
        for pathToOpen in pathsToOpen
          @openPath({pathToOpen, pidToKillWhenClosed, newWindow, devMode, safeMode})
    else if urlsToOpen.length > 0
      @openUrl({urlToOpen, devMode, safeMode}) for urlToOpen in urlsToOpen
    else

  #   :windowDimensions - Object with height and width keys.
  #   :window - {AtomWindow} to open file paths in.
  openPaths: ({pathsToOpen, pidToKillWhenClosed, newWindow, devMode, safeMode, windowDimensions, window}={}) ->
    if pathsToOpen?.length > 1 and not @enableMultiFolderProject
      for pathToOpen in pathsToOpen
        @openPath({pathToOpen, pidToKillWhenClosed, newWindow, devMode, safeMode, windowDimensions, window})
      return

    pathsToOpen = (fs.normalize(pathToOpen) for pathToOpen in pathsToOpen)
    locationsToOpen = (@locationForPathToOpen(pathToOpen) for pathToOpen in pathsToOpen)

