1
1
mirror of https://github.com/kahole/edamagit.git synced 2024-10-26 09:00:54 +03:00

Implement basic copy-buffer-revision (#69)

This commit is contained in:
Steven Guh 2020-08-05 12:59:11 -07:00 committed by GitHub
parent 113a1dec4a
commit bc2594132e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 32 additions and 3 deletions

View File

@ -193,7 +193,11 @@
},
{
"command": "magit.copy-section-value",
"title": "Magit Copy Section value"
"title": "Magit Copy Section Value"
},
{
"command": "magit.copy-buffer-revision",
"title": "Magit Copy Buffer Revision"
}
],
"menus": {

View File

@ -0,0 +1,21 @@
import { env, window } from 'vscode';
import * as Constants from '../common/constants';
import { MagitRepository } from '../models/magitRepository';
import { DocumentView } from '../views/general/documentView';
import MagitStatusView from '../views/magitStatusView';
import { CommitDetailView } from '../views/commitDetailView';
export async function copyBufferRevisionCommands(repository: MagitRepository, currentView: DocumentView) {
let sectionValue: string | undefined;
if (currentView instanceof MagitStatusView) {
sectionValue = currentView.HEAD?.commit;
} else if (currentView instanceof CommitDetailView) {
sectionValue = currentView.commit.hash;
}
if (sectionValue) {
await env.clipboard.writeText(sectionValue);
window.setStatusBarMessage(sectionValue, Constants.StatusMessageDisplayTimeout);
}
}

View File

@ -39,6 +39,7 @@ import { reverting } from './commands/revertingCommands';
import { reverseAtPoint } from './commands/reverseAtPointCommands';
import { blameFile } from './commands/blamingCommands';
import { copySectionValueCommand } from './commands/copySectionValueCommands';
import { copyBufferRevisionCommands } from './commands/copyBufferRevisionCommands';
export const magitRepositories: Map<string, MagitRepository> = new Map<string, MagitRepository>();
export const views: Map<string, DocumentView> = new Map<string, DocumentView>();
@ -122,6 +123,7 @@ export function activate(context: ExtensionContext) {
context.subscriptions.push(commands.registerTextEditorCommand('magit.unstage-file', Command.primeFileCommand(unstageFile)));
context.subscriptions.push(commands.registerTextEditorCommand('magit.copy-section-value', Command.primeRepoAndView(copySectionValueCommand)));
context.subscriptions.push(commands.registerTextEditorCommand('magit.copy-buffer-revision', Command.primeRepoAndView(copyBufferRevisionCommands)));
context.subscriptions.push(commands.registerCommand('magit.dispatch', async () => {
const editor = window.activeTextEditor;

View File

@ -12,7 +12,7 @@ export class CommitDetailView extends DocumentView {
isHighlightable = false;
needsUpdate = false;
constructor(uri: Uri, private commit: MagitCommit) {
constructor(uri: Uri, public commit: MagitCommit) {
super(uri);
const commitTextView = new TextView(commit.diff);

View File

@ -15,10 +15,12 @@ import { MagitRepository } from '../models/magitRepository';
import { RebasingSectionView } from './rebasing/rebasingSectionView';
import { CherryPickingSectionView } from './cherryPicking/cherryPickingSectionView';
import { RevertingSectionView } from './reverting/revertingSectionView';
import { MagitBranch } from '../models/magitBranch';
export default class MagitStatusView extends DocumentView {
static UriPath: string = 'status.magit';
public HEAD?: MagitBranch;
constructor(uri: Uri, magitState: MagitState) {
super(uri);
@ -26,7 +28,7 @@ export default class MagitStatusView extends DocumentView {
}
provideContent(magitState: MagitState) {
this.HEAD = magitState.HEAD;
this.subViews = [];
if (magitState.latestGitError) {