Author: Sam McCall Date: 2020-09-24T11:57:31+02:00 New Revision: 00e05b12c76c396688cd8d4caac09a2e96851fd9
URL: https://github.com/llvm/llvm-project/commit/00e05b12c76c396688cd8d4caac09a2e96851fd9 DIFF: https://github.com/llvm/llvm-project/commit/00e05b12c76c396688cd8d4caac09a2e96851fd9.diff LOG: [clangd] Reorder a little bit of init code. NFC This makes it possible to do something else (run checks) instead of starting the server, with all config applied. Added: Modified: clang-tools-extra/clangd/tool/ClangdMain.cpp Removed: ################################################################################ diff --git a/clang-tools-extra/clangd/tool/ClangdMain.cpp b/clang-tools-extra/clangd/tool/ClangdMain.cpp index cf74ded93632..9660f1bd76f7 100644 --- a/clang-tools-extra/clangd/tool/ClangdMain.cpp +++ b/clang-tools-extra/clangd/tool/ClangdMain.cpp @@ -761,35 +761,6 @@ clangd accepts flags on the commandline, and in the CLANGD_FLAGS environment var Opts.ConfigProvider = Config.get(); } - // Initialize and run ClangdLSPServer. - // Change stdin to binary to not lose \r\n on windows. - llvm::sys::ChangeStdinToBinary(); - - std::unique_ptr<Transport> TransportLayer; - if (getenv("CLANGD_AS_XPC_SERVICE")) { -#if CLANGD_BUILD_XPC - log("Starting LSP over XPC service"); - TransportLayer = newXPCTransport(); -#else - llvm::errs() << "This clangd binary wasn't built with XPC support.\n"; - return (int)ErrorResultCode::CantRunAsXPCService; -#endif - } else { - log("Starting LSP over stdin/stdout"); - TransportLayer = newJSONTransport( - stdin, llvm::outs(), - InputMirrorStream ? InputMirrorStream.getPointer() : nullptr, - PrettyPrint, InputStyle); - } - if (!PathMappingsArg.empty()) { - auto Mappings = parsePathMappings(PathMappingsArg); - if (!Mappings) { - elog("Invalid -path-mappings: {0}", Mappings.takeError()); - return 1; - } - TransportLayer = createPathMappingTransport(std::move(TransportLayer), - std::move(*Mappings)); - } // Create an empty clang-tidy option. std::mutex ClangTidyOptMu; std::unique_ptr<tidy::ClangTidyOptionsProvider> @@ -816,9 +787,9 @@ clangd accepts flags on the commandline, and in the CLANGD_FLAGS environment var return Opts; }; } + Opts.AsyncPreambleBuilds = AsyncPreamble; Opts.SuggestMissingIncludes = SuggestMissingIncludes; Opts.QueryDriverGlobs = std::move(QueryDriverGlobs); - Opts.TweakFilter = [&](const Tweak &T) { if (T.hidden() && !HiddenFeatures) return false; @@ -834,7 +805,34 @@ clangd accepts flags on the commandline, and in the CLANGD_FLAGS environment var // Shall we allow to customize the file limit? RenameOpts.AllowCrossFile = CrossFileRename; - Opts.AsyncPreambleBuilds = AsyncPreamble; + // Initialize and run ClangdLSPServer. + // Change stdin to binary to not lose \r\n on windows. + llvm::sys::ChangeStdinToBinary(); + std::unique_ptr<Transport> TransportLayer; + if (getenv("CLANGD_AS_XPC_SERVICE")) { +#if CLANGD_BUILD_XPC + log("Starting LSP over XPC service"); + TransportLayer = newXPCTransport(); +#else + llvm::errs() << "This clangd binary wasn't built with XPC support.\n"; + return (int)ErrorResultCode::CantRunAsXPCService; +#endif + } else { + log("Starting LSP over stdin/stdout"); + TransportLayer = newJSONTransport( + stdin, llvm::outs(), + InputMirrorStream ? InputMirrorStream.getPointer() : nullptr, + PrettyPrint, InputStyle); + } + if (!PathMappingsArg.empty()) { + auto Mappings = parsePathMappings(PathMappingsArg); + if (!Mappings) { + elog("Invalid -path-mappings: {0}", Mappings.takeError()); + return 1; + } + TransportLayer = createPathMappingTransport(std::move(TransportLayer), + std::move(*Mappings)); + } ClangdLSPServer LSPServer( *TransportLayer, TFS, CCOpts, RenameOpts, CompileCommandsDirPath, _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits