filter data-workspace projects by ext (#14354)

* add filtering by project extension

* Fix tests

* addressing comments

* convert to lowercase
This commit is contained in:
Kim Santiago
2021-02-22 13:21:25 -08:00
committed by GitHub
parent f62889002d
commit 551eb76a42
7 changed files with 17 additions and 9 deletions

View File

@@ -12,8 +12,8 @@ export class DataWorkspaceExtension implements IExtension {
constructor(private workspaceService: WorkspaceService) {
}
getProjectsInWorkspace(): vscode.Uri[] {
return this.workspaceService.getProjectsInWorkspace();
getProjectsInWorkspace(ext?: string): vscode.Uri[] {
return this.workspaceService.getProjectsInWorkspace(ext);
}
addProjectsToWorkspace(projectFiles: vscode.Uri[], workspaceFilePath?: vscode.Uri): Promise<void> {

View File

@@ -15,8 +15,9 @@ declare module 'dataworkspace' {
export interface IExtension {
/**
* Returns all the projects in the workspace
* @param ext project extension to filter on. If this is passed in, this will only return projects with this file extension
*/
getProjectsInWorkspace(): vscode.Uri[];
getProjectsInWorkspace(ext?: string): vscode.Uri[];
/**
* Add projects to the workspace

View File

@@ -155,8 +155,15 @@ export class WorkspaceService implements IWorkspaceService {
return projectTypes;
}
getProjectsInWorkspace(): vscode.Uri[] {
return vscode.workspace.workspaceFile ? this.getWorkspaceConfigurationValue<string[]>(ProjectsConfigurationName).map(project => this.toUri(project)) : [];
getProjectsInWorkspace(ext?: string): vscode.Uri[] {
let projects = vscode.workspace.workspaceFile ? this.getWorkspaceConfigurationValue<string[]>(ProjectsConfigurationName).map(project => this.toUri(project)) : [];
// filter by specified extension
if (ext) {
projects = projects.filter(p => p.fsPath.toLowerCase().endsWith(ext.toLowerCase()));
}
return projects;
}
/**