Reworks upstream status info in quick pick

This commit is contained in:
Eric Amodio
2017-03-22 01:32:37 -04:00
parent dd0762152f
commit 671f1ca6c1

View File

@@ -100,16 +100,22 @@ export class RepoStatusQuickPick {
} }
if (files.length) { if (files.length) {
items.splice(0, 0, new CommandQuickPickItem({ items.push(new OpenStatusFilesCommandQuickPickItem(files.filter(_ => _.status !== 'D')));
items.push(new CommandQuickPickItem({
label: '$(x) Close Unchanged Files', label: '$(x) Close Unchanged Files',
description: null description: null
}, Commands.CloseUnchangedFiles)); }, Commands.CloseUnchangedFiles));
items.splice(0, 0, new OpenStatusFilesCommandQuickPickItem(files.filter(_ => _.status !== 'D'))); }
else {
items.push(new CommandQuickPickItem({
label: `No working changes`,
description: null
}, Commands.ShowQuickRepoStatus, [goBackCommand]));
} }
if (status.upstream && status.state.ahead) { if (status.upstream && status.state.ahead) {
items.splice(0, 0, new CommandQuickPickItem({ items.splice(0, 0, new CommandQuickPickItem({
label: '$(git-commit) Show Commits Ahead', label: `$(cloud-upload)\u00a0 ${status.state.ahead} Commits ahead of \u00a0$(git-branch) ${status.upstream}`,
description: `\u00a0 \u2014 \u00a0\u00a0 shows commits in \u00a0$(git-branch) ${status.branch} but not \u00a0$(git-branch) ${status.upstream}` description: `\u00a0 \u2014 \u00a0\u00a0 shows commits in \u00a0$(git-branch) ${status.branch} but not \u00a0$(git-branch) ${status.upstream}`
}, Commands.ShowQuickRepoHistory, [ }, Commands.ShowQuickRepoHistory, [
new GitUri(Uri.file(status.repoPath), { fileName: '', repoPath: status.repoPath, sha: `${status.upstream}..${status.branch}` }), new GitUri(Uri.file(status.repoPath), { fileName: '', repoPath: status.repoPath, sha: `${status.upstream}..${status.branch}` }),
@@ -125,7 +131,7 @@ export class RepoStatusQuickPick {
if (status.upstream && status.state.behind) { if (status.upstream && status.state.behind) {
items.splice(0, 0, new CommandQuickPickItem({ items.splice(0, 0, new CommandQuickPickItem({
label: '$(git-commit) Show Commits Behind', label: `$(cloud-download)\u00a0 ${status.state.behind} Commits behind \u00a0$(git-branch) ${status.upstream}`,
description: `\u00a0 \u2014 \u00a0\u00a0 shows commits in \u00a0$(git-branch) ${status.upstream} but not \u00a0$(git-branch) ${status.branch} (since \u00a0$(git-commit) ${status.sha.substring(0, 8)})` description: `\u00a0 \u2014 \u00a0\u00a0 shows commits in \u00a0$(git-branch) ${status.upstream} but not \u00a0$(git-branch) ${status.branch} (since \u00a0$(git-commit) ${status.sha.substring(0, 8)})`
}, Commands.ShowQuickRepoHistory, [ }, Commands.ShowQuickRepoHistory, [
new GitUri(Uri.file(status.repoPath), { fileName: '', repoPath: status.repoPath, sha: `${status.sha}..${status.upstream}` }), new GitUri(Uri.file(status.repoPath), { fileName: '', repoPath: status.repoPath, sha: `${status.sha}..${status.upstream}` }),
@@ -139,22 +145,23 @@ export class RepoStatusQuickPick {
); );
} }
if (status.upstream && !status.state.ahead && !status.state.behind) {
items.splice(0, 0, new CommandQuickPickItem({
label: `$(git-branch) ${status.branch} is up-to-date with \u00a0$(git-branch) ${status.upstream}`,
description: null
}, Commands.ShowQuickRepoStatus, [goBackCommand]));
}
if (goBackCommand) { if (goBackCommand) {
items.splice(0, 0, goBackCommand); items.splice(0, 0, goBackCommand);
} }
const scope = await Keyboard.instance.beginScope({ left: goBackCommand }); const scope = await Keyboard.instance.beginScope({ left: goBackCommand });
let syncStatus = '';
if (status.upstream) {
syncStatus = status.state.ahead || status.state.behind
? ` ${status.state.behind}\u2193 ${status.state.ahead}\u2191 `
: ` \u27F3 `;
}
const pick = await window.showQuickPick(items, { const pick = await window.showQuickPick(items, {
matchOnDescription: true, matchOnDescription: true,
placeHolder: `${syncStatus} ${status.branch}${status.upstream ? ` \u00a0\u2194\u00a0 ${status.upstream}` : ''}`, placeHolder: `status of ${status.branch}${status.upstream ? ` \u00a0\u2194\u00a0 ${status.upstream}` : ''}`,
ignoreFocusOut: getQuickPickIgnoreFocusOut(), ignoreFocusOut: getQuickPickIgnoreFocusOut(),
onDidSelectItem: (item: QuickPickItem) => { onDidSelectItem: (item: QuickPickItem) => {
scope.setKeyCommand('right', item); scope.setKeyCommand('right', item);