@types/atom
Version:
TypeScript definitions for atom
162 lines (125 loc) • 5.56 kB
TypeScript
import { Config, Disposable, Project } from "../index";
/** Represents the underlying git operations performed by Atom. */
export class GitRepository {
// Construction
/** Creates a new GitRepository instance. */
static open(path: string, options?: { refreshOnWindowFocus?: boolean | undefined }): GitRepository;
constructor(
path: string,
options?: {
refreshOnWindowFocus?: boolean | undefined;
config?: Config | undefined;
project?: Project | undefined;
},
);
// Lifecycle
/** Destroy this GitRepository object. */
destroy(): void;
/** Returns a boolean indicating if this repository has been destroyed. */
isDestroyed(): boolean;
// Event Subscription
/**
* Invoke the given callback when this GitRepository's destroy() method is
* invoked.
*/
onDidDestroy(callback: () => void): Disposable;
/**
* Invoke the given callback when a specific file's status has changed. When
* a file is updated, reloaded, etc, and the status changes, this will be fired.
*/
onDidChangeStatus(callback: (event: RepoStatusChangedEvent) => void): Disposable;
/** Invoke the given callback when a multiple files' statuses have changed. */
onDidChangeStatuses(callback: () => void): Disposable;
// Repository Details
/** A string indicating the type of version control system used by this repository. */
getType(): "git";
/** Returns the string path of the repository. */
getPath(): string;
/** Returns the string working directory path of the repository. */
getWorkingDirectory(): string;
/** Returns true if at the root, false if in a subfolder of the repository. */
isProjectAtRoot(): boolean;
/** Makes a path relative to the repository's working directory. */
relativize(): string;
/** Returns true if the given branch exists. */
hasBranch(branch: string): boolean;
/** Retrieves a shortened version of the HEAD reference value. */
getShortHead(path?: string): string;
/** Is the given path a submodule in the repository? */
isSubmodule(path: string): boolean;
/**
* Returns the number of commits behind the current branch is from the its
* upstream remote branch. The default reference is the HEAD.
* @param reference The branch reference name.
* @param path The path in the repository to get this ifnromation for, only
* needed if the repository contains submodules.
* @return Returns the number of commits behind the current branch is from its
* upstream remote branch.
*/
getAheadBehindCount(reference: string, path?: string): { ahead: number; behind: number };
/**
* Get the cached ahead/behind commit counts for the current branch's
* upstream branch.
*/
getCachedUpstreamAheadBehindCount(path?: string): { ahead: number; behind: number };
/** Returns the git configuration value specified by the key. */
getConfigValue(key: string, path?: string): string;
/** Returns the origin url of the repository. */
getOriginURL(path?: string): string;
/**
* Returns the upstream branch for the current HEAD, or null if there is no
* upstream branch for the current HEAD.
*/
getUpstreamBranch(path?: string): string | null;
/** Gets all the local and remote references. */
getReferences(path?: string): { heads: string[]; remotes: string[]; tags: string[] };
/** Returns the current string SHA for the given reference. */
getReferenceTarget(reference: string, path?: string): string;
// Reading Status
/** Returns true if the given path is modified. */
isPathModified(path: string): boolean;
/** Returns true if the given path is new. */
isPathNew(path: string): boolean;
/** Is the given path ignored? */
isPathIgnored(path: string): boolean;
/** Get the status of a directory in the repository's working directory. */
getDirectoryStatus(path: string): number;
/** Get the status of a single path in the repository. */
getPathStatus(path: string): number;
/** Get the cached status for the given path. */
getCachedPathStatus(path: string): number | null;
/** Returns true if the given status indicates modification. */
isStatusModified(status: number): boolean;
/** Returns true if the given status indicates a new path. */
isStatusNew(status: number): boolean;
// Retrieving Diffs
/**
* Retrieves the number of lines added and removed to a path.
* This compares the working directory contents of the path to the HEAD version.
*/
getDiffStats(path: string): { added: number; deleted: number };
/**
* Retrieves the line diffs comparing the HEAD version of the given path
* and the given text.
*/
getLineDiffs(
path: string,
text: string,
): Array<{ oldStart: number; newStart: number; oldLines: number; newLines: number }>;
// Checking Out
/**
* Restore the contents of a path in the working directory and index to the
* version at HEAD.
*/
checkoutHead(path: string): boolean;
/** Checks out a branch in your repository. */
checkoutReference(reference: string, create: boolean): boolean;
}
export interface RepoStatusChangedEvent {
path: string;
/**
* This value can be passed to ::isStatusModified or ::isStatusNew to get more
* information.
*/
pathStatus: number;
}