Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Include global tasks in "Configure Tasks" #7929

Merged
merged 1 commit into from
Jun 2, 2020
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Include global tasks in "Configure Tasks"
Signed-off-by: Thomas Mäder <tmader@redhat.com>
  • Loading branch information
tsmaeder committed May 29, 2020
commit 3f0550fe25728756c5428c293cbf5331880c1851
27 changes: 13 additions & 14 deletions packages/task/src/browser/quick-open-task.ts
Original file line number Diff line number Diff line change
Expand Up @@ -243,8 +243,8 @@ export class QuickOpenTask implements QuickOpenModel, QuickOpenHandler {
let isFirstGroup = true;
const { filteredConfiguredTasks, filteredProvidedTasks } = this.getFilteredTasks([], configuredTasks, providedTasks);
const groupedTasks = this.getGroupedTasksByWorkspaceFolder([...filteredConfiguredTasks, ...filteredProvidedTasks]);
if (groupedTasks.has(undefined)) {
const configs = groupedTasks.get(undefined)!;
if (groupedTasks.has(TaskScope.Global.toString())) {
const configs = groupedTasks.get(TaskScope.Global.toString())!;
this.items.push(
...configs.map(taskConfig => {
const item = new TaskConfigureQuickOpenItem(
Expand All @@ -264,10 +264,9 @@ export class QuickOpenTask implements QuickOpenModel, QuickOpenHandler {

const rootUris = (await this.workspaceService.roots).map(rootStat => rootStat.uri);
for (const rootFolder of rootUris) {
const uri = new URI(rootFolder).withScheme('file');
const folderName = uri.displayName;
if (groupedTasks.has(uri.toString())) {
const configs = groupedTasks.get(uri.toString())!;
const folderName = new URI(rootFolder).displayName;
if (groupedTasks.has(rootFolder)) {
const configs = groupedTasks.get(rootFolder.toString())!;
this.items.push(
...configs.map((taskConfig, index) => {
const item = new TaskConfigureQuickOpenItem(
Expand All @@ -286,15 +285,15 @@ export class QuickOpenTask implements QuickOpenModel, QuickOpenHandler {
})
);
} else {
const { configUri } = this.preferences.resolve('tasks', [], uri.toString());
const { configUri } = this.preferences.resolve('tasks', [], rootFolder);
const existTaskConfigFile = !!configUri;
this.items.push(new QuickOpenGroupItem({
label: existTaskConfigFile ? 'Open tasks.json file' : 'Create tasks.json file from template',
run: (mode: QuickOpenMode): boolean => {
if (mode !== QuickOpenMode.OPEN) {
return false;
}
setTimeout(() => this.taskConfigurationManager.openConfiguration(uri.toString()));
setTimeout(() => this.taskConfigurationManager.openConfiguration(rootFolder));
return true;
},
showBorder: !isFirstGroup,
Expand Down Expand Up @@ -447,14 +446,14 @@ export class QuickOpenTask implements QuickOpenModel, QuickOpenHandler {
};
}

private getGroupedTasksByWorkspaceFolder(tasks: TaskConfiguration[]): Map<string | undefined, TaskConfiguration[]> {
const grouped = new Map<string | undefined, TaskConfiguration[]>();
private getGroupedTasksByWorkspaceFolder(tasks: TaskConfiguration[]): Map<string, TaskConfiguration[]> {
const grouped = new Map<string, TaskConfiguration[]>();
for (const task of tasks) {
const folder = task._scope;
if (grouped.has(folder.toString())) {
grouped.get(folder.toString())!.push(task);
const scope = task._scope;
if (grouped.has(scope.toString())) {
grouped.get(scope.toString())!.push(task);
} else {
grouped.set(folder.toString(), [task]);
grouped.set(scope.toString(), [task]);
}
}
for (const taskConfigs of grouped.values()) {
Expand Down