mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-22 09:38:38 +01:00
@@ -6,8 +6,7 @@
|
||||
'use strict';
|
||||
|
||||
import { workspace, Uri, Disposable, Event, EventEmitter } from 'vscode';
|
||||
import * as path from 'path';
|
||||
import { Git } from './git';
|
||||
import { Model } from './model';
|
||||
|
||||
export class GitContentProvider {
|
||||
|
||||
@@ -18,7 +17,7 @@ export class GitContentProvider {
|
||||
|
||||
private uris = new Set<Uri>();
|
||||
|
||||
constructor(private git: Git, private rootPath: string, onGitChange: Event<Uri>) {
|
||||
constructor(private model: Model, onGitChange: Event<Uri>) {
|
||||
this.disposables.push(
|
||||
onGitChange(this.fireChangeEvents, this),
|
||||
workspace.registerTextDocumentContentProvider('git', this)
|
||||
@@ -32,19 +31,10 @@ export class GitContentProvider {
|
||||
}
|
||||
|
||||
async provideTextDocumentContent(uri: Uri): Promise<string> {
|
||||
const treeish = uri.query;
|
||||
const relativePath = path.relative(this.rootPath, uri.fsPath).replace(/\\/g, '/');
|
||||
|
||||
try {
|
||||
const result = await this.git.exec(this.rootPath, ['show', `${treeish}:${relativePath}`]);
|
||||
|
||||
if (result.exitCode !== 0) {
|
||||
this.uris.delete(uri);
|
||||
return '';
|
||||
}
|
||||
|
||||
const result = await this.model.show(uri.query, uri);
|
||||
this.uris.add(uri);
|
||||
return result.stdout;
|
||||
return result;
|
||||
} catch (err) {
|
||||
this.uris.delete(uri);
|
||||
return '';
|
||||
|
||||
Reference in New Issue
Block a user