mirror of
https://github.com/ckaczor/vscode-gitlens.git
synced 2026-01-14 17:25:28 -05:00
Renames quickpicks/quickpicks to quickpicks/common Moves git quick picks into common and other quick pick files
54 lines
2.0 KiB
TypeScript
54 lines
2.0 KiB
TypeScript
'use strict';
|
|
import { TextEditor, Uri, window } from 'vscode';
|
|
import { ActiveEditorCommand, Commands } from './common';
|
|
import { GitRemote, RemoteOpenType } from '../gitService';
|
|
import { Logger } from '../logger';
|
|
import { CommandQuickPickItem, OpenRemoteCommandQuickPickItem, RemotesQuickPick } from '../quickPicks';
|
|
|
|
export class OpenInRemoteCommand extends ActiveEditorCommand {
|
|
|
|
constructor() {
|
|
super(Commands.OpenInRemote);
|
|
}
|
|
|
|
async execute(editor: TextEditor, uri?: Uri, remotes?: GitRemote[], type?: RemoteOpenType, args?: string[], goBackCommand?: CommandQuickPickItem) {
|
|
if (!(uri instanceof Uri)) {
|
|
uri = editor && editor.document && editor.document.uri;
|
|
}
|
|
|
|
try {
|
|
if (!remotes) return undefined;
|
|
|
|
if (remotes.length === 1) {
|
|
const command = new OpenRemoteCommandQuickPickItem(remotes[0], type, ...args);
|
|
return command.execute();
|
|
}
|
|
|
|
let placeHolder: string;
|
|
switch (type) {
|
|
case 'branch':
|
|
placeHolder = `open ${args[0]} branch in\u2026`;
|
|
break;
|
|
case 'commit':
|
|
const shortSha = args[0].substring(0, 8);
|
|
placeHolder = `open commit ${shortSha} in\u2026`;
|
|
break;
|
|
case 'file':
|
|
case 'working-file':
|
|
const shortFileSha = (args[2] && args[2].substring(0, 8)) || '';
|
|
const shaSuffix = shortFileSha ? ` \u00a0\u2022\u00a0 ${shortFileSha}` : '';
|
|
|
|
placeHolder = `open ${args[0]}${shaSuffix} in\u2026`;
|
|
break;
|
|
}
|
|
|
|
const pick = await RemotesQuickPick.show(remotes, placeHolder, type, args, goBackCommand);
|
|
return pick && pick.execute();
|
|
|
|
}
|
|
catch (ex) {
|
|
Logger.error(ex, 'OpenInRemoteCommand');
|
|
return window.showErrorMessage(`Unable to open in remote provider. See output channel for more details`);
|
|
}
|
|
}
|
|
} |