Author: sammccall Date: Mon May 6 01:39:17 2019 New Revision: 360020 URL: http://llvm.org/viewvc/llvm-project?rev=360020&view=rev Log: [clangd] Always call getFormatStyleForFile().
This means "format" will no longer return an error if the -fallback-style flag is invalid, it will log and use LLVM style. This doesn't really matter. Also document the dependence on global variables. (This patch is a compromise - it's probably not worth actually avoiding the globals). Modified: clang-tools-extra/trunk/clangd/ClangdServer.cpp clang-tools-extra/trunk/clangd/SourceCode.h Modified: clang-tools-extra/trunk/clangd/ClangdServer.cpp URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clangd/ClangdServer.cpp?rev=360020&r1=360019&r2=360020&view=diff ============================================================================== --- clang-tools-extra/trunk/clangd/ClangdServer.cpp (original) +++ clang-tools-extra/trunk/clangd/ClangdServer.cpp Mon May 6 01:39:17 2019 @@ -496,20 +496,16 @@ llvm::Expected<tooling::Replacements> ClangdServer::formatCode(llvm::StringRef Code, PathRef File, llvm::ArrayRef<tooling::Range> Ranges) { // Call clang-format. - auto FS = FSProvider.getFileSystem(); - auto Style = format::getStyle(format::DefaultFormatStyle, File, - format::DefaultFallbackStyle, Code, FS.get()); - if (!Style) - return Style.takeError(); - + format::FormatStyle Style = + getFormatStyleForFile(File, Code, FSProvider.getFileSystem().get()); tooling::Replacements IncludeReplaces = - format::sortIncludes(*Style, Code, Ranges, File); + format::sortIncludes(Style, Code, Ranges, File); auto Changed = tooling::applyAllReplacements(Code, IncludeReplaces); if (!Changed) return Changed.takeError(); return IncludeReplaces.merge(format::reformat( - Style.get(), *Changed, + Style, *Changed, tooling::calculateRangesAfterReplacements(IncludeReplaces, Ranges), File)); } Modified: clang-tools-extra/trunk/clangd/SourceCode.h URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clangd/SourceCode.h?rev=360020&r1=360019&r2=360020&view=diff ============================================================================== --- clang-tools-extra/trunk/clangd/SourceCode.h (original) +++ clang-tools-extra/trunk/clangd/SourceCode.h Mon May 6 01:39:17 2019 @@ -147,6 +147,11 @@ llvm::Optional<std::string> getCanonical bool isRangeConsecutive(const Range &Left, const Range &Right); +/// Choose the clang-format style we should apply to a certain file. +/// This will usually use FS to look for .clang-format directories. +/// FIXME: should we be caching the .clang-format file search? +/// This uses format::DefaultFormatStyle and format::DefaultFallbackStyle, +/// though the latter may have been overridden in main()! format::FormatStyle getFormatStyleForFile(llvm::StringRef File, llvm::StringRef Content, llvm::vfs::FileSystem *FS); _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits