Skip to content

Commit 71b2733

Browse files
authored
Refresh newly opened spl2 documents and cells via didOpen. (#120)
* Refresh newly opened spl2 documents and cells via didOpen. This eliminates the hack that added " " edit to force language server updates across documents. * Fix version
1 parent 55f6f52 commit 71b2733

File tree

1 file changed

+14
-7
lines changed

1 file changed

+14
-7
lines changed

out/extension.js

+14-7
Original file line numberDiff line numberDiff line change
@@ -333,13 +333,20 @@ async function handleSpl2Document(context, progressBar) {
333333
console.log(`handleSpl2Document`);
334334
if (spl2Client) {
335335
console.log(`spl2Client detected`);
336-
// Client and server are already running, try refreshing for case of new document
337-
const range = new vscode.Range(new vscode.Position(0, 0), new vscode.Position(0, 1));
338-
const text = vscode.window.activeTextEditor.document.getText(range) || " ";
339-
vscode.window.activeTextEditor.edit((editBuilder) => {
340-
// To refresh language server make a harmless edit by replacing the first character
341-
editBuilder.replace(range, text);
342-
});
336+
// send new didOpen message to refresh language server (even if already open)
337+
// this workaround is needed as SPL2 language server doesn't currently cache
338+
// all open documents and will only re-parse when new documents are opened
339+
spl2Client.client.sendRequest(
340+
'textDocument/didOpen',
341+
{
342+
textDocument: {
343+
uri: vscode.window.activeTextEditor.document.uri.toString(),
344+
languageId: vscode.window.activeTextEditor.document.languageId,
345+
version: vscode.window.activeTextEditor.document.version,
346+
text: vscode.window.activeTextEditor.document.getText(),
347+
}
348+
}
349+
);
343350
return;
344351
}
345352
try {

0 commit comments

Comments
 (0)