clang-tools 20.0.0git
Namespaces | Functions | Variables
Protocol.cpp File Reference
#include "Protocol.h"
#include "URI.h"
#include "support/Logger.h"
#include "clang/Basic/LLVM.h"
#include "clang/Index/IndexSymbol.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/ADT/StringSwitch.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/JSON.h"
#include "llvm/Support/Path.h"
#include "llvm/Support/raw_ostream.h"

Go to the source code of this file.

Namespaces

namespace  clang
 ===– Representation.cpp - ClangDoc Representation --------—*- C++ -*-===//
 
namespace  clang::clangd
 FIXME: Skip testing on windows temporarily due to the different escaping code mode.
 

Functions

bool clang::clangd::fromJSON (const llvm::json::Value &E, URIForFile &R, llvm::json::Path P)
 
llvm::json::Value clang::clangd::toJSON (const URIForFile &U)
 Serialize/deserialize URIForFile to/from a string URI.
 
llvm::raw_ostream & clang::clangd::operator<< (llvm::raw_ostream &OS, const URIForFile &U)
 
llvm::json::Value clang::clangd::toJSON (const TextDocumentIdentifier &R)
 
bool clang::clangd::fromJSON (const llvm::json::Value &Params, TextDocumentIdentifier &R, llvm::json::Path P)
 
llvm::json::Value clang::clangd::toJSON (const VersionedTextDocumentIdentifier &R)
 
bool clang::clangd::fromJSON (const llvm::json::Value &Params, VersionedTextDocumentIdentifier &R, llvm::json::Path P)
 
bool clang::clangd::fromJSON (const llvm::json::Value &Params, Position &R, llvm::json::Path P)
 
llvm::json::Value clang::clangd::toJSON (const Position &P)
 
llvm::raw_ostream & clang::clangd::operator<< (llvm::raw_ostream &OS, const Position &P)
 
bool clang::clangd::fromJSON (const llvm::json::Value &Params, Range &R, llvm::json::Path P)
 
llvm::json::Value clang::clangd::toJSON (const Range &P)
 
llvm::raw_ostream & clang::clangd::operator<< (llvm::raw_ostream &OS, const Range &R)
 
llvm::json::Value clang::clangd::toJSON (const Location &P)
 
llvm::raw_ostream & clang::clangd::operator<< (llvm::raw_ostream &OS, const Location &L)
 
llvm::json::Value clang::clangd::toJSON (const ReferenceLocation &P)
 
llvm::raw_ostream & clang::clangd::operator<< (llvm::raw_ostream &OS, const ReferenceLocation &L)
 
bool clang::clangd::fromJSON (const llvm::json::Value &Params, TextDocumentItem &R, llvm::json::Path P)
 
bool clang::clangd::fromJSON (const llvm::json::Value &Params, TextEdit &R, llvm::json::Path P)
 
llvm::json::Value clang::clangd::toJSON (const TextEdit &P)
 
bool clang::clangd::fromJSON (const llvm::json::Value &Params, ChangeAnnotation &R, llvm::json::Path P)
 
llvm::json::Value clang::clangd::toJSON (const ChangeAnnotation &CA)
 
bool clang::clangd::fromJSON (const llvm::json::Value &Params, TextDocumentEdit &R, llvm::json::Path P)
 
llvm::json::Value clang::clangd::toJSON (const TextDocumentEdit &P)
 
llvm::raw_ostream & clang::clangd::operator<< (llvm::raw_ostream &OS, const TextEdit &TE)
 
bool clang::clangd::fromJSON (const llvm::json::Value &E, TraceLevel &Out, llvm::json::Path P)
 
bool clang::clangd::fromJSON (const llvm::json::Value &E, SymbolKind &Out, llvm::json::Path P)
 
bool clang::clangd::fromJSON (const llvm::json::Value &E, SymbolKindBitset &Out, llvm::json::Path P)
 
SymbolKind clang::clangd::adjustKindToCapability (SymbolKind Kind, SymbolKindBitset &SupportedSymbolKinds)
 
SymbolKind clang::clangd::indexSymbolKindToSymbolKind (index::SymbolKind Kind)
 
bool clang::clangd::fromJSON (const llvm::json::Value &Params, ClientCapabilities &R, llvm::json::Path P)
 
bool clang::clangd::fromJSON (const llvm::json::Value &Params, InitializeParams &R, llvm::json::Path P)
 
llvm::json::Value clang::clangd::toJSON (const WorkDoneProgressCreateParams &P)
 
llvm::json::Value clang::clangd::toJSON (const WorkDoneProgressBegin &P)
 
llvm::json::Value clang::clangd::toJSON (const WorkDoneProgressReport &P)
 
llvm::json::Value clang::clangd::toJSON (const WorkDoneProgressEnd &P)
 
llvm::json::Value clang::clangd::toJSON (const MessageType &R)
 
llvm::json::Value clang::clangd::toJSON (const ShowMessageParams &R)
 
bool clang::clangd::fromJSON (const llvm::json::Value &Params, DidOpenTextDocumentParams &R, llvm::json::Path P)
 
bool clang::clangd::fromJSON (const llvm::json::Value &Params, DidCloseTextDocumentParams &R, llvm::json::Path P)
 
bool clang::clangd::fromJSON (const llvm::json::Value &Params, DidSaveTextDocumentParams &R, llvm::json::Path P)
 
bool clang::clangd::fromJSON (const llvm::json::Value &Params, DidChangeTextDocumentParams &R, llvm::json::Path P)
 
bool clang::clangd::fromJSON (const llvm::json::Value &E, FileChangeType &Out, llvm::json::Path P)
 
bool clang::clangd::fromJSON (const llvm::json::Value &Params, FileEvent &R, llvm::json::Path P)
 
bool clang::clangd::fromJSON (const llvm::json::Value &Params, DidChangeWatchedFilesParams &R, llvm::json::Path P)
 
bool clang::clangd::fromJSON (const llvm::json::Value &Params, TextDocumentContentChangeEvent &R, llvm::json::Path P)
 
bool clang::clangd::fromJSON (const llvm::json::Value &Params, DocumentRangeFormattingParams &R, llvm::json::Path P)
 
bool clang::clangd::fromJSON (const llvm::json::Value &Params, DocumentOnTypeFormattingParams &R, llvm::json::Path P)
 
bool clang::clangd::fromJSON (const llvm::json::Value &Params, DocumentFormattingParams &R, llvm::json::Path P)
 
bool clang::clangd::fromJSON (const llvm::json::Value &Params, DocumentSymbolParams &R, llvm::json::Path P)
 
llvm::json::Value clang::clangd::toJSON (const DiagnosticRelatedInformation &DRI)
 
llvm::json::Value clang::clangd::toJSON (DiagnosticTag Tag)
 
llvm::json::Value clang::clangd::toJSON (const CodeDescription &D)
 
llvm::json::Value clang::clangd::toJSON (const Diagnostic &D)
 
bool clang::clangd::fromJSON (const llvm::json::Value &Params, Diagnostic &R, llvm::json::Path P)
 
llvm::json::Value clang::clangd::toJSON (const PublishDiagnosticsParams &PDP)
 
bool clang::clangd::fromJSON (const llvm::json::Value &Params, CodeActionContext &R, llvm::json::Path P)
 
llvm::raw_ostream & clang::clangd::operator<< (llvm::raw_ostream &OS, const Diagnostic &D)
 
bool clang::clangd::fromJSON (const llvm::json::Value &Params, CodeActionParams &R, llvm::json::Path P)
 
bool clang::clangd::fromJSON (const llvm::json::Value &Params, WorkspaceEdit &R, llvm::json::Path P)
 
bool clang::clangd::fromJSON (const llvm::json::Value &Params, ExecuteCommandParams &R, llvm::json::Path P)
 
llvm::json::Value clang::clangd::toJSON (const SymbolInformation &P)
 
llvm::raw_ostream & clang::clangd::operator<< (llvm::raw_ostream &O, const SymbolInformation &SI)
 
bool clang::clangd::operator== (const SymbolDetails &LHS, const SymbolDetails &RHS)
 
llvm::json::Value clang::clangd::toJSON (const SymbolDetails &P)
 
llvm::raw_ostream & clang::clangd::operator<< (llvm::raw_ostream &O, const SymbolDetails &S)
 
bool clang::clangd::fromJSON (const llvm::json::Value &Params, WorkspaceSymbolParams &R, llvm::json::Path P)
 
llvm::json::Value clang::clangd::toJSON (const Command &C)
 
llvm::json::Value clang::clangd::toJSON (const CodeAction &CA)
 
llvm::raw_ostream & clang::clangd::operator<< (llvm::raw_ostream &O, const DocumentSymbol &S)
 
llvm::json::Value clang::clangd::toJSON (const DocumentSymbol &S)
 
llvm::json::Value clang::clangd::toJSON (const WorkspaceEdit &WE)
 
bool clang::clangd::fromJSON (const llvm::json::Value &Params, TweakArgs &A, llvm::json::Path P)
 
llvm::json::Value clang::clangd::toJSON (const TweakArgs &A)
 
llvm::json::Value clang::clangd::toJSON (const ApplyWorkspaceEditParams &Params)
 
bool clang::clangd::fromJSON (const llvm::json::Value &Response, ApplyWorkspaceEditResponse &R, llvm::json::Path P)
 
bool clang::clangd::fromJSON (const llvm::json::Value &Params, TextDocumentPositionParams &R, llvm::json::Path P)
 
bool clang::clangd::fromJSON (const llvm::json::Value &Params, CompletionContext &R, llvm::json::Path P)
 
bool clang::clangd::fromJSON (const llvm::json::Value &Params, CompletionParams &R, llvm::json::Path P)
 
static llvm::StringRef clang::clangd::toTextKind (MarkupKind Kind)
 
bool clang::clangd::fromJSON (const llvm::json::Value &V, MarkupKind &K, llvm::json::Path P)
 
llvm::raw_ostream & clang::clangd::operator<< (llvm::raw_ostream &OS, MarkupKind K)
 
llvm::json::Value clang::clangd::toJSON (const MarkupContent &MC)
 
llvm::json::Value clang::clangd::toJSON (const Hover &H)
 
bool clang::clangd::fromJSON (const llvm::json::Value &E, CompletionItemKind &Out, llvm::json::Path P)
 
CompletionItemKind clang::clangd::adjustKindToCapability (CompletionItemKind Kind, CompletionItemKindBitset &SupportedCompletionItemKinds)
 
bool clang::clangd::fromJSON (const llvm::json::Value &E, CompletionItemKindBitset &Out, llvm::json::Path P)
 
llvm::json::Value clang::clangd::toJSON (const CompletionItemLabelDetails &CD)
 
void clang::clangd::removeCompletionLabelDetails (CompletionItem &)
 Remove the labelDetails field (for clients that don't support it).
 
llvm::json::Value clang::clangd::toJSON (const CompletionItem &CI)
 
llvm::raw_ostream & clang::clangd::operator<< (llvm::raw_ostream &O, const CompletionItem &I)
 
bool clang::clangd::operator< (const CompletionItem &L, const CompletionItem &R)
 
llvm::json::Value clang::clangd::toJSON (const CompletionList &L)
 
llvm::json::Value clang::clangd::toJSON (const ParameterInformation &PI)
 
llvm::json::Value clang::clangd::toJSON (const SignatureInformation &SI)
 
llvm::raw_ostream & clang::clangd::operator<< (llvm::raw_ostream &O, const SignatureInformation &I)
 
llvm::json::Value clang::clangd::toJSON (const SignatureHelp &SH)
 
bool clang::clangd::fromJSON (const llvm::json::Value &Params, RenameParams &R, llvm::json::Path P)
 
llvm::json::Value clang::clangd::toJSON (const RenameParams &R)
 
llvm::json::Value clang::clangd::toJSON (const PrepareRenameResult &PRR)
 
llvm::json::Value clang::clangd::toJSON (const DocumentHighlight &DH)
 
llvm::json::Value clang::clangd::toJSON (const FileStatus &FStatus)
 
static llvm::json::Value clang::clangd::encodeTokens (llvm::ArrayRef< SemanticToken > Toks)
 
bool clang::clangd::operator== (const SemanticToken &L, const SemanticToken &R)
 
llvm::json::Value clang::clangd::toJSON (const SemanticTokens &Tokens)
 
llvm::json::Value clang::clangd::toJSON (const SemanticTokensEdit &Edit)
 
llvm::json::Value clang::clangd::toJSON (const SemanticTokensOrDelta &TE)
 
bool clang::clangd::fromJSON (const llvm::json::Value &Params, SemanticTokensParams &R, llvm::json::Path P)
 
bool clang::clangd::fromJSON (const llvm::json::Value &Params, SemanticTokensDeltaParams &R, llvm::json::Path P)
 
llvm::json::Value clang::clangd::toJSON (const InactiveRegionsParams &InactiveRegions)
 
llvm::raw_ostream & clang::clangd::operator<< (llvm::raw_ostream &O, const DocumentHighlight &V)
 
bool clang::clangd::fromJSON (const llvm::json::Value &Params, DidChangeConfigurationParams &CCP, llvm::json::Path P)
 
bool clang::clangd::fromJSON (const llvm::json::Value &Params, ClangdCompileCommand &CDbUpdate, llvm::json::Path P)
 
bool clang::clangd::fromJSON (const llvm::json::Value &Params, ConfigurationSettings &S, llvm::json::Path P)
 
bool clang::clangd::fromJSON (const llvm::json::Value &Params, InitializationOptions &Opts, llvm::json::Path P)
 
bool clang::clangd::fromJSON (const llvm::json::Value &E, TypeHierarchyDirection &Out, llvm::json::Path P)
 
bool clang::clangd::fromJSON (const llvm::json::Value &Params, TypeHierarchyPrepareParams &R, llvm::json::Path P)
 
llvm::raw_ostream & clang::clangd::operator<< (llvm::raw_ostream &O, const TypeHierarchyItem &I)
 
llvm::json::Value clang::clangd::toJSON (const TypeHierarchyItem::ResolveParams &RP)
 
bool clang::clangd::fromJSON (const llvm::json::Value &Params, TypeHierarchyItem::ResolveParams &RP, llvm::json::Path P)
 
llvm::json::Value clang::clangd::toJSON (const TypeHierarchyItem &I)
 
bool clang::clangd::fromJSON (const llvm::json::Value &Params, TypeHierarchyItem &I, llvm::json::Path P)
 
bool clang::clangd::fromJSON (const llvm::json::Value &Params, ResolveTypeHierarchyItemParams &R, llvm::json::Path P)
 
bool clang::clangd::fromJSON (const llvm::json::Value &Params, ReferenceContext &R, llvm::json::Path P)
 
bool clang::clangd::fromJSON (const llvm::json::Value &Params, ReferenceParams &R, llvm::json::Path P)
 
llvm::json::Value clang::clangd::toJSON (SymbolTag Tag)
 
llvm::json::Value clang::clangd::toJSON (const CallHierarchyItem &I)
 
bool clang::clangd::fromJSON (const llvm::json::Value &Params, CallHierarchyItem &I, llvm::json::Path P)
 
bool clang::clangd::fromJSON (const llvm::json::Value &Params, CallHierarchyIncomingCallsParams &C, llvm::json::Path P)
 
llvm::json::Value clang::clangd::toJSON (const CallHierarchyIncomingCall &C)
 
bool clang::clangd::fromJSON (const llvm::json::Value &Params, CallHierarchyOutgoingCallsParams &C, llvm::json::Path P)
 
llvm::json::Value clang::clangd::toJSON (const CallHierarchyOutgoingCall &C)
 
bool clang::clangd::fromJSON (const llvm::json::Value &Params, InlayHintsParams &R, llvm::json::Path P)
 
llvm::json::Value clang::clangd::toJSON (const InlayHintKind &Kind)
 
llvm::json::Value clang::clangd::toJSON (const InlayHint &H)
 
bool clang::clangd::operator== (const InlayHint &A, const InlayHint &B)
 
bool clang::clangd::operator< (const InlayHint &A, const InlayHint &B)
 
llvm::raw_ostream & clang::clangd::operator<< (llvm::raw_ostream &OS, InlayHintKind Kind)
 
llvm::json::Value clang::clangd::toJSON (const InlayHintLabelPart &L)
 
bool clang::clangd::operator== (const InlayHintLabelPart &LHS, const InlayHintLabelPart &RHS)
 
bool clang::clangd::operator< (const InlayHintLabelPart &LHS, const InlayHintLabelPart &RHS)
 
llvm::raw_ostream & clang::clangd::operator<< (llvm::raw_ostream &OS, const InlayHintLabelPart &L)
 
static const char * clang::clangd::toString (OffsetEncoding OE)
 
llvm::json::Value clang::clangd::toJSON (const OffsetEncoding &OE)
 
bool clang::clangd::fromJSON (const llvm::json::Value &V, OffsetEncoding &OE, llvm::json::Path P)
 
llvm::raw_ostream & clang::clangd::operator<< (llvm::raw_ostream &OS, OffsetEncoding Enc)
 
bool clang::clangd::fromJSON (const llvm::json::Value &Params, SelectionRangeParams &S, llvm::json::Path P)
 
llvm::json::Value clang::clangd::toJSON (const SelectionRange &Out)
 
bool clang::clangd::fromJSON (const llvm::json::Value &Params, DocumentLinkParams &R, llvm::json::Path P)
 
llvm::json::Value clang::clangd::toJSON (const DocumentLink &DocumentLink)
 
bool clang::clangd::fromJSON (const llvm::json::Value &Params, FoldingRangeParams &R, llvm::json::Path P)
 
llvm::json::Value clang::clangd::toJSON (const FoldingRange &Range)
 
llvm::json::Value clang::clangd::toJSON (const MemoryTree &MT)
 Keys starting with an underscore(_) represent leaves, e.g.
 
bool clang::clangd::fromJSON (const llvm::json::Value &Params, ASTParams &R, llvm::json::Path P)
 
llvm::json::Value clang::clangd::toJSON (const ASTNode &N)
 
llvm::raw_ostream & clang::clangd::operator<< (llvm::raw_ostream &OS, const ASTNode &Root)
 
bool clang::clangd::fromJSON (const llvm::json::Value &E, SymbolID &S, llvm::json::Path P)
 
llvm::json::Value clang::clangd::toJSON (const SymbolID &S)
 

Variables

constexpr unsigned clang::clangd::SemanticTokenEncodingSize = 5