Skip to content

Commit 3aad86a

Browse files
committed
expose a public API methods from this extension
1 parent e2f2e22 commit 3aad86a

File tree

3 files changed

+29
-2
lines changed

3 files changed

+29
-2
lines changed

src/extension.api.ts

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import { BazelProjectView } from './types';
2+
3+
export interface ExtensionAPI {
4+
readonly parseProjectFile: BazelProjectView;
5+
}

src/extension.ts

+10-2
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,11 @@ import {
1414
BazelLanguageServerTerminal,
1515
getBazelTerminal,
1616
} from './bazelLangaugeServerTerminal';
17+
import { getBazelProjectFile } from './bazelprojectparser';
1718
import { BazelTaskManager } from './bazelTaskManager';
1819
import { registerBuildifierFormatter } from './buildifier';
1920
import { Commands, executeJavaLanguageServerCommand } from './commands';
21+
import { ExtensionAPI } from './extension.api';
2022
import { registerLSClient } from './loggingTCPServer';
2123
import { ProjectViewManager } from './projectViewManager';
2224
import { BazelRunTargetProvider } from './provider/bazelRunTargetProvider';
@@ -29,7 +31,9 @@ import {
2931

3032
const workspaceRoot = getWorkspaceRoot();
3133

32-
export async function activate(context: ExtensionContext) {
34+
export async function activate(
35+
context: ExtensionContext
36+
): Promise<ExtensionAPI> {
3337
// activates
3438
// LS processes current .eclipse/.bazelproject file
3539
// if it DNE create one
@@ -137,9 +141,13 @@ export async function activate(context: ExtensionContext) {
137141

138142
// always update the project view after the initial project load
139143
registerLSClient();
144+
145+
return Promise.resolve({
146+
parseProjectFile: await getBazelProjectFile(),
147+
});
140148
}
141149

142-
export function deactivate() { }
150+
export function deactivate() {}
143151

144152
function syncProjectView(): void {
145153
if (!isRedhatJavaReady()) {

test/suite/extension.test.ts

+14
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,24 @@ import * as assert from 'assert';
22
import { setTimeout } from 'node:timers/promises';
33
import { env } from 'process';
44
import * as vscode from 'vscode';
5+
import { extensions } from 'vscode';
56
import { Commands } from '../../src/commands';
7+
import { ExtensionAPI } from '../../src/extension.api';
68
import { Jdtls } from './Jdtls';
79

810
suite('Java Language Extension - Standard', () => {
11+
suiteSetup(async function () {
12+
await extensions.getExtension('sfdc.bazel-vscode-java')?.activate();
13+
});
14+
15+
test('version should be correct', async function () {
16+
const api: ExtensionAPI = extensions.getExtension(
17+
'sfdc.bazel-vscode-java'
18+
)?.exports;
19+
20+
assert.ok(api.parseProjectFile !== null);
21+
});
22+
923
test('RedHat Java Extension should be present', () => {
1024
assert.ok(vscode.extensions.getExtension('redhat.java'));
1125
});

0 commit comments

Comments
 (0)