[clang-tools-extra] r360020 - [clangd] Always call getFormatStyleForFile().
Sam McCall via cfe-commits
cfe-commits at lists.llvm.org
Mon May 6 01:39:17 PDT 2019
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);
More information about the cfe-commits
mailing list