Author: sammccall Date: Tue Feb 27 09:15:50 2018 New Revision: 326211 URL: http://llvm.org/viewvc/llvm-project?rev=326211&view=rev Log: [clangd] Remove codecomplete override content API. Long live addDocument!
Modified: clang-tools-extra/trunk/clangd/ClangdServer.cpp clang-tools-extra/trunk/clangd/ClangdServer.h clang-tools-extra/trunk/unittests/clangd/CodeCompleteTests.cpp clang-tools-extra/trunk/unittests/clangd/SyncAPI.cpp clang-tools-extra/trunk/unittests/clangd/SyncAPI.h Modified: clang-tools-extra/trunk/clangd/ClangdServer.cpp URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clangd/ClangdServer.cpp?rev=326211&r1=326210&r2=326211&view=diff ============================================================================== --- clang-tools-extra/trunk/clangd/ClangdServer.cpp (original) +++ clang-tools-extra/trunk/clangd/ClangdServer.cpp Tue Feb 27 09:15:50 2018 @@ -141,7 +141,6 @@ void ClangdServer::forceReparse(PathRef void ClangdServer::codeComplete( PathRef File, Position Pos, const clangd::CodeCompleteOptions &Opts, UniqueFunction<void(Tagged<CompletionList>)> Callback, - llvm::Optional<StringRef> OverridenContents, IntrusiveRefCntPtr<vfs::FileSystem> *UsedFS) { using CallbackType = UniqueFunction<void(Tagged<CompletionList>)>; @@ -154,14 +153,9 @@ void ClangdServer::codeComplete( if (!CodeCompleteOpts.Index) // Respect overridden index. CodeCompleteOpts.Index = Index; - std::string Contents; - if (OverridenContents) { - Contents = OverridenContents->str(); - } else { - VersionedDraft Latest = DraftMgr.getDraft(File); - assert(Latest.Draft && "codeComplete called for non-added document"); - Contents = *Latest.Draft; - } + VersionedDraft Latest = DraftMgr.getDraft(File); + // FIXME(sammccall): return error for consistency? + assert(Latest.Draft && "codeComplete called for non-added document"); // Copy PCHs to avoid accessing this->PCHs concurrently std::shared_ptr<PCHContainerOperations> PCHs = this->PCHs; @@ -183,34 +177,27 @@ void ClangdServer::codeComplete( WorkScheduler.runWithPreamble( "CodeComplete", File, - Bind(Task, std::move(Contents), File.str(), std::move(Callback))); + Bind(Task, std::move(*Latest.Draft), File.str(), std::move(Callback))); } void ClangdServer::signatureHelp( PathRef File, Position Pos, UniqueFunction<void(llvm::Expected<Tagged<SignatureHelp>>)> Callback, - llvm::Optional<StringRef> OverridenContents, IntrusiveRefCntPtr<vfs::FileSystem> *UsedFS) { auto TaggedFS = FSProvider.getTaggedFileSystem(File); if (UsedFS) *UsedFS = TaggedFS.Value; - std::string Contents; - if (OverridenContents) { - Contents = OverridenContents->str(); - } else { - VersionedDraft Latest = DraftMgr.getDraft(File); - if (!Latest.Draft) - return Callback(llvm::make_error<llvm::StringError>( - "signatureHelp is called for non-added document", - llvm::errc::invalid_argument)); - Contents = std::move(*Latest.Draft); - } + VersionedDraft Latest = DraftMgr.getDraft(File); + if (!Latest.Draft) + return Callback(llvm::make_error<llvm::StringError>( + "signatureHelp is called for non-added document", + llvm::errc::invalid_argument)); auto PCHs = this->PCHs; - auto Action = [Contents, Pos, TaggedFS, - PCHs](Path File, decltype(Callback) Callback, - llvm::Expected<InputsAndPreamble> IP) { + auto Action = [Pos, TaggedFS, PCHs](std::string Contents, Path File, + decltype(Callback) Callback, + llvm::Expected<InputsAndPreamble> IP) { if (!IP) return Callback(IP.takeError()); @@ -223,8 +210,9 @@ void ClangdServer::signatureHelp( TaggedFS.Tag)); }; - WorkScheduler.runWithPreamble("SignatureHelp", File, - Bind(Action, File.str(), std::move(Callback))); + WorkScheduler.runWithPreamble( + "SignatureHelp", File, + Bind(Action, std::move(*Latest.Draft), File.str(), std::move(Callback))); } llvm::Expected<tooling::Replacements> Modified: clang-tools-extra/trunk/clangd/ClangdServer.h URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clangd/ClangdServer.h?rev=326211&r1=326210&r2=326211&view=diff ============================================================================== --- clang-tools-extra/trunk/clangd/ClangdServer.h (original) +++ clang-tools-extra/trunk/clangd/ClangdServer.h Tue Feb 27 09:15:50 2018 @@ -171,10 +171,7 @@ public: /// Run code completion for \p File at \p Pos. /// Request is processed asynchronously. /// - /// If \p OverridenContents is not None, they will used only for code - /// completion, i.e. no diagnostics update will be scheduled and a draft for - /// \p File will not be updated. If \p OverridenContents is None, contents of - /// the current draft for \p File will be used. If \p UsedFS is non-null, it + /// The current draft for \p File will be used. If \p UsedFS is non-null, it /// will be overwritten by vfs::FileSystem used for completion. /// /// This method should only be called for currently tracked files. However, it @@ -185,20 +182,16 @@ public: void codeComplete(PathRef File, Position Pos, const clangd::CodeCompleteOptions &Opts, UniqueFunction<void(Tagged<CompletionList>)> Callback, - llvm::Optional<StringRef> OverridenContents = llvm::None, IntrusiveRefCntPtr<vfs::FileSystem> *UsedFS = nullptr); /// Provide signature help for \p File at \p Pos. If \p OverridenContents is /// not None, they will used only for signature help, i.e. no diagnostics /// update will be scheduled and a draft for \p File will not be updated. If - /// \p OverridenContents is None, contents of the current draft for \p File - /// will be used. If \p UsedFS is non-null, it will be overwritten by - /// vfs::FileSystem used for signature help. This method should only be called - /// for currently tracked files. + /// If \p UsedFS is non-null, it will be overwritten by vfs::FileSystem used + /// for signature help. This method should only be called for tracked files. void signatureHelp( PathRef File, Position Pos, UniqueFunction<void(llvm::Expected<Tagged<SignatureHelp>>)> Callback, - llvm::Optional<StringRef> OverridenContents = llvm::None, IntrusiveRefCntPtr<vfs::FileSystem> *UsedFS = nullptr); /// Get definition of symbol at a specified \p Line and \p Column in \p File. Modified: clang-tools-extra/trunk/unittests/clangd/CodeCompleteTests.cpp URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/unittests/clangd/CodeCompleteTests.cpp?rev=326211&r1=326210&r2=326211&view=diff ============================================================================== --- clang-tools-extra/trunk/unittests/clangd/CodeCompleteTests.cpp (original) +++ clang-tools-extra/trunk/unittests/clangd/CodeCompleteTests.cpp Tue Feb 27 09:15:50 2018 @@ -337,24 +337,6 @@ TEST(CompletionTest, CompletionOptions) } } -// Check code completion works when the file contents are overridden. -TEST(CompletionTest, CheckContentsOverride) { - MockFSProvider FS; - IgnoreDiagnostics DiagConsumer; - MockCompilationDatabase CDB; - ClangdServer Server(CDB, DiagConsumer, FS, getDefaultAsyncThreadsCount(), - /*StorePreamblesInMemory=*/true); - auto File = testPath("foo.cpp"); - Server.addDocument(File, "ignored text!"); - - Annotations Example("int cbc; int b = ^;"); - auto Results = - runCodeComplete(Server, File, Example.point(), - clangd::CodeCompleteOptions(), StringRef(Example.code())) - .Value; - EXPECT_THAT(Results.items, Contains(Named("cbc"))); -} - TEST(CompletionTest, Priorities) { auto Internal = completions(R"cpp( class Foo { Modified: clang-tools-extra/trunk/unittests/clangd/SyncAPI.cpp URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/unittests/clangd/SyncAPI.cpp?rev=326211&r1=326210&r2=326211&view=diff ============================================================================== --- clang-tools-extra/trunk/unittests/clangd/SyncAPI.cpp (original) +++ clang-tools-extra/trunk/unittests/clangd/SyncAPI.cpp Tue Feb 27 09:15:50 2018 @@ -61,20 +61,18 @@ template <typename T> CaptureProxy<T> ca } } // namespace -Tagged<CompletionList> -runCodeComplete(ClangdServer &Server, PathRef File, Position Pos, - clangd::CodeCompleteOptions Opts, - llvm::Optional<StringRef> OverridenContents) { +Tagged<CompletionList> runCodeComplete(ClangdServer &Server, PathRef File, + Position Pos, + clangd::CodeCompleteOptions Opts) { llvm::Optional<Tagged<CompletionList>> Result; - Server.codeComplete(File, Pos, Opts, capture(Result), OverridenContents); + Server.codeComplete(File, Pos, Opts, capture(Result)); return std::move(*Result); } llvm::Expected<Tagged<SignatureHelp>> -runSignatureHelp(ClangdServer &Server, PathRef File, Position Pos, - llvm::Optional<StringRef> OverridenContents) { +runSignatureHelp(ClangdServer &Server, PathRef File, Position Pos) { llvm::Optional<llvm::Expected<Tagged<SignatureHelp>>> Result; - Server.signatureHelp(File, Pos, capture(Result), OverridenContents); + Server.signatureHelp(File, Pos, capture(Result)); return std::move(*Result); } Modified: clang-tools-extra/trunk/unittests/clangd/SyncAPI.h URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/unittests/clangd/SyncAPI.h?rev=326211&r1=326210&r2=326211&view=diff ============================================================================== --- clang-tools-extra/trunk/unittests/clangd/SyncAPI.h (original) +++ clang-tools-extra/trunk/unittests/clangd/SyncAPI.h Tue Feb 27 09:15:50 2018 @@ -18,14 +18,12 @@ namespace clang { namespace clangd { -Tagged<CompletionList> -runCodeComplete(ClangdServer &Server, PathRef File, Position Pos, - clangd::CodeCompleteOptions Opts, - llvm::Optional<StringRef> OverridenContents = llvm::None); +Tagged<CompletionList> runCodeComplete(ClangdServer &Server, PathRef File, + Position Pos, + clangd::CodeCompleteOptions Opts); llvm::Expected<Tagged<SignatureHelp>> -runSignatureHelp(ClangdServer &Server, PathRef File, Position Pos, - llvm::Optional<StringRef> OverridenContents = llvm::None); +runSignatureHelp(ClangdServer &Server, PathRef File, Position Pos); llvm::Expected<Tagged<std::vector<Location>>> runFindDefinitions(ClangdServer &Server, PathRef File, Position Pos); _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits