Project

Description

Represents a project that's opened in Atom.

An instance of this class is always available as the atom.project global.

API documentation

Event Subscription

::onDidChangePaths(callback)

Invoke the given callback when the project paths change.

Argument Description
callback

Function to be called after the project paths change.

projectPaths

An Array of String project paths.

Return values
  • Returns a Disposable on which .dispose() can be called to unsubscribe.

Accessing the git repository

::getRepositories()

Get an Array of GitRepositorys associated with the project's directories.

This method will be removed in 2.0 because it does synchronous I/O. Prefer the following, which evaluates to a Promise that resolves to an Array of Repository objects:

Promise.all(atom.project.getDirectories().map(
    atom.project.repositoryForDirectory.bind(atom.project)))

::repositoryForDirectory(directory)

Get the repository for a given directory asynchronously.

Argument Description
directory

Directory for which to get a Repository.

Return values
  • Returns a Promise that resolves with either:

    • Repository if a repository can be created for the given directory
    • null if no repository can be created for the given directory.

Managing Paths

::getPaths()

Get an Array of Strings containing the paths of the project's directories.

::setPaths(projectPaths)

Set the paths of the project's directories.

Argument Description
projectPaths

Array of String paths.

::addPath(projectPath)

Add a path to the project's list of root paths

Argument Description
projectPath

String The path to the directory to add.

::removePath(projectPath)

remove a path from the project's list of root paths.

Argument Description
projectPath

String The path to remove.

::getDirectories()

Get an Array of Directorys associated with this project.

::relativizePath(fullPath)

Get the path to the project directory that contains the given path, and the relative path from that project directory to the given path.

Argument Description
fullPath

String An absolute path.

Return values
  • Returns an Array with two elements:

    • projectPath The String path to the project directory that contains the given path, or null if none is found.
    • relativePath String The relative path from the project directory to the given path.

::contains(pathToCheck)

Determines whether the given path (real or symbolic) is inside the project's directory.

This method does not actually check if the path exists, it just checks their locations relative to each other.

Argument Description
pathToCheck

String path

Return values
  • Returns whether the path is inside the project's root directory.