clang-tools  7.0.0
ProtocolHandlers.h
Go to the documentation of this file.
1 //===--- ProtocolHandlers.h - LSP callbacks ---------------------*- C++ -*-===//
2 //
3 // The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 //
10 // ProtocolHandlers translates incoming JSON requests from JSONRPCDispatcher
11 // into method calls on ClangLSPServer.
12 //
13 // Currently it parses requests into objects, but the ClangLSPServer is
14 // responsible for producing JSON responses. We should move that here, too.
15 //
16 //===----------------------------------------------------------------------===//
17 
18 #ifndef LLVM_CLANG_TOOLS_EXTRA_CLANGD_PROTOCOLHANDLERS_H
19 #define LLVM_CLANG_TOOLS_EXTRA_CLANGD_PROTOCOLHANDLERS_H
20 
21 #include "JSONRPCDispatcher.h"
22 #include "Protocol.h"
23 #include "llvm/ADT/Twine.h"
24 #include "llvm/Support/raw_ostream.h"
25 
26 namespace clang {
27 namespace clangd {
28 
29 // The interface implemented by ClangLSPServer to handle incoming requests.
31 public:
32  virtual ~ProtocolCallbacks() = default;
33 
34  virtual void onInitialize(InitializeParams &Params) = 0;
35  virtual void onShutdown(ShutdownParams &Params) = 0;
36  virtual void onExit(ExitParams &Params) = 0;
37  virtual void onDocumentDidOpen(DidOpenTextDocumentParams &Params) = 0;
38  virtual void onDocumentDidChange(DidChangeTextDocumentParams &Params) = 0;
39  virtual void onDocumentDidClose(DidCloseTextDocumentParams &Params) = 0;
40  virtual void onDocumentFormatting(DocumentFormattingParams &Params) = 0;
41  virtual void onDocumentSymbol(DocumentSymbolParams &Params) = 0;
42  virtual void
44  virtual void
46  virtual void onCodeAction(CodeActionParams &Params) = 0;
47  virtual void onCompletion(TextDocumentPositionParams &Params) = 0;
48  virtual void onSignatureHelp(TextDocumentPositionParams &Params) = 0;
49  virtual void onGoToDefinition(TextDocumentPositionParams &Params) = 0;
50  virtual void onSwitchSourceHeader(TextDocumentIdentifier &Params) = 0;
51  virtual void onFileEvent(DidChangeWatchedFilesParams &Params) = 0;
52  virtual void onCommand(ExecuteCommandParams &Params) = 0;
53  virtual void onWorkspaceSymbol(WorkspaceSymbolParams &Params) = 0;
54  virtual void onRename(RenameParams &Parames) = 0;
55  virtual void onDocumentHighlight(TextDocumentPositionParams &Params) = 0;
56  virtual void onHover(TextDocumentPositionParams &Params) = 0;
57  virtual void onChangeConfiguration(DidChangeConfigurationParams &Params) = 0;
58 };
59 
61  ProtocolCallbacks &Callbacks);
62 
63 } // namespace clangd
64 } // namespace clang
65 
66 #endif
virtual void onDocumentFormatting(DocumentFormattingParams &Params)=0
virtual void onFileEvent(DidChangeWatchedFilesParams &Params)=0
virtual void onSignatureHelp(TextDocumentPositionParams &Params)=0
virtual void onChangeConfiguration(DidChangeConfigurationParams &Params)=0
Exact commands are not specified in the protocol so we define the ones supported by Clangd here...
Definition: Protocol.h:565
virtual void onGoToDefinition(TextDocumentPositionParams &Params)=0
virtual void onDocumentDidOpen(DidOpenTextDocumentParams &Params)=0
virtual void onCodeAction(CodeActionParams &Params)=0
virtual void onDocumentDidClose(DidCloseTextDocumentParams &Params)=0
virtual void onCompletion(TextDocumentPositionParams &Params)=0
virtual void onDocumentHighlight(TextDocumentPositionParams &Params)=0
void registerCallbackHandlers(JSONRPCDispatcher &Dispatcher, ProtocolCallbacks &Callbacks)
virtual void onSwitchSourceHeader(TextDocumentIdentifier &Params)=0
virtual void onDocumentOnTypeFormatting(DocumentOnTypeFormattingParams &Params)=0
virtual void onRename(RenameParams &Parames)=0
virtual void onInitialize(InitializeParams &Params)=0
virtual void onWorkspaceSymbol(WorkspaceSymbolParams &Params)=0
virtual void onDocumentRangeFormatting(DocumentRangeFormattingParams &Params)=0
virtual void onHover(TextDocumentPositionParams &Params)=0
Main JSONRPC entry point.
virtual void onDocumentSymbol(DocumentSymbolParams &Params)=0
virtual void onDocumentDidChange(DidChangeTextDocumentParams &Params)=0
virtual ~ProtocolCallbacks()=default
===– Representation.cpp - ClangDoc Representation --------—*- C++ -*-===//
virtual void onCommand(ExecuteCommandParams &Params)=0
The parameters of a Workspace Symbol Request.
Definition: Protocol.h:602
virtual void onExit(ExitParams &Params)=0
virtual void onShutdown(ShutdownParams &Params)=0