提交 9da6ceae 编写于 作者: P Peng Lyu

open PR in browser when clicking on status bar item.

上级 31760c4f
......@@ -12,6 +12,12 @@ import { ReviewManager } from './review/reviewManager';
export function registerCommands(context: vscode.ExtensionContext) {
// initialize resources
context.subscriptions.push(vscode.commands.registerCommand('pr.openInGitHub', (e: PullRequestModel | FileChangeTreeItem) => {
if (!e) {
if (ReviewManager.instance.currentPullRequest) {
vscode.commands.executeCommand('vscode.open', vscode.Uri.parse(ReviewManager.instance.currentPullRequest.html_url));
}
return;
}
if (e instanceof PullRequestModel) {
vscode.commands.executeCommand('vscode.open', vscode.Uri.parse(e.html_url));
} else {
......
......@@ -33,7 +33,6 @@ export class ReviewManager implements vscode.DecorationProvider {
private _documentCommentProvider: vscode.Disposable;
private _workspaceCommentProvider: vscode.Disposable;
private _command: vscode.Disposable;
private _prNumber: number;
private _disposables: vscode.Disposable[];
private _comments: Comment[] = [];
......@@ -63,6 +62,14 @@ export class ReviewManager implements vscode.DecorationProvider {
return this._statusBarItem;
}
private _prNumber: number;
private _pr: PullRequestModel;
get currentPullRequest(): PullRequestModel {
return this._pr;
}
private constructor(
private _context: vscode.ExtensionContext,
private _repository: Repository,
......@@ -140,6 +147,7 @@ export class ReviewManager implements vscode.DecorationProvider {
}
const pr = await githubRepo.getPullRequest(this._prNumber);
this._pr = pr;
if (!this._lastCommitSha) {
this._lastCommitSha = pr.head.sha;
}
......@@ -195,6 +203,7 @@ export class ReviewManager implements vscode.DecorationProvider {
this.registerCommentProvider();
this.statusBarItem.text = '$(git-branch) Pull Request #' + this._prNumber;
this.statusBarItem.command = 'pr.openInGitHub';
this.statusBarItem.show();
}
......@@ -464,6 +473,7 @@ export class ReviewManager implements vscode.DecorationProvider {
}
this.statusBarItem.text = '$(sync~spin) Switching to Review Mode';
this.statusBarItem.command = null;
this.statusBarItem.show();
try {
......@@ -496,6 +506,7 @@ export class ReviewManager implements vscode.DecorationProvider {
private clear(quitReviewMode: boolean) {
this._prNumber = null;
this._pr = null;
if (this._command) {
this._command.dispose();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册