[analysis_server] Switch LSP completion tests to use new setXxx() capabilities instead of nested withXxxx() capabilities methods

No functional changes, just simplifies the tests a little by calling functions to set capabilities instead of having to nest them inside `initialize()` calls.

Change-Id: I1496da221b1802c3375c32c7e0d048310769bdf9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/317961
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
diff --git a/pkg/analysis_server/test/lsp/completion_dart_test.dart b/pkg/analysis_server/test/lsp/completion_dart_test.dart
index 4dcb03b..d24cf19 100644
--- a/pkg/analysis_server/test/lsp/completion_dart_test.dart
+++ b/pkg/analysis_server/test/lsp/completion_dart_test.dart
@@ -63,6 +63,12 @@
     );
     expect(docs, matcher);
   }
+
+  @override
+  void setUp() {
+    super.setUp();
+    setApplyEditSupport();
+  }
 }
 
 @reflectiveTest
@@ -77,9 +83,7 @@
 
   Future<void> initializeServer() async {
     final initialAnalysis = waitForAnalysisComplete();
-    await initialize(
-        workspaceCapabilities:
-            withApplyEditSupport(emptyWorkspaceClientCapabilities));
+    await initialize();
     await openFile(mainFileUri, withoutMarkers(content));
     await initialAnalysis;
   }
@@ -242,9 +246,7 @@
 
     final initialAnalysis = waitForAnalysisComplete();
     await provideConfig(
-      () => initialize(
-          workspaceCapabilities: withConfigurationSupport(
-              withApplyEditSupport(emptyWorkspaceClientCapabilities))),
+      initialize,
       {
         if (preference != null) 'documentation': preference,
       },
@@ -293,9 +295,7 @@
 
     final initialAnalysis = waitForAnalysisComplete();
     await provideConfig(
-      () => initialize(
-          workspaceCapabilities: withConfigurationSupport(
-              withApplyEditSupport(emptyWorkspaceClientCapabilities))),
+      initialize,
       {
         if (preference != null) 'documentation': preference,
       },
@@ -325,17 +325,13 @@
   }
 
   Future<void> checkCompleteFunctionCallInsertText(
-      String content, String completion,
-      {required String? editText, InsertTextFormat? insertTextFormat}) async {
-    await provideConfig(
-      () => initialize(
-        textDocumentCapabilities: withCompletionItemSnippetSupport(
-            emptyTextDocumentClientCapabilities),
-        workspaceCapabilities:
-            withConfigurationSupport(emptyWorkspaceClientCapabilities),
-      ),
-      {'completeFunctionCalls': true},
-    );
+    String content,
+    String completion, {
+    required String? editText,
+    InsertTextFormat? insertTextFormat,
+  }) async {
+    setCompletionItemSnippetSupport();
+    await provideConfig(initialize, {'completeFunctionCalls': true});
     await openFile(mainFileUri, withoutMarkers(content));
     final res = await getCompletion(mainFileUri, positionFromMarker(content));
     final item = res.singleWhere(
@@ -454,19 +450,11 @@
     final registrations = <Registration>[];
     // Provide empty config and collect dynamic registrations during
     // initialization.
-    await provideConfig(
-      () => monitorDynamicRegistrations(
-        registrations,
-        () => initialize(
-            textDocumentCapabilities:
-                withAllSupportedTextDocumentDynamicRegistrations(
-                    emptyTextDocumentClientCapabilities),
-            workspaceCapabilities:
-                withDidChangeConfigurationDynamicRegistration(
-                    withConfigurationSupport(
-                        emptyWorkspaceClientCapabilities))),
-      ),
-      {},
+    setDidChangeConfigurationDynamicRegistration();
+    setAllSupportedTextDocumentDynamicRegistrations();
+    await monitorDynamicRegistrations(
+      registrations,
+      () => provideConfig(initialize, {}),
     );
 
     Registration registration(Method method) =>
@@ -481,7 +469,9 @@
     // When we change config, we should get a re-registration (unregister then
     // register) for completion which now includes the commit characters.
     await monitorDynamicReregistration(
-        registrations, () => updateConfig({'previewCommitCharacters': true}));
+      registrations,
+      () => updateConfig({'previewCommitCharacters': true}),
+    );
     reg = registration(Method.textDocument_completion);
     options = CompletionRegistrationOptions.fromJson(
         reg.registerOptions as Map<String, Object?>);
@@ -652,15 +642,8 @@
 }
 ''';
 
-    await provideConfig(
-      () => initialize(
-        textDocumentCapabilities: withCompletionItemSnippetSupport(
-            emptyTextDocumentClientCapabilities),
-        workspaceCapabilities:
-            withConfigurationSupport(emptyWorkspaceClientCapabilities),
-      ),
-      {'completeFunctionCalls': true},
-    );
+    setCompletionItemSnippetSupport();
+    await provideConfig(initialize, {'completeFunctionCalls': true});
     await openFile(mainFileUri, withoutMarkers(content));
     final res = await getCompletion(mainFileUri, positionFromMarker(content));
     final item = res.singleWhere((c) => c.label.startsWith('setState('));
@@ -737,15 +720,8 @@
     }
 ''';
 
-    await provideConfig(
-      () => initialize(
-        textDocumentCapabilities: withCompletionItemSnippetSupport(
-            emptyTextDocumentClientCapabilities),
-        workspaceCapabilities:
-            withConfigurationSupport(emptyWorkspaceClientCapabilities),
-      ),
-      {'completeFunctionCalls': true},
-    );
+    setCompletionItemSnippetSupport();
+    await provideConfig(initialize, {'completeFunctionCalls': true});
     await openFile(mainFileUri, withoutMarkers(content));
     final res = await getCompletion(mainFileUri, positionFromMarker(content));
     final item = res.singleWhere((c) => c.label == 'myFunction(…)');
@@ -770,16 +746,9 @@
     }
 ''';
 
+    setCompletionItemSnippetSupport();
     final initialAnalysis = waitForAnalysisComplete();
-    await provideConfig(
-      () => initialize(
-        textDocumentCapabilities: withCompletionItemSnippetSupport(
-            emptyTextDocumentClientCapabilities),
-        workspaceCapabilities: withApplyEditSupport(
-            withConfigurationSupport(emptyWorkspaceClientCapabilities)),
-      ),
-      {'completeFunctionCalls': true},
-    );
+    await provideConfig(initialize, {'completeFunctionCalls': true});
     await openFile(mainFileUri, withoutMarkers(content));
     await initialAnalysis;
 
@@ -827,16 +796,9 @@
       );
     }
 
+    setCompletionItemSnippetSupport();
     final initialAnalysis = waitForAnalysisComplete();
-    await provideConfig(
-      () => initialize(
-        textDocumentCapabilities: withCompletionItemSnippetSupport(
-            emptyTextDocumentClientCapabilities),
-        workspaceCapabilities:
-            withConfigurationSupport(emptyWorkspaceClientCapabilities),
-      ),
-      {'completeFunctionCalls': true},
-    );
+    await provideConfig(initialize, {'completeFunctionCalls': true});
     await openFile(mainFileUri, withoutMarkers(content));
     await initialAnalysis;
     final res = await getCompletion(mainFileUri, positionFromMarker(content));
@@ -854,15 +816,8 @@
     import 'dart:math' show mi^
 ''';
 
-    await provideConfig(
-      () => initialize(
-        textDocumentCapabilities: withCompletionItemSnippetSupport(
-            emptyTextDocumentClientCapabilities),
-        workspaceCapabilities:
-            withConfigurationSupport(emptyWorkspaceClientCapabilities),
-      ),
-      {'completeFunctionCalls': true},
-    );
+    setCompletionItemSnippetSupport();
+    await provideConfig(initialize, {'completeFunctionCalls': true});
     await openFile(mainFileUri, withoutMarkers(content));
     final res = await getCompletion(mainFileUri, positionFromMarker(content));
     final item = res.singleWhere((c) => c.label == 'min(…)');
@@ -1655,9 +1610,7 @@
     );
 
     final initialAnalysis = waitForAnalysisComplete();
-    await initialize(
-        workspaceCapabilities:
-            withApplyEditSupport(emptyWorkspaceClientCapabilities));
+    await initialize();
     await openFile(mainFileUri, withoutMarkers(content));
     await initialAnalysis;
     final res =
@@ -1689,12 +1642,7 @@
     );
 
     final initialAnalysis = waitForAnalysisComplete();
-    await provideConfig(
-      () => initialize(
-          workspaceCapabilities: withApplyEditSupport(
-              withConfigurationSupport(emptyWorkspaceClientCapabilities))),
-      {'maxCompletionItems': 200},
-    );
+    await provideConfig(initialize, {'maxCompletionItems': 200});
     await openFile(mainFileUri, withoutMarkers(content));
     await initialAnalysis;
     final res =
@@ -1854,12 +1802,7 @@
     );
 
     final initialAnalysis = waitForAnalysisComplete();
-    await provideConfig(
-      () => initialize(
-          workspaceCapabilities: withApplyEditSupport(
-              withConfigurationSupport(emptyWorkspaceClientCapabilities))),
-      {'maxCompletionItems': 10},
-    );
+    await provideConfig(initialize, {'maxCompletionItems': 10});
     await openFile(mainFileUri, withoutMarkers(content));
     await initialAnalysis;
     final res =
@@ -1896,15 +1839,9 @@
       ].join('\n'),
     );
 
+    setCompletionItemSnippetSupport();
     final initialAnalysis = waitForAnalysisComplete();
-    await provideConfig(
-      () => initialize(
-          textDocumentCapabilities: withCompletionItemSnippetSupport(
-              emptyTextDocumentClientCapabilities),
-          workspaceCapabilities: withApplyEditSupport(
-              withConfigurationSupport(emptyWorkspaceClientCapabilities))),
-      {'maxCompletionItems': 10},
-    );
+    await provideConfig(initialize, {'maxCompletionItems': 10});
     await openFile(mainFileUri, withoutMarkers(content));
     await initialAnalysis;
     final res =
@@ -2116,9 +2053,8 @@
     void f() { }
 ''';
 
-    await initialize(
-        textDocumentCapabilities: withCompletionItemSnippetSupport(
-            emptyTextDocumentClientCapabilities));
+    setCompletionItemSnippetSupport();
+    await initialize();
     await openFile(mainFileUri, withoutMarkers(content));
     final res = await getCompletion(mainFileUri, positionFromMarker(content));
     expect(res.any((c) => c.label == 'one: '), isTrue);
@@ -2149,6 +2085,7 @@
     }
 ''';
 
+    setCompletionItemSnippetSupport();
     await initialize(
         textDocumentCapabilities: withCompletionItemSnippetSupport(
             emptyTextDocumentClientCapabilities));
@@ -2357,9 +2294,7 @@
 ''';
 
     final initialAnalysis = waitForAnalysisComplete();
-    await initialize(
-        workspaceCapabilities:
-            withApplyEditSupport(emptyWorkspaceClientCapabilities));
+    await initialize();
     await openFile(mainFileUri, withoutMarkers(content));
     await initialAnalysis;
     final res = await getCompletion(mainFileUri, positionFromMarker(content));
@@ -2464,9 +2399,7 @@
 ''';
 
     final initialAnalysis = waitForAnalysisComplete();
-    await initialize(
-        workspaceCapabilities:
-            withApplyEditSupport(emptyWorkspaceClientCapabilities));
+    await initialize();
     await openFile(mainFileUri, withoutMarkers(content));
     await initialAnalysis;
 
@@ -2508,9 +2441,7 @@
 ''';
 
     final initialAnalysis = waitForAnalysisComplete();
-    await initialize(
-        workspaceCapabilities:
-            withApplyEditSupport(emptyWorkspaceClientCapabilities));
+    await initialize();
     await openFile(mainFileUri, withoutMarkers(content));
     await initialAnalysis;
 
@@ -2542,9 +2473,7 @@
 ''';
 
     final initialAnalysis = waitForAnalysisComplete();
-    await initialize(
-        workspaceCapabilities:
-            withApplyEditSupport(emptyWorkspaceClientCapabilities));
+    await initialize();
     await openFile(mainFileUri, withoutMarkers(content));
     await initialAnalysis;
     final res = await getCompletion(mainFileUri, positionFromMarker(content));
@@ -2589,9 +2518,7 @@
 ''';
 
     final initialAnalysis = waitForAnalysisComplete();
-    await initialize(
-        workspaceCapabilities:
-            withApplyEditSupport(emptyWorkspaceClientCapabilities));
+    await initialize();
     await openFile(mainFileUri, withoutMarkers(content));
     await initialAnalysis;
     final res = await getCompletion(mainFileUri, positionFromMarker(content));
@@ -2672,9 +2599,7 @@
 ''';
 
     final initialAnalysis = waitForAnalysisComplete();
-    await initialize(
-        workspaceCapabilities:
-            withApplyEditSupport(emptyWorkspaceClientCapabilities));
+    await initialize();
     await openFile(mainFileUri, withoutMarkers(content));
     await initialAnalysis;
     final res = await getCompletion(mainFileUri, positionFromMarker(content));
@@ -2716,9 +2641,7 @@
 ''';
 
     final initialAnalysis = waitForAnalysisComplete();
-    await initialize(
-        workspaceCapabilities:
-            withApplyEditSupport(emptyWorkspaceClientCapabilities));
+    await initialize();
     await openFile(mainFileUri, withoutMarkers(content));
     await initialAnalysis;
     final res = await getCompletion(mainFileUri, positionFromMarker(content));
@@ -2819,9 +2742,7 @@
 ''';
 
     final initialAnalysis = waitForAnalysisComplete();
-    await initialize(
-        workspaceCapabilities:
-            withApplyEditSupport(emptyWorkspaceClientCapabilities));
+    await initialize();
     await openFile(mainFileUri, withoutMarkers(content));
     await initialAnalysis;
     final res = await getCompletion(mainFileUri, positionFromMarker(content));
@@ -2857,8 +2778,6 @@
     await initialize(
       textDocumentCapabilities: withCompletionItemInsertReplaceSupport(
           emptyTextDocumentClientCapabilities),
-      workspaceCapabilities:
-          withApplyEditSupport(emptyWorkspaceClientCapabilities),
     );
     await openFile(mainFileUri, withoutMarkers(content));
     await initialAnalysis;
@@ -2957,9 +2876,7 @@
 ''';
 
     final initialAnalysis = waitForAnalysisComplete();
-    await initialize(
-        workspaceCapabilities:
-            withApplyEditSupport(emptyWorkspaceClientCapabilities));
+    await initialize();
     await openFile(mainFileUri, withoutMarkers(content));
     await initialAnalysis;
     final res = await getCompletion(mainFileUri, positionFromMarker(content));
@@ -3008,13 +2925,12 @@
 
     final initialAnalysis = waitForAnalysisComplete();
     await initialize(
-        initializationOptions: {
-          ...?defaultInitializationOptions,
-          // Set budget high to ensure it completes.
-          'completionBudgetMilliseconds': 100000,
-        },
-        workspaceCapabilities:
-            withApplyEditSupport(emptyWorkspaceClientCapabilities));
+      initializationOptions: {
+        ...?defaultInitializationOptions,
+        // Set budget high to ensure it completes.
+        'completionBudgetMilliseconds': 100000,
+      },
+    );
     await openFile(mainFileUri, withoutMarkers(content));
     await initialAnalysis;
     final res =
@@ -3038,13 +2954,12 @@
 
     final initialAnalysis = waitForAnalysisComplete();
     await initialize(
-        initializationOptions: {
-          ...?defaultInitializationOptions,
-          // Set budget low to ensure we don't complete.
-          'completionBudgetMilliseconds': 0,
-        },
-        workspaceCapabilities:
-            withApplyEditSupport(emptyWorkspaceClientCapabilities));
+      initializationOptions: {
+        ...?defaultInitializationOptions,
+        // Set budget low to ensure we don't complete.
+        'completionBudgetMilliseconds': 0,
+      },
+    );
     await openFile(mainFileUri, withoutMarkers(content));
     await initialAnalysis;
     final res =
@@ -3066,9 +2981,7 @@
 
     final mainFileContent = 'MyOtherClass^';
     final initialAnalysis = waitForAnalysisComplete();
-    await initialize(
-        workspaceCapabilities:
-            withApplyEditSupport(emptyWorkspaceClientCapabilities));
+    await initialize();
     await openFile(mainFileUri, withoutMarkers(mainFileContent));
     await initialAnalysis;
 
@@ -3108,9 +3021,7 @@
 ''';
 
     final initialAnalysis = waitForAnalysisComplete();
-    await initialize(
-        workspaceCapabilities:
-            withApplyEditSupport(emptyWorkspaceClientCapabilities));
+    await initialize();
     await openFile(mainFileUri, withoutMarkers(content));
     await initialAnalysis;
     final res = await getCompletion(mainFileUri, positionFromMarker(content));
@@ -3183,10 +3094,7 @@
 ''';
 
     final initialAnalysis = waitForAnalysisComplete();
-    await initialize(
-      workspaceCapabilities:
-          withApplyEditSupport(emptyWorkspaceClientCapabilities),
-    );
+    await initialize();
     await openFile(mainFileUri, withoutMarkers(content));
     await initialAnalysis;
     final res = await getCompletion(mainFileUri, positionFromMarker(content));
@@ -3306,14 +3214,12 @@
 ''';
 
     final initialAnalysis = waitForAnalysisComplete();
-    // Support applyEdit, but explicitly disable the suggestions.
+    // applyEdit is supported in setUp, but explicitly disable the suggestions.
     await initialize(
       initializationOptions: {
         ...?defaultInitializationOptions,
         'suggestFromUnimportedLibraries': false,
       },
-      workspaceCapabilities:
-          withApplyEditSupport(emptyWorkspaceClientCapabilities),
     );
     await openFile(mainFileUri, withoutMarkers(content));
     await initialAnalysis;
@@ -3329,6 +3235,8 @@
   Future<void> test_unimportedSymbols_unavailableWithoutApplyEdit() async {
     // If client doesn't advertise support for workspace/applyEdit, we won't
     // include suggestion sets.
+    setApplyEditSupport(false);
+
     newFile(
       join(projectFolderPath, 'other_file.dart'),
       'class InOtherFile {}',
@@ -3391,9 +3299,7 @@
     String expectedContent,
   ) async {
     final initialAnalysis = waitForAnalysisComplete();
-    await initialize(
-        workspaceCapabilities:
-            withApplyEditSupport(emptyWorkspaceClientCapabilities));
+    await initialize();
     await openFile(fileUri, withoutMarkers(content));
     await initialAnalysis;
     final res = await getCompletion(fileUri, positionFromMarker(content));
@@ -3445,7 +3351,7 @@
 clas^
 ''';
 
-    await initializeWithSnippetSupport();
+    await initialize();
     final updated = await expectAndApplySnippet(
       content,
       prefix: ClassDeclaration.prefix,
@@ -3464,17 +3370,8 @@
   Future<void> test_snippets_disabled() async {
     final content = '^';
 
-    // Advertise support (this is done by the editor), but with the user
-    // preference disabled.
-    await provideConfig(
-      () => initialize(
-        textDocumentCapabilities: withCompletionItemSnippetSupport(
-            emptyTextDocumentClientCapabilities),
-        workspaceCapabilities:
-            withConfigurationSupport(emptyWorkspaceClientCapabilities),
-      ),
-      {'enableSnippets': false},
-    );
+    // Support is set in setUp, but here we disable the user preference.
+    await provideConfig(initialize, {'enableSnippets': false});
 
     await expectNoSnippets(content);
   }
@@ -3486,7 +3383,7 @@
 }
 ''';
 
-    await initializeWithSnippetSupport();
+    await initialize();
     final updated = await expectAndApplySnippet(
       content,
       prefix: DoStatement.prefix,
@@ -3514,7 +3411,7 @@
 ''';
 
     final initialAnalysis = waitForAnalysisComplete();
-    await initializeWithSnippetSupport();
+    await initialize();
     await openFile(mainFileUri, withoutMarkers(content));
     await initialAnalysis;
 
@@ -3549,7 +3446,7 @@
 class B {}
 ''';
 
-    await initializeWithSnippetSupport();
+    await initialize();
     await expectNoSnippet(
       content,
       FlutterStatelessWidget.prefix,
@@ -3563,7 +3460,7 @@
 }
 ''';
 
-    await initializeWithSnippetSupport();
+    await initialize();
     final updated = await expectAndApplySnippet(
       content,
       prefix: ForStatement.prefix,
@@ -3586,7 +3483,7 @@
 }
 ''';
 
-    await initializeWithSnippetSupport();
+    await initialize();
     final updated = await expectAndApplySnippet(
       content,
       prefix: ForInStatement.prefix,
@@ -3609,7 +3506,7 @@
 }
 ''';
 
-    await initializeWithSnippetSupport();
+    await initialize();
     final updated = await expectAndApplySnippet(
       content,
       prefix: FunctionDeclaration.prefix,
@@ -3632,7 +3529,7 @@
 }
 ''';
 
-    await initializeWithSnippetSupport();
+    await initialize();
     final updated = await expectAndApplySnippet(
       content,
       prefix: FunctionDeclaration.prefix,
@@ -3653,7 +3550,7 @@
 fun^
 ''';
 
-    await initializeWithSnippetSupport();
+    await initialize();
     final updated = await expectAndApplySnippet(
       content,
       prefix: FunctionDeclaration.prefix,
@@ -3674,7 +3571,7 @@
 }
 ''';
 
-    await initializeWithSnippetSupport();
+    await initialize();
     final updated = await expectAndApplySnippet(
       content,
       prefix: IfStatement.prefix,
@@ -3697,7 +3594,7 @@
 }
 ''';
 
-    await initializeWithSnippetSupport();
+    await initialize();
     final updated = await expectAndApplySnippet(
       content,
       prefix: IfElseStatement.prefix,
@@ -3723,7 +3620,7 @@
 class B {}
 ''';
 
-    await initializeWithSnippetSupport();
+    await initialize();
     final updated = await expectAndApplySnippet(
       content,
       prefix: MainFunction.prefix,
@@ -3746,6 +3643,7 @@
 
     // If we don't send support for Snippet CompletionItem kinds, we don't
     // expect any snippets at all.
+    setCompletionItemSnippetSupport(false);
     await initialize();
     await openFile(mainFileUri, withoutMarkers(content));
     final res = await getCompletion(mainFileUri, positionFromMarker(content));
@@ -3759,7 +3657,7 @@
 }
 ''';
 
-    await initializeWithSnippetSupport();
+    await initialize();
     final updated = await expectAndApplySnippet(
       content,
       prefix: SwitchStatement.prefix,
@@ -3787,7 +3685,7 @@
 }
 ''';
 
-    await initializeWithSnippetSupport();
+    await initialize();
     final updated = await expectAndApplySnippet(
       content,
       prefix: TestDefinition.prefix,
@@ -3814,7 +3712,7 @@
 }
 ''';
 
-    await initializeWithSnippetSupport();
+    await initialize();
     final updated = await expectAndApplySnippet(
       content,
       prefix: TestGroupDefinition.prefix,
@@ -3837,7 +3735,7 @@
 }
 ''';
 
-    await initializeWithSnippetSupport();
+    await initialize();
     final updated = await expectAndApplySnippet(
       content,
       prefix: TryCatchStatement.prefix,
@@ -3862,7 +3760,7 @@
 }
 ''';
 
-    await initializeWithSnippetSupport();
+    await initialize();
     final updated = await expectAndApplySnippet(
       content,
       prefix: WhileStatement.prefix,
@@ -3908,7 +3806,7 @@
 class B {}
 ''';
 
-    await initializeWithSnippetSupport();
+    await initialize();
     final updated = await expectAndApplySnippet(
       content,
       prefix: FlutterStatefulWidget.prefix,
@@ -3949,7 +3847,7 @@
 class B {}
 ''';
 
-    await initializeWithSnippetSupport();
+    await initialize();
     final updated = await expectAndApplySnippet(
       content,
       prefix: FlutterStatefulWidgetWithAnimationController.prefix,
@@ -4005,7 +3903,7 @@
 class B {}
 ''';
 
-    await initializeWithSnippetSupport();
+    await initialize();
     final updated = await expectAndApplySnippet(
       content,
       prefix: FlutterStatelessWidget.prefix,
@@ -4039,7 +3937,7 @@
 class B {}
 ''';
 
-    await initializeWithSnippetSupport();
+    await initialize();
     final updated = await expectAndApplySnippet(
       content,
       prefix: FlutterStatelessWidget.prefix,
@@ -4069,7 +3967,7 @@
 stless^
 ''';
 
-    await initializeWithSnippetSupport();
+    await initialize();
     final updated = await expectAndApplySnippet(
       content,
       prefix: FlutterStatelessWidget.prefix,
@@ -4095,7 +3993,7 @@
 ^
 '''; // Deliberate trailing newline to ensure imports aren't inserted at "end".
 
-    await initializeWithSnippetSupport();
+    await initialize();
     final updated = await expectAndApplySnippet(
       content,
       prefix: FlutterStatelessWidget.prefix,
@@ -4125,7 +4023,7 @@
 }
 ''';
 
-    await initializeWithSnippetSupport();
+    await initialize();
     await expectNoSnippet(
       content,
       FlutterStatelessWidget.prefix,
@@ -4137,7 +4035,7 @@
 stle^
 ''';
 
-    await initializeWithSnippetSupport();
+    await initialize();
     final otherFileUri = pathContext.toUri(convertPath('/other/file.dart'));
     await openFile(otherFileUri, withoutMarkers(content));
     final res = await getCompletion(otherFileUri, positionFromMarker(content));
@@ -4229,8 +4127,9 @@
     return item;
   }
 
-  Future<void> initializeWithSnippetSupport() => initialize(
-        textDocumentCapabilities: withCompletionItemSnippetSupport(
-            emptyTextDocumentClientCapabilities),
-      );
+  @override
+  void setUp() {
+    super.setUp();
+    setCompletionItemSnippetSupport();
+  }
 }
diff --git a/pkg/analysis_server/test/lsp/server_abstract.dart b/pkg/analysis_server/test/lsp/server_abstract.dart
index 3d208ca..43b46e0 100644
--- a/pkg/analysis_server/test/lsp/server_abstract.dart
+++ b/pkg/analysis_server/test/lsp/server_abstract.dart
@@ -427,15 +427,30 @@
     }
   }
 
+  void setAllSupportedTextDocumentDynamicRegistrations() {
+    textDocumentCapabilities = withAllSupportedTextDocumentDynamicRegistrations(
+        textDocumentCapabilities);
+  }
+
   void setApplyEditSupport([bool supported = true]) {
     workspaceCapabilities =
         withApplyEditSupport(workspaceCapabilities, supported);
   }
 
+  void setCompletionItemSnippetSupport([bool supported = true]) {
+    textDocumentCapabilities =
+        withCompletionItemSnippetSupport(textDocumentCapabilities, supported);
+  }
+
   void setConfigurationSupport() {
     workspaceCapabilities = withConfigurationSupport(workspaceCapabilities);
   }
 
+  void setDidChangeConfigurationDynamicRegistration() {
+    workspaceCapabilities =
+        withDidChangeConfigurationDynamicRegistration(workspaceCapabilities);
+  }
+
   void setDocumentChangesSupport([bool supported = true]) {
     workspaceCapabilities =
         withDocumentChangesSupport(workspaceCapabilities, supported);
@@ -603,11 +618,12 @@
   }
 
   TextDocumentClientCapabilities withCompletionItemSnippetSupport(
-    TextDocumentClientCapabilities source,
-  ) {
+    TextDocumentClientCapabilities source, [
+    bool supported = true,
+  ]) {
     return extendTextDocumentCapabilities(source, {
       'completion': {
-        'completionItem': {'snippetSupport': true}
+        'completionItem': {'snippetSupport': supported}
       }
     });
   }
@@ -1395,6 +1411,8 @@
 
   /// Calls the supplied function and responds to any `workspace/configuration`
   /// request with the supplied config.
+  ///
+  /// Automatically enables `workspace/configuration` support.
   Future<T> provideConfig<T>(
     Future<T> Function() f,
     FutureOr<Map<String, Object?>> globalConfig, {