Skip to content

Commit 96490c7

Browse files
Merge pull request #474 from gjsjohnmurray/fix-473
fix #473 defer to LS 1.0.5+ for FoldingRangeProvider
2 parents b1b475b + 2a8c8e1 commit 96490c7

File tree

1 file changed

+16
-8
lines changed

1 file changed

+16
-8
lines changed

src/extension.ts

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
export const extensionId = "intersystems-community.vscode-objectscript";
22

33
import vscode = require("vscode");
4+
import * as semver from "semver";
45

56
import { AtelierJob } from "./api/atelier";
67
const { workspace, window } = vscode;
@@ -646,6 +647,21 @@ export async function activate(context: vscode.ExtensionContext): Promise<any> {
646647
)
647648
);
648649
context.subscriptions.push(...noLSsubscriptions);
650+
} else {
651+
const lsVersion = languageServerExt.packageJSON.version;
652+
// Language Server implements FoldingRangeProvider starting from 1.0.5
653+
if (semver.lt(lsVersion, "1.0.5")) {
654+
context.subscriptions.push(
655+
vscode.languages.registerFoldingRangeProvider(
656+
documentSelector("objectscript-class"),
657+
new ObjectScriptClassFoldingRangeProvider()
658+
),
659+
vscode.languages.registerFoldingRangeProvider(
660+
documentSelector("objectscript"),
661+
new ObjectScriptFoldingRangeProvider()
662+
)
663+
);
664+
}
649665
}
650666

651667
context.subscriptions.push(
@@ -826,14 +842,6 @@ export async function activate(context: vscode.ExtensionContext): Promise<any> {
826842
documentSelector("objectscript-class", "objectscript"),
827843
new CodeActionProvider()
828844
),
829-
vscode.languages.registerFoldingRangeProvider(
830-
documentSelector("objectscript-class"),
831-
new ObjectScriptClassFoldingRangeProvider()
832-
),
833-
vscode.languages.registerFoldingRangeProvider(
834-
documentSelector("objectscript"),
835-
new ObjectScriptFoldingRangeProvider()
836-
),
837845
vscode.languages.registerWorkspaceSymbolProvider(new WorkspaceSymbolProvider()),
838846
vscode.debug.registerDebugConfigurationProvider("objectscript", new ObjectScriptConfigurationProvider()),
839847
vscode.debug.registerDebugAdapterDescriptorFactory("objectscript", debugAdapterFactory),

0 commit comments

Comments
 (0)