Skip to content

Commit 5ed6e85

Browse files
committed
Fixes #396, Prepare 2.8.3 release
1 parent c3829d6 commit 5ed6e85

File tree

11 files changed

+354
-439
lines changed

11 files changed

+354
-439
lines changed

CHANGELOG.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
# Changelog
22

3-
## [2.8.3] - 2026-XX-XX
3+
## [2.8.3] - 2026-04-14
44
- Fix issue [#395](https://github.com/intersystems/language-server/issues/395): Hover info for method that takes no argument has extraneous * character
5+
- Fix issue [#396](https://github.com/intersystems/language-server/issues/396): Upgrade dependencies
56

67
## [2.8.2] - 2026-01-21
78
- Fix issue [#392](https://github.com/intersystems/language-server/issues/392): Restore support for a wide array of Linux distros

client/package-lock.json

Lines changed: 38 additions & 44 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

client/package.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,7 @@
77
"vscode": "^1.93.0"
88
},
99
"dependencies": {
10-
"axios": "^1.13.2",
11-
"vscode-cache": "^0.3.0",
10+
"axios": "^1.15.0",
1211
"vscode-languageclient": "^9.0.1"
1312
},
1413
"devDependencies": {

client/src/extension.ts

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import {
1111
authentication
1212
} from 'vscode';
1313

14-
import * as Cache from 'vscode-cache';
1514
import {
1615
DocumentSelector,
1716
LanguageClient,
@@ -40,11 +39,11 @@ export let client: LanguageClient;
4039
/**
4140
* Cache for cookies from REST requests to InterSystems servers.
4241
*/
43-
let cookiesCache: Cache;
42+
const cookiesCache: Map<string, string[]> = new Map();
4443

45-
export async function updateCookies(newCookies: string[], server: ServerSpec): Promise<string[]> {
44+
export function updateCookies(newCookies: string[], server: ServerSpec): string[] {
4645
const key = `${server.username}@${server.host}:${server.port}${server.pathPrefix}`;
47-
const cookies = cookiesCache.get(key, []);
46+
const cookies = cookiesCache.get(key) ?? [];
4847
newCookies.forEach((cookie) => {
4948
const [cookieName] = cookie.split("=");
5049
const index = cookies.findIndex((el) => el.startsWith(cookieName));
@@ -54,15 +53,15 @@ export async function updateCookies(newCookies: string[], server: ServerSpec): P
5453
cookies.push(cookie);
5554
}
5655
});
57-
await cookiesCache.put(key, cookies);
56+
cookiesCache.set(key, cookies);
5857
return cookies;
5958
}
6059

6160
export function getCookies(server: ServerSpec): string[] {
62-
return cookiesCache.get(`${server.username}@${server.host}:${server.port}${server.pathPrefix}`, []);
61+
return cookiesCache.get(`${server.username}@${server.host}:${server.port}${server.pathPrefix}`) ?? [];
6362
}
6463

65-
let objectScriptApi;
64+
let objectScriptApi: any;
6665
let serverManagerApi: serverManager.ServerManagerAPI;
6766

6867
/** Resolved connection information for each workspace folder */
@@ -80,10 +79,9 @@ type MakeRESTRequestParams = {
8079

8180
export async function activate(context: ExtensionContext) {
8281
// Get the main extension exported API
83-
const objectScriptExt = extensions.getExtension("intersystems-community.vscode-objectscript");
82+
const objectScriptExt = extensions.getExtension("intersystems-community.vscode-objectscript")!;
8483
objectScriptApi = objectScriptExt.isActive ? objectScriptExt.exports : await objectScriptExt.activate();
8584

86-
cookiesCache = new Cache(context, "cookies");
8785
// The server is implemented in node
8886
let serverModule = context.asAbsolutePath(
8987
path.join('server', 'out', 'server.js')
@@ -258,7 +256,7 @@ export async function activate(context: ExtensionContext) {
258256
// Can't use the FileSystem with a DocumentContentProvider, so fetch the text directly from the server
259257
const uriParams = new URLSearchParams(uri.query);
260258
const fileName =
261-
uriParams.has("csp") && ["", "1"].includes(uriParams.get("csp"))
259+
uriParams.has("csp") && ["", "1"].includes(uriParams.get("csp") ?? "")
262260
? uri.path.slice(1)
263261
: uri.path.split("/").slice(1).join(".");
264262
const docParams =
@@ -303,7 +301,7 @@ export async function activate(context: ExtensionContext) {
303301
"intersystems.language-server",
304302
workspace.workspaceFolders != undefined ? workspace.workspaceFolders[0] : undefined
305303
).get("suggestTheme") === true &&
306-
!workbenchConfig.get<string>("colorTheme").startsWith("InterSystems Default ")
304+
!workbenchConfig.get<string>("colorTheme")?.startsWith("InterSystems Default ")
307305
) {
308306
// Suggest an InterSystems default theme depending on the current active theme type
309307
if (window.activeColorTheme.kind === ColorThemeKind.Light) {
@@ -393,7 +391,7 @@ export async function deactivate(): Promise<void> {
393391
makeRESTRequest(
394392
"HEAD",
395393
0,
396-
undefined,
394+
"",
397395
serverSpec,
398396
undefined,
399397
undefined,

client/src/makeRESTRequest.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ export async function makeRESTRequest(method: "GET"|"POST"|"HEAD", api: number,
8686
}
8787
}
8888
);
89-
cookies = await updateCookies(respdata.headers['set-cookie'] || [], server);
89+
cookies = updateCookies(respdata.headers['set-cookie'] || [], server);
9090
if (respdata.status === 202) {
9191
// The schema is being recalculated so we need to make another call to get it
9292
respdata = await axios.request(
@@ -100,7 +100,7 @@ export async function makeRESTRequest(method: "GET"|"POST"|"HEAD", api: number,
100100
}
101101
},
102102
);
103-
await updateCookies(respdata.headers['set-cookie'] || [], server);
103+
updateCookies(respdata.headers['set-cookie'] || [], server);
104104
return respdata;
105105
}
106106
else if (respdata.status === 304) {
@@ -125,7 +125,7 @@ export async function makeRESTRequest(method: "GET"|"POST"|"HEAD", api: number,
125125
httpsAgent
126126
}
127127
);
128-
cookies = await updateCookies(respdata.headers['set-cookie'] || [], server);
128+
cookies = updateCookies(respdata.headers['set-cookie'] || [], server);
129129
if (respdata.status === 202) {
130130
// The schema is being recalculated so we need to make another call to get it
131131
respdata = await axios.request(
@@ -139,7 +139,7 @@ export async function makeRESTRequest(method: "GET"|"POST"|"HEAD", api: number,
139139
}
140140
}
141141
);
142-
await updateCookies(respdata.headers['set-cookie'] || [], server);
142+
updateCookies(respdata.headers['set-cookie'] || [], server);
143143
return respdata;
144144
}
145145
else if (respdata.status === 304) {
@@ -197,7 +197,7 @@ export async function makeRESTRequest(method: "GET"|"POST"|"HEAD", api: number,
197197
}
198198
);
199199
}
200-
await updateCookies(respdata.headers['set-cookie'] || [], server);
200+
updateCookies(respdata.headers['set-cookie'] || [], server);
201201
}
202202
else {
203203
respdata = await axios.request(
@@ -232,7 +232,7 @@ export async function makeRESTRequest(method: "GET"|"POST"|"HEAD", api: number,
232232
}
233233
);
234234
}
235-
await updateCookies(respdata.headers['set-cookie'] || [], server);
235+
updateCookies(respdata.headers['set-cookie'] || [], server);
236236
}
237237
return respdata;
238238
}

client/src/requestForwarding.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { commands, CompletionList, Hover, Position, SignatureHelp, TextDocumentContentProvider, Uri } from 'vscode';
1+
import { commands, CompletionList, Hover, Position, ProviderResult, SignatureHelp, TextDocumentContentProvider, Uri } from 'vscode';
22
import { Middleware } from 'vscode-languageclient';
33
import { client } from './extension';
44

@@ -136,7 +136,7 @@ export class ISCEmbeddedContentProvider implements TextDocumentContentProvider {
136136

137137
constructor() {}
138138

139-
provideTextDocumentContent(uri: Uri): Promise<string> {
139+
provideTextDocumentContent(uri: Uri): ProviderResult<string> {
140140
// Get the isclexer language number and position from the URI authority
141141
const language: number = Number(uri.authority.split(":")[0]);
142142
const positionText = uri.authority.split(":")[1];

0 commit comments

Comments
 (0)