This commit is contained in:
Joao Moreno
2017-06-28 11:40:24 +02:00
parent 3d0bdea0a9
commit fd2173a817
2 changed files with 17 additions and 6 deletions

View File

@@ -982,14 +982,25 @@ export class CommandCenter {
@command('git.ignore')
async ignore(...resourceStates: SourceControlResourceState[]): Promise<void> {
const resources = resourceStates
.filter(s => s instanceof Resource) as Resource[];
if (resourceStates.length === 0 || !(resourceStates[0].resourceUri instanceof Uri)) {
const uri = window.activeTextEditor && window.activeTextEditor.document.uri;
if (!resources.length) {
if (!uri) {
return;
}
return await this.model.ignore([uri]);
}
const uris = resourceStates
.filter(s => s instanceof Resource)
.map(r => r.resourceUri);
if (!uris.length) {
return;
}
await this.model.ignore(resources);
await this.model.ignore(uris);
}
private createCommand(id: string, key: string, method: Function, skipModelCheck: boolean): (...args: any[]) => any {

View File

@@ -536,11 +536,11 @@ export class Model implements Disposable {
return await this.run(Operation.GetCommitTemplate, async () => this.repository.getCommitTemplate());
}
async ignore(files: Resource[]): Promise<void> {
async ignore(files: Uri[]): Promise<void> {
return await this.run(Operation.Ignore, async () => {
const ignoreFile = `${this.repository.root}${path.sep}.gitignore`;
const textToAppend = files
.map(file => path.relative(this.repository.root, file.resourceUri.fsPath).replace(/\\/g, '/'))
.map(uri => path.relative(this.repository.root, uri.fsPath).replace(/\\/g, '/'))
.join('\n');
const document = await new Promise(c => fs.exists(ignoreFile, c))