diff --git a/clang-tools-extra/clangd/ClangdLSPServer.cpp b/clang-tools-extra/clangd/ClangdLSPServer.cpp --- a/clang-tools-extra/clangd/ClangdLSPServer.cpp +++ b/clang-tools-extra/clangd/ClangdLSPServer.cpp @@ -534,10 +534,11 @@ }}, {"completionProvider", llvm::json::Object{ - {"allCommitCharacters", - {" ", "\t", "(", ")", "[", "]", "{", "}", "<", - ">", ":", ";", ",", "+", "-", "/", "*", "%", - "^", "&", "#", "?", ".", "=", "\"", "'", "|"}}, + // We don't set `(` etc as allCommitCharacters as they interact + // poorly with snippet results. + // See https://github.com/clangd/vscode-clangd/issues/357 + // Hopefully we can use them one day without this side-effect: + // https://github.com/microsoft/vscode/issues/42544 {"resolveProvider", false}, // We do extra checks, e.g. that > is part of ->. {"triggerCharacters", {".", "<", ">", ":", "\"", "/", "*"}}, diff --git a/clang-tools-extra/clangd/test/initialize-params.test b/clang-tools-extra/clangd/test/initialize-params.test --- a/clang-tools-extra/clangd/test/initialize-params.test +++ b/clang-tools-extra/clangd/test/initialize-params.test @@ -13,35 +13,6 @@ # CHECK-NEXT: "automaticReload": true # CHECK-NEXT: }, # CHECK-NEXT: "completionProvider": { -# CHECK-NEXT: "allCommitCharacters": [ -# CHECK-NEXT: " ", -# CHECK-NEXT: "\t", -# CHECK-NEXT: "(", -# CHECK-NEXT: ")", -# CHECK-NEXT: "[", -# CHECK-NEXT: "]", -# CHECK-NEXT: "{", -# CHECK-NEXT: "}", -# CHECK-NEXT: "<", -# CHECK-NEXT: ">", -# CHECK-NEXT: ":", -# CHECK-NEXT: ";", -# CHECK-NEXT: ",", -# CHECK-NEXT: "+", -# CHECK-NEXT: "-", -# CHECK-NEXT: "/", -# CHECK-NEXT: "*", -# CHECK-NEXT: "%", -# CHECK-NEXT: "^", -# CHECK-NEXT: "&", -# CHECK-NEXT: "#", -# CHECK-NEXT: "?", -# CHECK-NEXT: ".", -# CHECK-NEXT: "=", -# CHECK-NEXT: "\"", -# CHECK-NEXT: "'", -# CHECK-NEXT: "|" -# CHECK-NEXT: ], # CHECK-NEXT: "resolveProvider": false, # CHECK-NEXT: "triggerCharacters": [ # CHECK-NEXT: ".",