register 'execute commands' onto Project Manager (#531)

* register 'execute commands' onto Project Manager

Signed-off-by: Yan Zhang <yanzh@microsoft.com>

* refine wording

Signed-off-by: Yan Zhang <yanzh@microsoft.com>

* use new command id: maven.goal.execute.fromProjectManager

Signed-off-by: Yan Zhang <yanzh@microsoft.com>

* fix wording

Signed-off-by: Yan Zhang <yanzh@microsoft.com>
This commit is contained in:
Yan Zhang 2020-08-31 11:13:03 +08:00 коммит произвёл GitHub
Родитель 961df176eb
Коммит 50b7ff8216
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
6 изменённых файлов: 47 добавлений и 20 удалений

31
package-lock.json сгенерированный
Просмотреть файл

@ -746,8 +746,7 @@
},
"kind-of": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
"integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA=="
"resolved": ""
}
}
},
@ -5296,10 +5295,13 @@
}
},
"serialize-javascript": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz",
"integrity": "sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==",
"dev": true
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz",
"integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==",
"dev": true,
"requires": {
"randombytes": "^2.1.0"
}
},
"set-blocking": {
"version": "2.0.0",
@ -5467,8 +5469,7 @@
},
"kind-of": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
"integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA=="
"resolved": ""
}
}
},
@ -5780,9 +5781,9 @@
"dev": true
},
"terser": {
"version": "4.6.13",
"resolved": "https://registry.npmjs.org/terser/-/terser-4.6.13.tgz",
"integrity": "sha512-wMvqukYgVpQlymbnNbabVZbtM6PN63AzqexpwJL8tbh/mRT9LE5o+ruVduAGL7D6Fpjl+Q+06U5I9Ul82odAhw==",
"version": "4.8.0",
"resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz",
"integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==",
"dev": true,
"requires": {
"commander": "^2.20.0",
@ -5791,16 +5792,16 @@
}
},
"terser-webpack-plugin": {
"version": "1.4.3",
"resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz",
"integrity": "sha512-QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA==",
"version": "1.4.5",
"resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz",
"integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==",
"dev": true,
"requires": {
"cacache": "^12.0.2",
"find-cache-dir": "^2.1.0",
"is-wsl": "^1.1.0",
"schema-utils": "^1.0.0",
"serialize-javascript": "^2.1.2",
"serialize-javascript": "^4.0.0",
"source-map": "^0.6.1",
"terser": "^4.1.2",
"webpack-sources": "^1.4.0",

Просмотреть файл

@ -38,6 +38,7 @@
"onCommand:maven.goal.deploy",
"onCommand:maven.goal.custom",
"onCommand:maven.goal.execute",
"onCommand:maven.goal.execute.fromProjectManager",
"onCommand:maven.project.effectivePom",
"onCommand:maven.project.openPom",
"onCommand:maven.archetype.generate",
@ -142,6 +143,11 @@
"title": "%contributes.commands.maven.goal.execute%",
"category": "Maven"
},
{
"command": "maven.goal.execute.fromProjectManager",
"title": "Run Maven Commands...",
"category": "Maven"
},
{
"command": "maven.plugin.execute",
"title": "%contributes.commands.maven.plugin.execute%",
@ -255,6 +261,10 @@
{
"command": "maven.project.showDependencies",
"when": "never"
},
{
"command": "maven.goal.execute.fromProjectManager",
"when": "never"
}
],
"explorer/context": [
@ -400,6 +410,11 @@
"command": "maven.project.addDependency",
"when": "view == javaProjectExplorer && viewItem =~ /java:container(?=.*?\\b\\+maven\\b)/",
"group": "inline"
},
{
"command": "maven.goal.execute.fromProjectManager",
"when": "view == javaProjectExplorer && viewItem =~ /java:project(?=.*?\\b\\+maven\\b)(?=.*?\\b\\+uri\\b)/",
"group": "maven"
}
]
},

Просмотреть файл

@ -8,7 +8,7 @@
"contributes.commands.maven.archetype.update": "Update Maven Archetype Catalog",
"contributes.commands.maven.favorites": "Favorites...",
"contributes.commands.maven.history": "History...",
"contributes.commands.maven.goal.execute": "Execute commands",
"contributes.commands.maven.goal.execute": "Execute Commands...",
"contributes.commands.maven.plugin.execute": "Run",
"contributes.commands.maven.plugin.debug": "Debug",
"contributes.commands.maven.view.hierarchical": "Switch to hierarchical view",

Просмотреть файл

@ -8,7 +8,7 @@
"contributes.commands.maven.archetype.update": "更新 Maven 原型目录",
"contributes.commands.maven.favorites": "收藏夹…",
"contributes.commands.maven.history": "历史…",
"contributes.commands.maven.goal.execute": "执行命令",
"contributes.commands.maven.goal.execute": "执行命令...",
"contributes.commands.maven.plugin.execute": "执行",
"contributes.commands.maven.plugin.debug": "调试",
"contributes.commands.maven.view.hierarchical": "切换到分层视图",

Просмотреть файл

@ -77,7 +77,8 @@ async function doActivate(_operationId: string, context: vscode.ExtensionContext
registerCommand(context, "maven.archetype.update", updateArchetypeCatalogHandler);
registerCommand(context, "maven.history", mavenHistoryHandler);
registerCommand(context, "maven.favorites", runFavoriteCommandsHandler);
registerCommand(context, "maven.goal.execute", async () => await Utils.executeMavenCommand());
registerCommand(context, "maven.goal.execute", Utils.executeMavenCommand);
registerCommand(context, "maven.goal.execute.fromProjectManager", Utils.executeMavenCommand);
registerCommand(context, "maven.plugin.execute", async (pluginGoal: PluginGoal) => await executeInTerminal({ command: pluginGoal.name, pomfile: pluginGoal.plugin.project.pomPath }));
registerCommand(context, "maven.view.flat", () => Settings.changeToFlatView());
registerCommand(context, "maven.view.hierarchical", () => Settings.changeToHierarchicalView());

Просмотреть файл

@ -5,6 +5,7 @@ import * as fse from "fs-extra";
import * as http from "http";
import * as https from "https";
import * as md5 from "md5";
import * as path from "path";
import * as url from "url";
import { commands, Progress, ProgressLocation, RelativePattern, TextDocument, Uri, ViewColumn, window, workspace, WorkspaceFolder } from "vscode";
import { createUuid, setUserError } from "vscode-extension-telemetry-wrapper";
@ -232,9 +233,18 @@ export namespace Utils {
}
}
export async function executeMavenCommand(): Promise<void> {
export async function executeMavenCommand(node?: any): Promise<void> {
// for nodes from Project Manager
let selectedProject: MavenProject | undefined;
if (node && node.uri) {
const pomPath: string = path.join(Uri.parse(node.uri).fsPath, "pom.xml");
selectedProject = mavenExplorerProvider.mavenProjectNodes.find(project => project.pomPath.toLowerCase() === pomPath.toLowerCase());
}
// select a project(pomfile)
const selectedProject: MavenProject | undefined = await selectProjectIfNecessary();
if (!selectedProject) {
selectedProject = await selectProjectIfNecessary();
}
if (!selectedProject) {
return;
}