llvm-project/clang-tools-extra/clangd
Sam McCall 2c30fbcac5 [clangd] Lay JSONRPCDispatcher to rest.
Summary:
Most of its functionality is moved into ClangdLSPServer.
The decoupling between JSONRPCDispatcher, ProtocolCallbacks, ClangdLSPServer
was never real, and only served to obfuscate.

Some previous implicit/magic stuff is now explicit:
 - the return type of LSP method calls are now in the signature
 - no more reply() that gets the ID using global context magic
 - arg tracing no longer relies on RequestArgs::stash context magic either

This is mostly refactoring, but some deliberate fixes while here:
 - LSP method params are now by const reference
 - notifications and calls are now distinct namespaces.
   (some tests had protocol errors and needed updating)
 - we now reply to calls we failed to decode
 - outgoing calls use distinct IDs
A few error codes and message IDs changed in unimportant ways (see tests).

Reviewers: ioeric

Subscribers: mgorny, ilya-biryukov, javed.absar, MaskRay, jkorous, arphaman, jfb, kadircet, cfe-commits

Differential Revision: https://reviews.llvm.org/D53387

llvm-svn: 344737
2018-10-18 12:32:04 +00:00
..
benchmarks [clangd] Merge binary + YAML serialization behind a (mostly) common interface. 2018-09-25 18:06:43 +00:00
clients/clangd-vscode [clangd] Fix category in clangd-vscode's package.json 2018-07-23 14:32:12 +00:00
fuzzer [clangd] Fix fuzzer build. 2018-08-04 01:51:10 +00:00
index [clangd] Names that are not spelled in source code are reserved. 2018-10-18 12:23:05 +00:00
indexer [clangd] Make binary index format the default, remove dead flag. 2018-10-05 09:05:28 +00:00
tool [clangd] Lay JSONRPCDispatcher to rest. 2018-10-18 12:32:04 +00:00
AST.cpp [clangd] Names that are not spelled in source code are reserved. 2018-10-18 12:23:05 +00:00
AST.h [clangd] Names that are not spelled in source code are reserved. 2018-10-18 12:23:05 +00:00
CMakeLists.txt [clangd] Lay JSONRPCDispatcher to rest. 2018-10-18 12:32:04 +00:00
Cancellation.cpp [clangd] Simplify cancellation public API 2018-09-13 11:47:48 +00:00
Cancellation.h [clangd] Simplify cancellation public API 2018-09-13 11:47:48 +00:00
ClangdLSPServer.cpp [clangd] Lay JSONRPCDispatcher to rest. 2018-10-18 12:32:04 +00:00
ClangdLSPServer.h [clangd] Lay JSONRPCDispatcher to rest. 2018-10-18 12:32:04 +00:00
ClangdServer.cpp [clangd] Optionally use dex for the preamble parts of the dynamic index. 2018-10-16 08:53:52 +00:00
ClangdServer.h [clangd] Optionally use dex for the preamble parts of the dynamic index. 2018-10-16 08:53:52 +00:00
ClangdUnit.cpp [clangd] Remove no-op crash handler, we never set a crash context. 2018-10-11 13:06:10 +00:00
ClangdUnit.h Lift VFS from clang to llvm (NFC) 2018-10-10 13:27:25 +00:00
CodeComplete.cpp Fix warning about unused variable [NFC] 2018-10-18 06:00:39 +00:00
CodeComplete.h Lift VFS from clang to llvm (NFC) 2018-10-10 13:27:25 +00:00
CodeCompletionStrings.cpp [clangd] Show function documentation in signature help 2018-08-17 09:29:38 +00:00
CodeCompletionStrings.h [clangd] Show function documentation in signature help 2018-08-17 09:29:38 +00:00
Compiler.cpp Lift VFS from clang to llvm (NFC) 2018-10-10 13:27:25 +00:00
Compiler.h Lift VFS from clang to llvm (NFC) 2018-10-10 13:27:25 +00:00
Context.cpp NFC: Enforce good formatting across multiple clang-tools-extra files 2018-08-14 16:03:32 +00:00
Context.h [clangd] context key constructor is constexpr. NFC 2018-06-15 12:39:21 +00:00
Diagnostics.cpp [clangd] Revert back to previous heuristic for diagnostic range extraction. 2018-10-09 08:41:12 +00:00
Diagnostics.h [clangd] send diagnostic categories only when 'categorySupport' 2018-08-22 20:30:06 +00:00
DraftStore.cpp [clangd] Support incremental document syncing 2018-03-26 14:41:40 +00:00
DraftStore.h [clangd] Support incremental document syncing 2018-03-26 14:41:40 +00:00
FS.cpp Lift VFS from clang to llvm (NFC) 2018-10-10 13:27:25 +00:00
FS.h Lift VFS from clang to llvm (NFC) 2018-10-10 13:27:25 +00:00
FSProvider.h Fix the qualification of `IntrusiveRefCntPtr` to use `llvm::`. 2018-10-11 08:05:10 +00:00
FileDistance.cpp [clangd] Support scope proximity in code completion. 2018-10-17 11:19:02 +00:00
FileDistance.h [clangd] Support scope proximity in code completion. 2018-10-17 11:19:02 +00:00
FindSymbols.cpp [clangd] Encode Line/Column as a 32-bits integer. 2018-10-18 10:43:50 +00:00
FindSymbols.h [clangd] Correct the namespace of ParsedAST forward declaration, NFC. 2018-08-01 12:50:44 +00:00
Function.h [clangd] Replace UniqueFunction with llvm::unique_function. 2018-07-03 20:59:33 +00:00
FuzzyMatch.cpp [clangd] FuzzyMatch exposes an API for its word segmentation. NFC 2018-07-20 08:01:37 +00:00
FuzzyMatch.h [clangd] FuzzyMatch exposes an API for its word segmentation. NFC 2018-07-20 08:01:37 +00:00
GlobalCompilationDatabase.cpp [clangd] Don't double-infer compile commands after r342228 2018-09-14 12:32:08 +00:00
GlobalCompilationDatabase.h NFC: Enforce good formatting across multiple clang-tools-extra files 2018-08-14 16:03:32 +00:00
Headers.cpp [clangd] Make IncludeInserter less slow. NFC 2018-09-27 14:27:02 +00:00
Headers.h Lift VFS from clang to llvm (NFC) 2018-10-10 13:27:25 +00:00
JSONTransport.cpp [clangd] Refactor JSON-over-stdin/stdout code into Transport abstraction. (re-land r344620) 2018-10-17 07:32:05 +00:00
Logger.cpp [clangd] Rename and move trivial logger to Logger.cpp. NFC 2018-10-17 07:39:32 +00:00
Logger.h [clangd] Rename and move trivial logger to Logger.cpp. NFC 2018-10-17 07:39:32 +00:00
Path.h Restored r303067 and fixed failing test. 2017-05-16 09:38:59 +00:00
Protocol.cpp [clangd] Simplify client capabilities parsing. 2018-10-17 07:33:42 +00:00
Protocol.h [clangd] Simplify client capabilities parsing. 2018-10-17 07:33:42 +00:00
Quality.cpp [clangd] Names that are not spelled in source code are reserved. 2018-10-18 12:23:05 +00:00
Quality.h [clangd] Names that are not spelled in source code are reserved. 2018-10-18 12:23:05 +00:00
RIFF.cpp Remove unnecessary semicolon to silence -Wpedantic warning. NFCI. 2018-09-11 13:42:15 +00:00
RIFF.h [clangd] Define a compact binary serialization fomat for symbol slab/index. 2018-09-04 16:16:50 +00:00
SourceCode.cpp [clangd] Support textEdit in addition to insertText. 2018-08-13 08:23:01 +00:00
SourceCode.h [clangd] Support textEdit in addition to insertText. 2018-08-13 08:23:01 +00:00
TUScheduler.cpp [clangd] Lay JSONRPCDispatcher to rest. 2018-10-18 12:32:04 +00:00
TUScheduler.h [clangd] Fix TUScheduler typos 2018-09-14 00:56:11 +00:00
Threading.cpp [clangd] Use 'const Twine&' instead of 'Twine'. NFC 2018-07-26 16:13:52 +00:00
Threading.h [clangd] Use 'const Twine&' instead of 'Twine'. NFC 2018-07-26 16:13:52 +00:00
Trace.cpp [clangd] Remove JSON library in favor of llvm/Support/JSON 2018-07-09 14:25:59 +00:00
Trace.h [clangd] Remove JSON library in favor of llvm/Support/JSON 2018-07-09 14:25:59 +00:00
Transport.h [clangd] Refactor JSON-over-stdin/stdout code into Transport abstraction. (re-land r344620) 2018-10-17 07:32:05 +00:00
URI.cpp [clangd] Mark colon as a safe character when percent-encoding. 2018-10-09 10:29:54 +00:00
URI.h [clangd] Implement proximity path boosting for Dex 2018-09-06 12:54:43 +00:00
XRefs.cpp [clangd] Encode Line/Column as a 32-bits integer. 2018-10-18 10:43:50 +00:00
XRefs.h [clangd] Implement findReferences function 2018-09-05 10:33:36 +00:00