Skip to content

Commit e3f9a80

Browse files
committed
fix: backward compatibility for using the oss extension ID
1 parent 774752a commit e3f9a80

File tree

4 files changed

+33
-7
lines changed

4 files changed

+33
-7
lines changed

examples/vscode-snippet-contrib/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@ using the VSCode code snippet framework.
77

88
A code snippet contribution is a VSCode extension which:
99

10-
1. Declares an `extensionDepedency` to `saposs.code-snippet`:
10+
1. Declares an `extensionDepedency` to `saposs.code-snippet-tool`:
1111
- ```json
1212
{
13-
"extensionDependencies": ["saposs.code-snippet"]
13+
"extensionDependencies": ["saposs.code-snippet-tool"]
1414
}
1515
```
1616
1. Returns an object from its `activate()` method which defines the

examples/vscode-snippet-contrib/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@
5454
"@types/vscode": "^1.48.0"
5555
},
5656
"extensionDependencies": [
57-
"saposs.code-snippet-framework"
57+
"saposs.code-snippet-tool"
5858
],
5959
"engines": {
6060
"vscode": "^1.44.2"

packages/backend/src/contributors.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,12 +44,16 @@ export class Contributors {
4444
}
4545

4646
private getContributorExtension(contributorId: string) {
47+
// Pre-compile regex pattern for better performance
48+
const FRAMEWORK_PATTERN = /^saposs\.code-snippet(?:-tool)?$/;
49+
4750
return _.find(vscode.extensions.all, (extension: vscode.Extension<any>) => {
4851
const extensionDependencies: string[] = _.get(
4952
extension,
50-
"packageJSON.extensionDependencies"
53+
"packageJSON.extensionDependencies",
54+
[]
5155
);
52-
if (_.includes(extensionDependencies, "saposs.code-snippet")) {
56+
if (extensionDependencies.some((dep) => FRAMEWORK_PATTERN.test(dep))) {
5357
if (contributorId === this.getExtensionId(extension)) {
5458
return extension;
5559
}

packages/backend/test/contributors.spec.ts

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ describe("Contributors unit test", () => {
8585
packageJSON: {
8686
name: "vscode-snippet-contrib",
8787
publisher: "BLABLA3",
88-
extensionDependencies: ["saposs.code-snippet"],
88+
extensionDependencies: ["saposs.code-snippet-tool"],
8989
},
9090
extensionKind: null as any,
9191
activate: () =>
@@ -129,6 +129,28 @@ describe("Contributors unit test", () => {
129129
expect(snippet.getMessages()).to.deep.equal(messageValue);
130130
});
131131

132+
it("receives valid contributorId and snippetName from exports ---> returns valid snippet (for old ID)", async () => {
133+
const oldApi = {
134+
...api,
135+
packageJSON: {
136+
...api.packageJSON,
137+
extensionDependencies: ["saposs.code-snippet"],
138+
},
139+
};
140+
141+
_.set(testVscode, "extensions.all", [oldApi]);
142+
143+
const uiOptions = {
144+
contributorId: extensionId,
145+
snippetName: snippetName,
146+
};
147+
148+
loggerWrapperMock.expects("getClassLogger").returns(logger);
149+
const contributors = new Contributors();
150+
const snippet = await contributors.getSnippet(uiOptions);
151+
expect(snippet.getMessages()).to.deep.equal(messageValue);
152+
});
153+
132154
it("receives valid contributorId and snippetName from activate ---> returns valid snippet", async () => {
133155
api.isActive = false;
134156
_.set(testVscode, "extensions.all", [api]);
@@ -191,7 +213,7 @@ describe("Contributors unit test", () => {
191213
api.packageJSON = {
192214
name: "vscode-snippet-contrib",
193215
publisher: "BLABLA3",
194-
extensionDependencies: ["saposs.code-snippet"],
216+
extensionDependencies: ["saposs.code-snippet-tool"],
195217
};
196218
_.set(testVscode, "extensions.all", [api]);
197219

0 commit comments

Comments
 (0)