-
Notifications
You must be signed in to change notification settings - Fork 37
Expand file tree
/
Copy pathextension.ts
More file actions
79 lines (71 loc) · 3.13 KB
/
extension.ts
File metadata and controls
79 lines (71 loc) · 3.13 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
import * as vscode from "vscode";
import * as devCommands from "./liberty/devCommands";
import { starterProject } from './liberty/starterProject';
import { LibertyProject, ProjectProvider } from "./liberty/libertyProject";
export async function activate(context: vscode.ExtensionContext): Promise<void> {
const projectProvider = new ProjectProvider(context);
if (vscode.workspace.workspaceFolders !== undefined) {
registerFileWatcher(projectProvider);
vscode.window.registerTreeDataProvider("liberty-dev", projectProvider);
}
context.subscriptions.push(
vscode.commands.registerCommand("liberty.explorer.refresh", (async () => {
projectProvider.refresh();
}))
);
context.subscriptions.push(
vscode.commands.registerCommand("extension.open.project", (pomPath) => devCommands.openProject(pomPath)),
);
context.subscriptions.push(
vscode.commands.registerCommand('liberty.starterProject', () => starterProject(context))
);
context.subscriptions.push(
vscode.commands.registerCommand("liberty.dev.start", (libProject?: LibertyProject) => devCommands.startDevMode(libProject)),
);
context.subscriptions.push(
vscode.commands.registerCommand("liberty.dev.stop", (libProject?: LibertyProject) => devCommands.stopDevMode(libProject)),
);
context.subscriptions.push(
vscode.commands.registerCommand("liberty.dev.custom", (libProject?: LibertyProject) => devCommands.customDevMode(libProject)),
);
context.subscriptions.push(
vscode.commands.registerCommand("liberty.dev.start.container", (libProject?: LibertyProject) => devCommands.startContainerDevMode(libProject)),
);
context.subscriptions.push(
vscode.commands.registerCommand("liberty.dev.run.tests", (libProject?: LibertyProject) => devCommands.runTests(libProject)),
);
context.subscriptions.push(
vscode.commands.registerCommand("liberty.dev.open.failsafe.report", (libProject?: LibertyProject) => devCommands.openReport("failsafe", libProject)),
);
context.subscriptions.push(
vscode.commands.registerCommand("liberty.dev.open.surefire.report", (libProject?: LibertyProject) => devCommands.openReport("surefire", libProject)),
);
context.subscriptions.push(
vscode.commands.registerCommand("liberty.dev.open.gradle.test.report", (libProject?: LibertyProject) => devCommands.openReport("gradle", libProject)),
);
context.subscriptions.push(
vscode.window.onDidCloseTerminal((closedTerminal: vscode.Terminal) => {
devCommands.deleteTerminal(closedTerminal);
})
);
}
// this method is called when your extension is deactivated
// eslint-disable-next-line @typescript-eslint/no-empty-function
export function deactivate(): void {
}
/**
* File Watcher to prompt the dev explorer to refresh on file changes
* @param projectProvider Liberty Dev projects
*/
export function registerFileWatcher(projectProvider: ProjectProvider): void {
const watcher: vscode.FileSystemWatcher = vscode.workspace.createFileSystemWatcher("{**/pom.xml,**/build.gradle,**/settings.gradle}");
watcher.onDidCreate(async () => {
projectProvider.refresh();
});
watcher.onDidChange(async () => {
projectProvider.refresh();
});
watcher.onDidDelete(async () => {
projectProvider.refresh();
});
}