diff options
Diffstat (limited to 'clang-tools-extra/clangd/SourceCode.cpp')
-rw-r--r-- | clang-tools-extra/clangd/SourceCode.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/clang-tools-extra/clangd/SourceCode.cpp b/clang-tools-extra/clangd/SourceCode.cpp index 43122859c55..4d276ef2f23 100644 --- a/clang-tools-extra/clangd/SourceCode.cpp +++ b/clang-tools-extra/clangd/SourceCode.cpp @@ -227,5 +227,17 @@ bool IsRangeConsecutive(const Range &Left, const Range &Right) { Left.end.character == Right.start.character; } +FileDigest digest(StringRef Content) { + return llvm::SHA1::hash({(const uint8_t *)Content.data(), Content.size()}); +} + +Optional<FileDigest> digestFile(const SourceManager &SM, FileID FID) { + bool Invalid = false; + StringRef Content = SM.getBufferData(FID, &Invalid); + if (Invalid) + return None; + return digest(Content); +} + } // namespace clangd } // namespace clang |