Skip to content

Commit 82fb69c

Browse files
authored
Enable synchronize request in sourcekit-lsp options (#1463)
1 parent 882a038 commit 82fb69c

File tree

2 files changed

+13
-36
lines changed

2 files changed

+13
-36
lines changed

test/integration-tests/language/LanguageClientIntegration.test.ts

+1-16
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,7 @@ import { WorkspaceContext } from "../../../src/WorkspaceContext";
2020
import { testAssetUri } from "../../fixtures";
2121
import { executeTaskAndWaitForResult, waitForNoRunningTasks } from "../../utilities/tasks";
2222
import { getBuildAllTask, SwiftTask } from "../../../src/tasks/SwiftTaskProvider";
23-
import {
24-
activateExtensionForSuite,
25-
folderInRootWorkspace,
26-
updateSettings,
27-
} from "../utilities/testutilities";
23+
import { activateExtensionForSuite, folderInRootWorkspace } from "../utilities/testutilities";
2824
import { waitForClientState, waitForIndex } from "../utilities/lsputilities";
2925

3026
async function buildProject(ctx: WorkspaceContext, name: string) {
@@ -46,22 +42,11 @@ suite("Language Client Integration Suite @slow", function () {
4642
async setup(ctx) {
4743
workspaceContext = ctx;
4844

49-
const resetSettings = await updateSettings({
50-
"swift.sourcekit-lsp.serverArguments": [
51-
"--experimental-feature",
52-
"synchronize-request",
53-
],
54-
});
55-
56-
// Restart the LSP after changing its settings
57-
await ctx.languageClientManager.restart();
58-
5945
await buildProject(ctx, "defaultPackage");
6046

6147
// Ensure lsp client is ready
6248
clientManager = ctx.languageClientManager;
6349
await waitForClientState(clientManager, langclient.State.Running);
64-
return resetSettings;
6550
},
6651
});
6752

test/integration-tests/utilities/lsputilities.ts

+12-20
Original file line numberDiff line numberDiff line change
@@ -44,32 +44,24 @@ export namespace PollIndexRequest {
4444

4545
// eslint-disable-next-line @typescript-eslint/no-namespace
4646
export namespace WorkspaceSynchronizeRequest {
47-
export const method = "workspace/_synchronize" as const;
47+
export const method = "workspace/synchronize" as const;
4848
export const messageDirection: langclient.MessageDirection =
4949
langclient.MessageDirection.clientToServer;
5050
export const type = new langclient.RequestType<object, object, never>(method);
5151
}
52-
5352
export async function waitForIndex(languageClientManager: LanguageClientManager): Promise<void> {
54-
if (
55-
languageClientManager.workspaceContext.swiftVersion.isGreaterThanOrEqual(
56-
new Version(6, 2, 0)
53+
const swiftVersion = languageClientManager.workspaceContext.swiftVersion;
54+
const requestType = swiftVersion.isGreaterThanOrEqual(new Version(6, 2, 0))
55+
? WorkspaceSynchronizeRequest.type
56+
: PollIndexRequest.type;
57+
58+
await languageClientManager.useLanguageClient(async (client, token) =>
59+
client.sendRequest(
60+
requestType,
61+
requestType === WorkspaceSynchronizeRequest.type ? { index: true } : {},
62+
token
5763
)
58-
) {
59-
await languageClientManager.useLanguageClient(async (client, token) =>
60-
client.sendRequest(
61-
WorkspaceSynchronizeRequest.type,
62-
{
63-
index: true,
64-
},
65-
token
66-
)
67-
);
68-
} else {
69-
await languageClientManager.useLanguageClient(async (client, token) =>
70-
client.sendRequest(PollIndexRequest.type, {}, token)
71-
);
72-
}
64+
);
7365
}
7466

7567
export async function waitForClientState(

0 commit comments

Comments
 (0)