mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-16 10:58:30 -05:00
Show git status in projects tree (#14182)
* show git status in project tree * fix for windows * fix tests
This commit is contained in:
@@ -29,7 +29,7 @@ export class FolderNode extends BaseProjectTreeItem {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public get treeItem(): vscode.TreeItem {
|
public get treeItem(): vscode.TreeItem {
|
||||||
const folderItem = new vscode.TreeItem(this.uri, vscode.TreeItemCollapsibleState.Collapsed);
|
const folderItem = new vscode.TreeItem(this.fileSystemUri, vscode.TreeItemCollapsibleState.Collapsed);
|
||||||
folderItem.contextValue = DatabaseProjectItemType.folder;
|
folderItem.contextValue = DatabaseProjectItemType.folder;
|
||||||
folderItem.iconPath = IconPathHelper.folder;
|
folderItem.iconPath = IconPathHelper.folder;
|
||||||
|
|
||||||
@@ -57,7 +57,7 @@ export class FileNode extends BaseProjectTreeItem {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public get treeItem(): vscode.TreeItem {
|
public get treeItem(): vscode.TreeItem {
|
||||||
const treeItem = new vscode.TreeItem(this.uri, vscode.TreeItemCollapsibleState.None);
|
const treeItem = new vscode.TreeItem(this.fileSystemUri, vscode.TreeItemCollapsibleState.None);
|
||||||
|
|
||||||
treeItem.command = {
|
treeItem.command = {
|
||||||
title: 'Open file',
|
title: 'Open file',
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ export class ProjectRootTreeItem extends BaseProjectTreeItem {
|
|||||||
fileSystemUri: vscode.Uri;
|
fileSystemUri: vscode.Uri;
|
||||||
|
|
||||||
constructor(project: Project) {
|
constructor(project: Project) {
|
||||||
super(vscode.Uri.parse(path.basename(project.projectFilePath, sqlprojExtension)), undefined);
|
super(vscode.Uri.file(project.projectFilePath), undefined);
|
||||||
|
|
||||||
this.project = project;
|
this.project = project;
|
||||||
this.fileSystemUri = vscode.Uri.file(project.projectFilePath);
|
this.fileSystemUri = vscode.Uri.file(project.projectFilePath);
|
||||||
@@ -48,6 +48,7 @@ export class ProjectRootTreeItem extends BaseProjectTreeItem {
|
|||||||
const projectItem = new vscode.TreeItem(this.uri, vscode.TreeItemCollapsibleState.Expanded);
|
const projectItem = new vscode.TreeItem(this.uri, vscode.TreeItemCollapsibleState.Expanded);
|
||||||
projectItem.contextValue = DatabaseProjectItemType.project;
|
projectItem.contextValue = DatabaseProjectItemType.project;
|
||||||
projectItem.iconPath = IconPathHelper.databaseProject;
|
projectItem.iconPath = IconPathHelper.databaseProject;
|
||||||
|
projectItem.label = path.basename(this.uri.fsPath, sqlprojExtension);
|
||||||
|
|
||||||
return projectItem;
|
return projectItem;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -68,16 +68,16 @@ describe('Project Tree tests', function (): void {
|
|||||||
|
|
||||||
const tree = new ProjectRootTreeItem(proj);
|
const tree = new ProjectRootTreeItem(proj);
|
||||||
should(tree.children.map(x => x.uri.path)).deepEqual([
|
should(tree.children.map(x => x.uri.path)).deepEqual([
|
||||||
'/TestProj/Database References',
|
'/TestProj.sqlproj/Database References',
|
||||||
'/TestProj/duplicateFolder',
|
'/TestProj.sqlproj/duplicateFolder',
|
||||||
'/TestProj/someFolder',
|
'/TestProj.sqlproj/someFolder',
|
||||||
'/TestProj/duplicate.sql']);
|
'/TestProj.sqlproj/duplicate.sql']);
|
||||||
|
|
||||||
should(tree.children.find(x => x.uri.path === '/TestProj/someFolder')?.children.map(y => y.uri.path)).deepEqual([
|
should(tree.children.find(x => x.uri.path === '/TestProj.sqlproj/someFolder')?.children.map(y => y.uri.path)).deepEqual([
|
||||||
'/TestProj/someFolder/aNestedFolder',
|
'/TestProj.sqlproj/someFolder/aNestedFolder',
|
||||||
'/TestProj/someFolder/bNestedFolder',
|
'/TestProj.sqlproj/someFolder/bNestedFolder',
|
||||||
'/TestProj/someFolder/aNestedTest.sql',
|
'/TestProj.sqlproj/someFolder/aNestedTest.sql',
|
||||||
'/TestProj/someFolder/bNestedTest.sql']);
|
'/TestProj.sqlproj/someFolder/bNestedTest.sql']);
|
||||||
|
|
||||||
should(tree.children.map(x => x.treeItem.contextValue)).deepEqual([
|
should(tree.children.map(x => x.treeItem.contextValue)).deepEqual([
|
||||||
DatabaseProjectItemType.referencesRoot,
|
DatabaseProjectItemType.referencesRoot,
|
||||||
@@ -85,7 +85,7 @@ describe('Project Tree tests', function (): void {
|
|||||||
DatabaseProjectItemType.folder,
|
DatabaseProjectItemType.folder,
|
||||||
DatabaseProjectItemType.file]);
|
DatabaseProjectItemType.file]);
|
||||||
|
|
||||||
should(tree.children.find(x => x.uri.path === '/TestProj/someFolder')?.children.map(y => y.treeItem.contextValue)).deepEqual([
|
should(tree.children.find(x => x.uri.path === '/TestProj.sqlproj/someFolder')?.children.map(y => y.treeItem.contextValue)).deepEqual([
|
||||||
DatabaseProjectItemType.folder,
|
DatabaseProjectItemType.folder,
|
||||||
DatabaseProjectItemType.folder,
|
DatabaseProjectItemType.folder,
|
||||||
DatabaseProjectItemType.file,
|
DatabaseProjectItemType.file,
|
||||||
@@ -104,11 +104,11 @@ describe('Project Tree tests', function (): void {
|
|||||||
|
|
||||||
const tree = new ProjectRootTreeItem(proj);
|
const tree = new ProjectRootTreeItem(proj);
|
||||||
should(tree.children.map(x => x.uri.path)).deepEqual([
|
should(tree.children.map(x => x.uri.path)).deepEqual([
|
||||||
'/TestProj/Database References',
|
'/TestProj.sqlproj/Database References',
|
||||||
'/TestProj/someFolder1']);
|
'/TestProj.sqlproj/someFolder1']);
|
||||||
|
|
||||||
// Why are we only matching names - https://github.com/microsoft/azuredatastudio/issues/11026
|
// Why are we only matching names - https://github.com/microsoft/azuredatastudio/issues/11026
|
||||||
should(tree.children.find(x => x.uri.path === '/TestProj/someFolder1')?.children.map(y => path.basename(y.uri.path))).deepEqual([
|
should(tree.children.find(x => x.uri.path === '/TestProj.sqlproj/someFolder1')?.children.map(y => path.basename(y.uri.path))).deepEqual([
|
||||||
'MyNestedFolder1',
|
'MyNestedFolder1',
|
||||||
'MyNestedFolder2',
|
'MyNestedFolder2',
|
||||||
'MyFile2.sql']);
|
'MyFile2.sql']);
|
||||||
@@ -126,8 +126,8 @@ describe('Project Tree tests', function (): void {
|
|||||||
|
|
||||||
const tree = new ProjectRootTreeItem(proj);
|
const tree = new ProjectRootTreeItem(proj);
|
||||||
should(tree.children.map(x => x.uri.path)).deepEqual([
|
should(tree.children.map(x => x.uri.path)).deepEqual([
|
||||||
'/TestProj/Database References',
|
'/Root/Level1/Level2/TestProj.sqlproj/Database References',
|
||||||
'/TestProj/MyFile1.sql',
|
'/Root/Level1/Level2/TestProj.sqlproj/MyFile1.sql',
|
||||||
'/TestProj/MyFile2.sql']);
|
'/Root/Level1/Level2/TestProj.sqlproj/MyFile2.sql']);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user