Skip to content

Commit 5b4498a

Browse files
committed
change(mr tree): node with old/new sha.
1 parent a8b1c43 commit 5b4498a

File tree

2 files changed

+27
-23
lines changed

2 files changed

+27
-23
lines changed

src/extension.ts

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
import * as vscode from 'vscode';
22

33
// import Logger from './common/logger';
4-
import {uriHandler, CodingServer} from './codingServer';
5-
import {Panel} from './panel';
6-
import {IFileNode, MRTreeDataProvider} from './tree/mr-tree';
7-
import {ReleaseTreeDataProvider} from './tree/release-tree';
8-
import {RepoInfo} from './typings/commonTypes';
4+
import { uriHandler, CodingServer } from './codingServer';
5+
import { Panel } from './panel';
6+
import { IFileNode, MRTreeDataProvider } from './tree/mr-tree';
7+
import { ReleaseTreeDataProvider } from './tree/release-tree';
8+
import { RepoInfo } from './typings/commonTypes';
99

1010
export async function activate(context: vscode.ExtensionContext) {
1111
const repoInfo = await CodingServer.getRepoParams();
@@ -35,8 +35,8 @@ export async function activate(context: vscode.ExtensionContext) {
3535

3636
const mrDataProvider = new MRTreeDataProvider(context, codingSrv);
3737
const releaseDataProvider = new ReleaseTreeDataProvider(context);
38-
vscode.window.createTreeView(`mrTreeView`, {treeDataProvider: mrDataProvider, showCollapseAll: true});
39-
vscode.window.createTreeView(`releaseTreeView`, {treeDataProvider: releaseDataProvider, showCollapseAll: true});
38+
vscode.window.createTreeView(`mrTreeView`, { treeDataProvider: mrDataProvider, showCollapseAll: true });
39+
vscode.window.createTreeView(`releaseTreeView`, { treeDataProvider: releaseDataProvider, showCollapseAll: true });
4040

4141
context.subscriptions.push(vscode.window.registerUriHandler(uriHandler));
4242
context.subscriptions.push(
@@ -79,7 +79,7 @@ export async function activate(context: vscode.ExtensionContext) {
7979
context.subscriptions.push(
8080
vscode.commands.registerCommand('codingPlugin.switchRepo', async () => {
8181
try {
82-
const {data} = await codingSrv.getRepoList();
82+
const { data } = await codingSrv.getRepoList();
8383
const list = data.map(i => ({
8484
label: i.name,
8585
description: i.depotPath.replace(`/p/`, ``)
@@ -105,7 +105,8 @@ export async function activate(context: vscode.ExtensionContext) {
105105
);
106106
context.subscriptions.push(
107107
vscode.commands.registerCommand(`codingPlugin.showDiff`, async (file: IFileNode) => {
108-
await vscode.commands.executeCommand(`vscode.diff`, vscode.Uri);
108+
console.log(context.storageUri, context.globalStorageUri, file);
109+
// await vscode.commands.executeCommand(`vscode.diff`, vscode.Uri);
109110
}),
110111
);
111112

@@ -119,4 +120,5 @@ export async function activate(context: vscode.ExtensionContext) {
119120
}
120121
}
121122

122-
export function deactivate() {}
123+
export function deactivate() {
124+
}

src/tree/mr-tree.ts

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import * as vscode from 'vscode';
22
import * as path from 'path';
33

4-
import {CodingServer} from '../codingServer';
5-
import {RepoInfo, SessionData} from '../typings/commonTypes';
6-
import {IMRDiffStat, IMRData, IMRPathItem} from '../typings/respResult';
4+
import { CodingServer } from '../codingServer';
5+
import { RepoInfo, SessionData } from '../typings/commonTypes';
6+
import { IMRDiffStat, IMRData, IMRPathItem } from '../typings/respResult';
77

88
enum MRType {
99
Open = `open`,
@@ -21,6 +21,8 @@ enum ItemType {
2121
export interface IFileNode extends IMRPathItem {
2222
parentPath?: string;
2323
children?: IFileNode[]
24+
newSha?: string;
25+
oldSha?: string;
2426
}
2527

2628
type ITreeNode = string | number | IMRDiffStat | IFileNode | IMRData;
@@ -74,7 +76,7 @@ export class MRTreeDataProvider implements vscode.TreeDataProvider<ListItem<ITre
7476
return [];
7577
}
7678

77-
const {data: {list}} = resp;
79+
const { data: { list } } = resp;
7880
if (!list.length) {
7981
return [
8082
new ListItem(`0 merge requests in this category`, `noData`, vscode.TreeItemCollapsibleState.None),
@@ -91,7 +93,7 @@ export class MRTreeDataProvider implements vscode.TreeDataProvider<ListItem<ITre
9193
i.title,
9294
i,
9395
vscode.TreeItemCollapsibleState.Collapsed,
94-
this._context
96+
this._context,
9597
);
9698
});
9799
})
@@ -101,7 +103,7 @@ export class MRTreeDataProvider implements vscode.TreeDataProvider<ListItem<ITre
101103
}
102104
case ItemType.MRItem: {
103105
return this._service.getMRDiff((element.value as IMRData).iid)
104-
.then(({data: {diffStat}}) => {
106+
.then(({ data: { diffStat } }) => {
105107
return element.getChildren(diffStat);
106108
});
107109
}
@@ -153,7 +155,7 @@ export class MRItem extends ListItem<IMRData> {
153155
}
154156

155157
async getChildren(diffStat: IMRDiffStat): Promise<ListItem<string | number | IFileNode>[]> {
156-
const files = this._transformTree(diffStat.paths);
158+
const files = this._transformTree(diffStat);
157159
const repoInfo = this.context.workspaceState.get(`repoInfo`, {});
158160
const session = this.context.workspaceState.get(`session`, {} as SessionData);
159161

@@ -176,10 +178,10 @@ export class MRItem extends ListItem<IMRData> {
176178
];
177179
}
178180

179-
private _transformTree(paths: IMRPathItem[]) {
181+
private _transformTree(diff: IMRDiffStat) {
180182
let nodes: IFileNode[] = [];
181-
paths.forEach(p => {
182-
nodes = this._makeTree(p, nodes);
183+
diff.paths.forEach(p => {
184+
nodes = this._makeTree({ ...p, newSha: diff.newSha, oldSha: diff.oldSha }, nodes);
183185
});
184186

185187
return nodes;
@@ -191,7 +193,7 @@ export class MRItem extends ListItem<IMRData> {
191193
rawArr.forEach((i, idx) => {
192194
const curPath = rawArr.slice(0, idx + 1).join(`/`);
193195
const parentPath = rawArr.slice(0, idx).join(`/`);
194-
const f = {...node, name: i, path: curPath, parentPath, children: []};
196+
const f = { ...node, name: i, path: curPath, parentPath, children: [] };
195197
nodes = this._insert(f, nodes);
196198
});
197199

@@ -243,8 +245,8 @@ export class FileNode extends ListItem<IFileNode> {
243245
collapsibleState === vscode.TreeItemCollapsibleState.None ? {
244246
command: `codingPlugin.showDiff`,
245247
title: ``,
246-
arguments: [value]
247-
} : undefined
248+
arguments: [value],
249+
} : undefined,
248250
);
249251
}
250252

0 commit comments

Comments
 (0)