clang-tools 10.0.0

Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
clang::clangd Namespace Reference

## Namespaces
| detail
| dex
| markup
| riff
| trace

## Classes
class | Annotations
| Same as llvm::Annotations, but adjusts functions to LSP-specific types for positions and ranges. More...
struct | ApplyWorkspaceEditParams
struct | ApplyWorkspaceEditResponse
struct | ASTRetentionPolicy
| Configuration of the AST retention policy. More...
class | AsyncTaskRunner
| Runs tasks on separate (detached) threads and wait for all tasks to finish. More...
class | BackgroundIndex
class | BackgroundIndexRebuilder
class | BackgroundIndexRebuilderTest
class | BackgroundIndexStorage
class | BackgroundIndexTest
class | BackgroundQueue
class | CancelledError
| Conventional error when no result is returned due to cancellation. More...
class | CanonicalIncludes
| Maps a definition location onto an #include file, based on a set of filename rules. More...
struct | CheapUnresolvedName
struct | ClangdCompileCommand
| Clangd extension that's used in the 'compilationDatabaseChanges' in workspace/didChangeConfiguration to record updates to the in-memory compilation database. More...
struct | ClangdDiagnosticOptions
class | ClangdLSPServer
| This class exposes ClangdServer's capabilities via Language Server Protocol. More...
class | ClangdServer
| Manages a collection of source files and derived data (ASTs, indexes), and provides language-aware features such as code completion. More...
struct | ClientCapabilities
struct | CodeAction
| A code action represents a change that can be performed in code, e.g. More...
struct | CodeActionContext
struct | CodeActionParams
struct | CodeCompleteOptions
struct | CodeCompleteResult
struct | CodeCompletion
class | CollectMainFileMacros
| Collects macro references (e.g. More...
struct | Command
struct | CommandMangler
struct | CompletionContext
struct | CompletionItem
struct | CompletionList
| Represents a collection of completion items to be presented in the editor. More...
struct | CompletionParams
struct | CompletionPrefix
struct | ConfigurationSettings
| Clangd extension: parameters configurable at any time, via the `workspace/didChangeConfiguration` notification. More...
class | Context
| A context is an immutable container for per-request data that must be propagated through layers that don't care about it. More...
class | Deadline
| A point in time we can wait for. More...
class | DeclRelationSet
struct | DefinedMacro
struct | Diag
| A top-level diagnostic that may have Notes and Fixes. More...
struct | DiagBase
| Contains basic information about a diagnostic. More...
struct | Diagnostic
struct | DiagnosticRelatedInformation
| Represents a related message and source code location for a diagnostic. More...
class | DiagnosticsConsumer
struct | DidChangeConfigurationParams
struct | DidChangeTextDocumentParams
struct | DidChangeWatchedFilesParams
struct | DidCloseTextDocumentParams
struct | DidOpenTextDocumentParams
class | DirectoryBasedGlobalCompilationDatabase
| Gets compile args from tooling::CompilationDatabases built for parent directories. More...
struct | DocumentFormattingParams
struct | DocumentHighlight
| A document highlight is a range inside a text document which deserves special attention. More...
struct | DocumentLink
| A range in a text document that links to an internal or external resource, like another text document or a web site. More...
struct | DocumentLinkParams
| Parameters for the document link request. More...
struct | DocumentOnTypeFormattingParams
struct | DocumentRangeFormattingParams
struct | DocumentSymbol
| Represents programming constructs like variables, classes, interfaces etc. More...
struct | DocumentSymbolParams
class | DraftStore
| A thread-safe container for files opened in a workspace, addressed by filenames. More...
struct | Edit
| A set of edits generated for a single file. More...
struct | EligibleRegion
| Represents locations that can accept a definition. More...
class | Event
| An Event<T> allows events of type T to be broadcast to listeners. More...
struct | ExecuteCommandParams
| Exact commands are not specified in the protocol so we define the ones supported by Clangd here. More...
class | FileDistance
struct | FileDistanceOptions
struct | FileEvent
class | FileIndex
| This manages symbols from files and an in-memory index on all symbols. More...
struct | FileStatus
| Clangd extension: indicates the current state of the file in clangd, sent from server via the `textDocument/clangd.fileStatus` notification. More...
class | FileSymbols
| A container of Symbols from several source files. More...
class | FileSystemProvider
struct | Fix
| Represents a single fix-it that editor can apply to fix the error. More...
struct | FuzzyFindRequest
class | FuzzyMatcher
class | GlobalCompilationDatabase
| Provides compilation arguments used for parsing C and C++ files. More...
struct | HeaderFile
| Represents a header file to be #include'd. More...
struct | HighlightingToken
struct | Hover
struct | HoverInfo
| Contains detailed information about a Symbol. More...
class | IgnoreDiagnostics
class | IncludeFixer
| Attempts to recover from error diagnostics by suggesting include insertion fixes. More...
struct | IncludeGraphNode
class | IncludeInserter
class | IncludeStructure
struct | Inclusion
struct | IndexFileIn
struct | IndexFileOut
struct | InitializationOptions
| Clangd extension: parameters configurable at `initialize` time. More...
struct | InitializeParams
struct | InputsAndAST
struct | InputsAndPreamble
class | Key
| Values in a Context are indexed by typed keys. More...
struct | LineHighlightings
| Contains all information about highlightings on a single line. More...
struct | LoadedShard
| Represents a shard loaded from storage, stores contents in `Shard` and metadata about the source file that generated this shard. More...
struct | LocatedSymbol
struct | Location
class | Logger
| Interface to allow custom logging in clangd. More...
class | LoggingSession
| Only one LoggingSession can be active at a time. More...
struct | LookupRequest
struct | LSPDiagnosticCompare
| A LSP-specific comparator used to find diagnostic in a container like std:map. More...
class | LSPError
struct | MainFileMacros
struct | MarkupContent
class | MemIndex
| MemIndex is a naive in-memory index suitable for a small set of symbols. More...
class | MemoryShardStorage
class | MergedIndex
class | MockCompilationDatabase
class | MockFSProvider
struct | NoParams
struct | Note
| Represents a note for the diagnostic. More...
class | Notification
| A threadsafe flag that is initially clear. More...
class | OpaqueType
| A representation of a type that can be computed based on clang AST and compared for equality. More...
class | OptionalMatcher
class | OverlayCDB
| Wraps another compilation database, and supports overriding the commands using an in-memory mapping. More...
struct | ParameterInformation
| A single parameter of a particular signature. More...
class | ParsedAST
| Stores and provides access to parsed AST. More...
struct | ParseInputs
| Information required to run clang, e.g. to parse AST or do code completion. More...
struct | ParseOptions
class | ParsingCallbacks
struct | PathMapping
| PathMappings are a collection of paired client and server paths. More...
class | PolySubsequenceMatcher
struct | Position
struct | PreambleData
| The parsed preamble and associated data. More...
class | PreambleFileStatusCache
| Records status information for files open()ed or stat()ed during preamble build (except for the main file), so we can avoid stat()s on the underlying FS when reusing the preamble. More...
struct | ProjectInfo
struct | Range
class | RealFileSystemProvider
struct | Ref
| Represents a symbol occurrence in the source file. More...
struct | ReferenceLoc
| Information about a reference written in the source code, independent of the actual AST node that this reference lives in. More...
struct | ReferenceParams
struct | ReferencesResult
class | RefSlab
| An efficient structure of storing large set of symbol references in memory. More...
struct | RefsRequest
struct | Relation
| Represents a relation between two symbols. More...
class | RelationSlab
struct | RelationsRequest
struct | RenameInputs
struct | RenameParams
struct | ResolveTypeHierarchyItemParams
| Parameters for the `typeHierarchy/resolve` request. More...
class | ScopeDistance
| Support lookups like FileDistance, but the lookup keys are symbol scopes. More...
struct | SelectionRange
struct | SelectionRangeParams
class | SelectionTree
struct | SemanticHighlightingInformation
| Represents a semantic highlighting information that has to be applied on a specific line of the text document. More...
struct | SemanticHighlightingParams
| Parameters for the semantic highlighting (server-side) push notification. More...
class | Semaphore
| Limits the number of threads that can acquire the lock at the same time. More...
struct | ShowMessageParams
| The show message notification is sent from a server to a client to ask the client to display a particular message in the user interface. More...
struct | SignatureHelp
| Represents the signature of a callable. More...
struct | SignatureInformation
| Represents the signature of something callable. More...
struct | SignatureQualitySignals
struct | SourceParams
struct | SpeculativeFuzzyFind
| A speculative and asynchronous fuzzy find index request (based on cached request) that can be sent before parsing sema. More...
class | StoreDiags
| StoreDiags collects the diagnostics that can later be reported by clangd. More...
class | StreamLogger
class | SubsequenceMatcher
class | SwapIndex
struct | Symbol
| The class presents a C++ symbol, e.g. More...
class | SymbolCollector
| Collect declarations (symbols) from an AST. More...
struct | SymbolDetails
| Represents information about identifier. More...
class | SymbolID
class | SymbolIndex
| Interface for symbol indexes that can be used for searching or matching symbols among a set of symbols based on names or unique IDs. More...
struct | SymbolInformation
| Represents information about programming constructs like variables, classes, interfaces etc. More...
struct | SymbolLocation
struct | SymbolQualitySignals
| Attributes of a symbol that affect how much we like it. More...
struct | SymbolRelevanceSignals
| Attributes of a symbol-query pair that affect how much we like it. More...
class | SymbolSlab
| An immutable symbol container that stores a set of symbols. More...
class | TestScheme
| unittest: is a scheme that refers to files relative to testRoot(). More...
struct | TestTU
struct | TextDocumentContentChangeEvent
struct | TextDocumentIdentifier
struct | TextDocumentItem
struct | TextDocumentPositionParams
struct | TextEdit
class | ThreadingTest
class | TopN
| TopN<T> is a lossy container that preserves only the "best" N elements. More...
class | Transport
struct | TUAction
class | TUScheduler
| Handles running tasks for ClangdServer and managing the resources (e.g., preambles and ASTs) for opened files. More...
struct | TUStatus
class | Tweak
| An interface base for small context-sensitive refactoring actions. More...
struct | TweakArgs
| Arguments for the 'applyTweak' command. More...
class | TweakTest
struct | TypeHierarchyItem
struct | TypeHierarchyParams
| The type hierarchy params is an extension of the `TextDocumentPositionsParams` with optional properties which can be used to eagerly resolve the item when requesting from the server. More...
class | URI
| A URI describes the location of a source file. More...
class | URIDistance
struct | URIForFile
class | URIScheme
| URIScheme is an extension point for teaching clangd to recognize a custom URI scheme. More...
class | WithContext
| WithContext replaces Context::current() with a provided scope. More...
class | WithContextValue
| WithContextValue extends Context::current() with a single value. More...
struct | WorkspaceEdit
struct | WorkspaceSymbolParams
| The parameters of a Workspace Symbol Request. More...

## Typedefs
using | Canceler = std::function< void()>
| A canceller requests cancellation of a task, when called. More...
using | ClangTidyOptionsBuilder = std::function< tidy::ClangTidyOptions(llvm::vfs::FileSystem &, llvm::StringRef)>
| When set, used by ClangdServer to get clang-tidy options for each particular file. More...
template<typename T >
using | Callback = llvm::unique_function< void(llvm::Expected< T >)>
| A Callback<T> is a void function that accepts Expected<T>. More...
using | CharTypeSet = unsigned char
using | IncludeGraph = llvm::StringMap< IncludeGraphNode >
using | SlabTuple = std::tuple< SymbolSlab, RefSlab, RelationSlab >
using | Path = std::string
| A typedef to represent a file path. More...
using | PathRef = llvm::StringRef
| A typedef to represent a ref to file path. More...
using | PathMappings = std::vector< PathMapping >
using | PreambleParsedCallback = std::function< void(ASTContext &, std::shared_ptr< clang::Preprocessor >, const CanonicalIncludes &)>
using | ShutdownParams = NoParams
using | ExitParams = NoParams
using | CompletionItemKindBitset = std::bitset< CompletionItemKindMax+1 >
using | SymbolKindBitset = std::bitset< SymbolKindMax+1 >
using | DirtyBufferGetter = llvm::function_ref< llvm::Optional< std::string >(PathRef AbsPath)>
| Gets dirty buffer for a given file `AbsPath`. More...
typedef llvm::Registry< Tweak > | TweakRegistry
| A handy typedef to save some typing. More...
using | FileDigest = std::array< uint8_t, 8 >
using | FileEdits = llvm::StringMap< Edit >
| A mapping from absolute file path (the one used for accessing the underlying VFS) to edits. More...
typedef llvm::Registry< URIScheme > | URISchemeRegistry
| By default, a "file" scheme is supported where URI paths are always absolute in the file system. More...
using | RecursionProtectionSet = llvm::SmallSet< const CXXRecordDecl *, 4 >

## Enumerations
enum | DeclRelation : unsigned { DeclRelation::TemplateInstantiation, DeclRelation::TemplatePattern, DeclRelation::Alias, DeclRelation::Underlying }
enum | CharType : unsigned char { Empty = 0, Lower = 1, Upper = 2, Punctuation = 3 }
enum | CharRole : unsigned char { Unknown = 0, Tail = 1, Head = 2, Separator = 3 }
enum | IndexType { IndexType::Light, IndexType::Heavy }
| Select between in-memory index implementations, which have tradeoffs. More...
enum | DuplicateHandling { DuplicateHandling::PickOne, DuplicateHandling::Merge }
| How to handle duplicated symbols across multiple files. More...
enum | RefKind : uint8_t { RefKind::Unknown = 0, RefKind::Declaration = static_cast<uint8_t>(index::SymbolRole::Declaration), RefKind::Definition = static_cast<uint8_t>(index::SymbolRole::Definition), RefKind::Reference = static_cast<uint8_t>(index::SymbolRole::Reference), RefKind::All = Declaration | Definition | Reference }
| Describes the kind of a cross-reference. More...
enum | RelationKind : uint8_t { RelationKind::BaseOf }
enum | IndexFileFormat { IndexFileFormat::RIFF, IndexFileFormat::YAML }
enum | SymbolOrigin : uint8_t { SymbolOrigin::Unknown = 0, SymbolOrigin::AST = 1 << 0, SymbolOrigin::Dynamic = 1 << 1, SymbolOrigin::Static = 1 << 2, SymbolOrigin::Merge = 1 << 3, SymbolOrigin::Identifier = 1 << 4 }
enum | ErrorCode { ErrorCode::ParseError = -32700, ErrorCode::InvalidRequest = -32600, ErrorCode::MethodNotFound = -32601, ErrorCode::InvalidParams = -32602, ErrorCode::InternalError = -32603, ErrorCode::ServerNotInitialized = -32002, ErrorCode::UnknownErrorCode = -32001, ErrorCode::RequestCancelled = -32800 }
enum | TraceLevel { TraceLevel::Off = 0, TraceLevel::Messages = 1, TraceLevel::Verbose = 2 }
enum | TextDocumentSyncKind { TextDocumentSyncKind::None = 0, TextDocumentSyncKind::Full = 1, TextDocumentSyncKind::Incremental = 2 }
| Defines how the host (editor) should sync document changes to the language server. More...
enum | CompletionItemKind { CompletionItemKind::Missing = 0, CompletionItemKind::Text = 1, CompletionItemKind::Method = 2, CompletionItemKind::Function = 3, CompletionItemKind::Constructor = 4, CompletionItemKind::Field = 5, CompletionItemKind::Variable = 6, CompletionItemKind::Class = 7, CompletionItemKind::Interface = 8, CompletionItemKind::Module = 9, CompletionItemKind::Property = 10, CompletionItemKind::Unit = 11, CompletionItemKind::Value = 12, CompletionItemKind::Enum = 13, CompletionItemKind::Keyword = 14, CompletionItemKind::Snippet = 15, CompletionItemKind::Color = 16, CompletionItemKind::File = 17, CompletionItemKind::Reference = 18, CompletionItemKind::Folder = 19, CompletionItemKind::EnumMember = 20, CompletionItemKind::Constant = 21, CompletionItemKind::Struct = 22, CompletionItemKind::Event = 23, CompletionItemKind::Operator = 24, CompletionItemKind::TypeParameter = 25 }
| The kind of a completion entry. More...
enum | SymbolKind { SymbolKind::File = 1, SymbolKind::Module = 2, SymbolKind::Namespace = 3, SymbolKind::Package = 4, SymbolKind::Class = 5, SymbolKind::Method = 6, SymbolKind::Property = 7, SymbolKind::Field = 8, SymbolKind::Constructor = 9, SymbolKind::Enum = 10, SymbolKind::Interface = 11, SymbolKind::Function = 12, SymbolKind::Variable = 13, SymbolKind::Constant = 14, SymbolKind::String = 15, SymbolKind::Number = 16, SymbolKind::Boolean = 17, SymbolKind::Array = 18, SymbolKind::Object = 19, SymbolKind::Key = 20, SymbolKind::Null = 21, SymbolKind::EnumMember = 22, SymbolKind::Struct = 23, SymbolKind::Event = 24, SymbolKind::Operator = 25, SymbolKind::TypeParameter = 26 }
| A symbol kind. More...
enum | OffsetEncoding { OffsetEncoding::UnsupportedEncoding, OffsetEncoding::UTF16, OffsetEncoding::UTF8, OffsetEncoding::UTF32 }
enum | MarkupKind { MarkupKind::PlainText, MarkupKind::Markdown }
enum | MessageType { MessageType::Error = 1, MessageType::Warning = 2, MessageType::Info = 3, MessageType::Log = 4 }
enum | FileChangeType { FileChangeType::Created = 1, FileChangeType::Changed = 2, FileChangeType::Deleted = 3 }
enum | CompletionTriggerKind { CompletionTriggerKind::Invoked = 1, CompletionTriggerKind::TriggerCharacter = 2, CompletionTriggerKind::TriggerTriggerForIncompleteCompletions = 3 }
enum | InsertTextFormat { InsertTextFormat::Missing = 0, InsertTextFormat::PlainText = 1, InsertTextFormat::Snippet = 2 }
| Defines whether the insert text in a completion item should be interpreted as plain text or a snippet. More...
enum | DocumentHighlightKind { DocumentHighlightKind::Text = 1, DocumentHighlightKind::Read = 2, DocumentHighlightKind::Write = 3 }
enum | TypeHierarchyDirection { TypeHierarchyDirection::Children = 0, TypeHierarchyDirection::Parents = 1, TypeHierarchyDirection::Both = 2 }
enum | HighlightingKind { HighlightingKind::Variable = 0, HighlightingKind::LocalVariable, HighlightingKind::Parameter, HighlightingKind::Function, HighlightingKind::Method, HighlightingKind::StaticMethod, HighlightingKind::Field, HighlightingKind::StaticField, HighlightingKind::Class, HighlightingKind::Enum, HighlightingKind::EnumConstant, HighlightingKind::Typedef, HighlightingKind::DependentType, HighlightingKind::DependentName, HighlightingKind::Namespace, HighlightingKind::TemplateParameter, HighlightingKind::Primitive, HighlightingKind::Macro, HighlightingKind::InactiveCode, HighlightingKind::LastKind = InactiveCode }
enum | JSONStreamStyle { Standard, Delimited }
enum | WantDiagnostics { WantDiagnostics::Yes, WantDiagnostics::No, WantDiagnostics::Auto }
| Determines whether diagnostics should be generated for a file snapshot. More...

## Functions
bool | isImplicitTemplateInstantiation (const NamedDecl *D)
| Indicates if `D` is a template instantiation implicitly generated by the compiler, e.g. More...
bool | isExplicitTemplateSpecialization (const NamedDecl *D)
| Indicates if `D` is an explicit template specialization, e.g. More...
bool | isImplementationDetail (const Decl *D)
| Returns true if the declaration is considered implementation detail based on heuristics. More...
SourceLocation | nameLocation (const clang::Decl &D, const SourceManager &SM)
| Find the source location of the identifier for `D`. More...
std::string | printQualifiedName (const NamedDecl &ND)
| Returns the qualified name of ND. More...
static bool | isAnonymous (const DeclarationName &N)
NestedNameSpecifierLoc | getQualifierLoc (const NamedDecl &ND)
| Returns a nested name specifier loc of `ND` if it was present in the source, e.g. More...
std::string | printUsingNamespaceName (const ASTContext &Ctx, const UsingDirectiveDecl &D)
| Returns the name of the namespace inside the 'using namespace' directive, as written in the code. More...
std::string | printName (const ASTContext &Ctx, const NamedDecl &ND)
| Prints unqualified name of the decl for the purpose of displaying it to the user. More...
std::string | printTemplateSpecializationArgs (const NamedDecl &ND)
| Prints template arguments of a decl as written in the source code, including enclosing '<' and '>', e.g for a partial specialization like: template <typename u>=""> struct Foo<int, U> will return '<int, U>'. More...
std::string | printNamespaceScope (const DeclContext &DC)
| Returns the first enclosing namespace scope starting from `DC`. More...
llvm::Optional< SymbolID > | getSymbolID (const Decl *D)
| Gets the symbol ID for a declaration, if possible. More...
llvm::Optional< SymbolID > | getSymbolID (const llvm::StringRef MacroName, const MacroInfo *MI, const SourceManager &SM)
| Gets the symbol ID for a macro, if possible. More...
std::string | printType (const QualType QT, const DeclContext &CurContext)
| Returns a QualType as string. More...
QualType | declaredType (const TypeDecl *D)
llvm::Optional< QualType > | getDeducedType (ASTContext &, SourceLocation Loc)
| Retrieves the deduced type at a given location (auto, decltype). More...
std::string | getQualification (ASTContext &Context, const DeclContext *DestContext, SourceLocation InsertionPoint, const NamedDecl *ND)
| Gets the nested name specifier necessary for spelling `ND` in `DestContext`, at `InsertionPoint`. More...
std::string | getQualification (ASTContext &Context, const DeclContext *DestContext, const NamedDecl *ND, llvm::ArrayRef< std::string > VisibleNamespaces)
| This function uses the `VisibleNamespaces` to figure out if a shorter qualification is sufficient for `ND`, and ignores any using namespace directives. More...
std::pair< Context, Canceler > | cancelableTask ()
| Defines a new task whose cancellation may be requested. More...
bool | isCancelled (const Context &Ctx=Context::current())
| True if the current context is within a cancelable task which was cancelled. More...
static std::vector< SymbolInformation > | flattenSymbolHierarchy (llvm::ArrayRef< DocumentSymbol > Symbols, const URIForFile &FileURI)
| The functions constructs a flattened view of the DocumentSymbol hierarchy. More...
static llvm::Optional< Command > | asCommand (const CodeAction &Action)
static Location * | getToggle (const TextDocumentPositionParams &Point, LocatedSymbol &Sym)
static llvm::Expected< Tweak::Selection > | tweakSelection (const Range &Sel, const InputsAndAST &AST)
CompletionPrefix | guessCompletionPrefix (llvm::StringRef Content, unsigned Offset)
CodeCompleteResult | codeComplete (PathRef FileName, const tooling::CompileCommand &Command, const PreambleData *Preamble, llvm::StringRef Contents, Position Pos, llvm::IntrusiveRefCntPtr< llvm::vfs::FileSystem > VFS, CodeCompleteOptions Opts, SpeculativeFuzzyFind *SpecFuzzyFind)
SignatureHelp | signatureHelp (PathRef FileName, const tooling::CompileCommand &Command, const PreambleData *Preamble, llvm::StringRef Contents, Position Pos, llvm::IntrusiveRefCntPtr< llvm::vfs::FileSystem > VFS, const SymbolIndex *Index)
bool | isIndexedForCodeCompletion (const NamedDecl &ND, ASTContext &ASTCtx)
llvm::raw_ostream & | operator<< (llvm::raw_ostream &OS, const CodeCompletion &C)
llvm::raw_ostream & | operator<< (llvm::raw_ostream &OS, const CodeCompleteResult &R)
raw_ostream & | operator<< (raw_ostream &, const CodeCompletion &)
raw_ostream & | operator<< (raw_ostream &, const CodeCompleteResult &)
CodeCompleteResult | codeComplete (PathRef FileName, const tooling::CompileCommand &Command, const PreambleData *Preamble, StringRef Contents, Position Pos, IntrusiveRefCntPtr< llvm::vfs::FileSystem > VFS, CodeCompleteOptions Opts, SpeculativeFuzzyFind *SpecFuzzyFind=nullptr)
| Gets code completions at a specified `Pos` in `FileName`. More...
SignatureHelp | signatureHelp (PathRef FileName, const tooling::CompileCommand &Command, const PreambleData *Preamble, StringRef Contents, Position Pos, IntrusiveRefCntPtr< llvm::vfs::FileSystem > VFS, const SymbolIndex *Index)
| Get signature help at a specified `Pos` in `FileName`. More...
std::string | getDocComment (const ASTContext &Ctx, const CodeCompletionResult &Result, bool CommentsFromHeaders)
| Gets a minimally formatted documentation comment of `Result`, with comment markers stripped. More...
std::string | getDeclComment (const ASTContext &Ctx, const NamedDecl &D)
| Similar to getDocComment, but returns the comment for a NamedDecl. More...
void | getSignature (const CodeCompletionString &CCS, std::string *Signature, std::string *Snippet, std::string *RequiredQualifiers=nullptr, bool CompletingPattern=false)
| Formats the signature for an item, as a display string and snippet. More...
std::string | formatDocumentation (const CodeCompletionString &CCS, llvm::StringRef DocComment)
| Assembles formatted documentation for a completion result. More...
std::string | getReturnType (const CodeCompletionString &CCS)
| Gets detail to be used as the detail field in an LSP completion item. More...
std::unique_ptr< CompilerInvocation > | buildCompilerInvocation (const ParseInputs &Inputs, clang::DiagnosticConsumer &D, std::vector< std::string > *CC1Args=nullptr)
| Builds compiler invocation that could be used to build AST or preamble. More...
std::unique_ptr< CompilerInstance > | prepareCompilerInstance (std::unique_ptr< clang::CompilerInvocation > CI, const PrecompiledPreamble *Preamble, std::unique_ptr< llvm::MemoryBuffer > Buffer, llvm::IntrusiveRefCntPtr< llvm::vfs::FileSystem > VFS, DiagnosticConsumer &DiagsClient)
std::unique_ptr< CompilerInstance > | prepareCompilerInstance (std::unique_ptr< clang::CompilerInvocation >, const PrecompiledPreamble *, std::unique_ptr< llvm::MemoryBuffer > MainFile, IntrusiveRefCntPtr< llvm::vfs::FileSystem >, DiagnosticConsumer &)
| Creates a compiler instance, configured so that: More...
static Context & | currentContext ()
llvm::raw_ostream & | operator<< (llvm::raw_ostream &OS, const DiagBase &D)
llvm::raw_ostream & | operator<< (llvm::raw_ostream &OS, const Fix &F)
llvm::raw_ostream & | operator<< (llvm::raw_ostream &OS, const Diag &D)
CodeAction | toCodeAction (const Fix &D, const URIForFile &File)
| Convert from Fix to LSP CodeAction. More...
void | toLSPDiags (const Diag &D, const URIForFile &File, const ClangdDiagnosticOptions &Opts, llvm::function_ref< void(clangd::Diagnostic, llvm::ArrayRef< Fix >)> OutFn)
| Conversion to LSP diagnostics. More...
int | getSeverity (DiagnosticsEngine::Level L)
| Convert from clang diagnostic level to LSP severity. More...
static void | writeCodeToFixMessage (llvm::raw_ostream &OS, llvm::StringRef Code)
| Sanitizes a piece for presenting it in a synthesized fix message. More...
static void | fillNonLocationData (DiagnosticsEngine::Level DiagLevel, const clang::Diagnostic &Info, clangd::DiagBase &D)
| Fills `D` with all information, except the location-related bits. More...
static llvm::SmallString< 128 > | canonicalize (llvm::StringRef Path)
static std::pair< std::string, int > | scopeToPath (llvm::StringRef Scope)
static FileDistance | createScopeFileDistance (llvm::ArrayRef< std::string > QueryScopes)
llvm::Expected< Location > | symbolToLocation (const Symbol &Sym, llvm::StringRef HintPath)
| Helper function for deriving an LSP Location for a Symbol. More...
llvm::Expected< std::vector< SymbolInformation > > | getWorkspaceSymbols (llvm::StringRef Query, int Limit, const SymbolIndex *const Index, llvm::StringRef HintPath)
| Searches for the symbols matching `Query`. More...
llvm::Expected< std::vector< DocumentSymbol > > | getDocumentSymbols (ParsedAST &AST)
| Retrieves the symbols contained in the "main file" section of an AST in the same order that they appear. More...
llvm::SmallVector< std::pair< const NamedDecl *, DeclRelationSet >, 1 > | allTargetDecls (const ast_type_traits::DynTypedNode &)
| Similar to targetDecl(), however instead of applying a filter, all possible decls are returned along with their DeclRelationSets. More...
llvm::SmallVector< const NamedDecl *, 1 > | targetDecl (const ast_type_traits::DynTypedNode &, DeclRelationSet Mask)
| targetDecl() finds the declaration referred to by an AST node. More...
llvm::SmallVector< const NamedDecl *, 1 > | explicitReferenceTargets (DynTypedNode N, DeclRelationSet Mask)
void | findExplicitReferences (const Stmt *S, llvm::function_ref< void(ReferenceLoc)> Out)
| Recursively traverse `S` and report all references explicitly written in the code. More...
void | findExplicitReferences (const Decl *D, llvm::function_ref< void(ReferenceLoc)> Out)
void | findExplicitReferences (const ASTContext &AST, llvm::function_ref< void(ReferenceLoc)> Out)
llvm::raw_ostream & | operator<< (llvm::raw_ostream &OS, DeclRelation R)
llvm::raw_ostream & | operator<< (llvm::raw_ostream &OS, DeclRelationSet RS)
llvm::raw_ostream & | operator<< (llvm::raw_ostream &OS, ReferenceLoc R)
llvm::SmallVector< const NamedDecl *, 1 > | explicitReferenceTargets (ast_type_traits::DynTypedNode N, DeclRelationSet Mask)
| Find declarations explicitly referenced in the source code defined by `N`. More...
DeclRelationSet | operator| (DeclRelation L, DeclRelation R)
DeclRelationSet | operator & (DeclRelation L, DeclRelation R)
DeclRelationSet | operator~ (DeclRelation R)
std::vector< tooling::Replacement > | formatIncremental (llvm::StringRef Code, unsigned Cursor, llvm::StringRef InsertedText, format::FormatStyle Style)
| Applies limited formatting around new `InsertedText`. More...
unsigned | transformCursorPosition (unsigned Offset, const std::vector< tooling::Replacement > &Replacements)
| Determine the new cursor position after applying `Replacements`. More...
Path | removeDots (PathRef File)
| Returns a version of `File` that doesn't contain dots and dot dots. More...
static char | lower (char C)
static bool | isAwful (int S)
template<typename T >
static T | packedLookup (const uint8_t *Data, int I)
CharTypeSet | calculateRoles (llvm::StringRef Text, llvm::MutableArrayRef< CharRole > Roles)
static std::string | maybeCaseFoldPath (PathRef Path)
static bool | pathEqual (PathRef A, PathRef B)
std::unique_ptr< GlobalCompilationDatabase > | getQueryDriverDatabase (llvm::ArrayRef< std::string > QueryDriverGlobs, std::unique_ptr< GlobalCompilationDatabase > Base)
| Extracts system include search path from drivers matching QueryDriverGlobs and adds them to the compile flags. More...
bool | isLiteralInclude (llvm::StringRef Include)
| Returns true if `Include` is literal include like "path" or <path>. More...
llvm::Expected< HeaderFile > | toHeaderFile (llvm::StringRef Header, llvm::StringRef HintPath)
| Creates a `HeaderFile` from `Header` which can be either a URI or a literal include. More...
llvm::SmallVector< llvm::StringRef, 1 > | getRankedIncludes (const Symbol &Sym)
std::unique_ptr< PPCallbacks > | collectIncludeStructureCallback (const SourceManager &SM, IncludeStructure *Out)
| Returns a PPCallback that visits all inclusions in the main file. More...
llvm::raw_ostream & | operator<< (llvm::raw_ostream &OS, const Inclusion &Inc)
IncludeGraphNode::SourceFlag | operator| (IncludeGraphNode::SourceFlag A, IncludeGraphNode::SourceFlag B)
bool | operator & (IncludeGraphNode::SourceFlag A, IncludeGraphNode::SourceFlag B)
IncludeGraphNode::SourceFlag & | operator|= (IncludeGraphNode::SourceFlag &A, IncludeGraphNode::SourceFlag B)
llvm::Optional< Path > | getCorrespondingHeaderOrSource (const Path &OriginalFile, llvm::IntrusiveRefCntPtr< llvm::vfs::FileSystem > VFS)
| Given a header file, returns the best matching source file, and vice visa. More...
llvm::Optional< Path > | getCorrespondingHeaderOrSource (const Path &OriginalFile, ParsedAST &AST, const SymbolIndex *Index)
| Given a header file, returns the best matching source file, and vice visa. More...
std::vector< const Decl * > | getIndexableLocalDecls (ParsedAST &AST)
| Returns all indexable decls that are present in the main file of the AST. More...
llvm::Optional< HoverInfo > | getHover (ParsedAST &AST, Position Pos, format::FormatStyle Style, const SymbolIndex *Index)
| Get the hover information when hovering at `Pos`. More...
llvm::raw_ostream & | operator<< (llvm::raw_ostream &OS, const HoverInfo::Param &P)
bool | operator== (const HoverInfo::Param &LHS, const HoverInfo::Param &RHS)
llvm::Optional< std::string > | qualifiedByUnresolved (const SourceManager &SM, SourceLocation Loc, const LangOptions &LangOpts)
llvm::Optional< CheapUnresolvedName > | extractUnresolvedNameCheaply (const SourceManager &SM, const DeclarationNameInfo &Unresolved, CXXScopeSpec *SS, const LangOptions &LangOpts, bool UnresolvedIsSpecifier)
std::vector< std::string > | collectAccessibleScopes (Sema &Sem, const DeclarationNameInfo &Typo, Scope *S, Sema::LookupNameKind LookupKind)
| Returns all namespace scopes that the unqualified lookup would visit. More...
static llvm::StringRef | filenameWithoutExtension (llvm::StringRef Path)
std::vector< LoadedShard > | loadIndexShards (llvm::ArrayRef< Path > MainFiles, BackgroundIndexStorage::Factory &IndexStorageFactory, const GlobalCompilationDatabase &CDB)
| Loads all shards for the TU `MainFile` from `Storage`. More...
std::unique_ptr< CommentHandler > | collectIWYUHeaderMaps (CanonicalIncludes *Includes)
| Returns a CommentHandler that parses pragma comment on include files to determine when we should include a different header from the header that directly defines a symbol. More...
static SlabTuple | indexSymbols (ASTContext &AST, std::shared_ptr< Preprocessor > PP, llvm::ArrayRef< Decl *> DeclsToIndex, const MainFileMacros *MacroRefsToIndex, const CanonicalIncludes &Includes, bool IsIndexMainAST)
SlabTuple | indexMainDecls (ParsedAST &AST)
| Retrieves symbols and refs of local top level decls in `AST` (i.e. More...
SlabTuple | indexHeaderSymbols (ASTContext &AST, std::shared_ptr< Preprocessor > PP, const CanonicalIncludes &Includes)
| Index declarations from `AST` and macros from `PP` that are declared in included headers. More...
bool | fromJSON (const llvm::json::Value &Parameters, FuzzyFindRequest &Request)
llvm::json::Value | toJSON (const FuzzyFindRequest &Request)
std::unique_ptr< FrontendAction > | createStaticIndexingAction (SymbolCollector::Options Opts, std::function< void(SymbolSlab)> SymbolsCallback, std::function< void(RefSlab)> RefsCallback, std::function< void(RelationSlab)> RelationsCallback, std::function< void(IncludeGraph)> IncludeGraphCallback)
bool | prefer (const SymbolLocation &L, const SymbolLocation &R)
Symbol | mergeSymbol (const Symbol &L, const Symbol &R)
llvm::raw_ostream & | operator<< (llvm::raw_ostream &OS, RefKind K)
llvm::raw_ostream & | operator<< (llvm::raw_ostream &OS, const Ref &R)
RefKind | operator| (RefKind L, RefKind R)
RefKind & | operator|= (RefKind &L, RefKind R)
RefKind | operator & (RefKind A, RefKind B)
bool | operator< (const Ref &L, const Ref &R)
bool | operator== (const Ref &L, const Ref &R)
void | writeYAML (const IndexFileOut &, llvm::raw_ostream &)
llvm::Expected< IndexFileIn > | readYAML (llvm::StringRef)
llvm::raw_ostream & | operator<< (llvm::raw_ostream &OS, const IndexFileOut &O)
llvm::Expected< IndexFileIn > | readIndexFile (llvm::StringRef Data)
std::unique_ptr< SymbolIndex > | loadIndex (llvm::StringRef SymbolFilename, bool UseDex)
std::string | toYAML (const Symbol &)
std::string | toYAML (const std::pair< SymbolID, ArrayRef< Ref >> &)
std::string | toYAML (const Relation &)
llvm::raw_ostream & | operator<< (llvm::raw_ostream &OS, Symbol::SymbolFlag F)
llvm::raw_ostream & | operator<< (llvm::raw_ostream &OS, const Symbol &S)
float | quality (const Symbol &S)
| Computes query-independent quality score for a Symbol. More...
static void | own (Symbol &S, llvm::UniqueStringSaver &Strings)
Symbol::SymbolFlag | operator| (Symbol::SymbolFlag A, Symbol::SymbolFlag B)
Symbol::SymbolFlag & | operator|= (Symbol::SymbolFlag &A, Symbol::SymbolFlag B)
template<typename Callback >
void | visitStrings (Symbol &S, const Callback &CB)
| Invokes Callback with each StringRef& contained in the Symbol. More...
static bool | isIf (llvm::StringRef Line)
static bool | isErrorAboutInclude (llvm::StringRef Line)
llvm::raw_ostream & | operator<< (llvm::raw_ostream &OS, const SymbolID &ID)
llvm::hash_code | hash_value (const SymbolID &ID)
llvm::raw_ostream & | operator<< (llvm::raw_ostream &OS, const SymbolLocation &L)
bool | operator== (const SymbolLocation::Position &L, const SymbolLocation::Position &R)
bool | operator< (const SymbolLocation::Position &L, const SymbolLocation::Position &R)
bool | operator== (const SymbolLocation &L, const SymbolLocation &R)
bool | operator< (const SymbolLocation &L, const SymbolLocation &R)
llvm::raw_ostream & | operator<< (llvm::raw_ostream &OS, SymbolOrigin O)
SymbolOrigin | operator| (SymbolOrigin A, SymbolOrigin B)
SymbolOrigin & | operator|= (SymbolOrigin &A, SymbolOrigin B)
SymbolOrigin | operator & (SymbolOrigin A, SymbolOrigin B)
std::string | toYAML (const std::pair< SymbolID, llvm::ArrayRef< Ref >> &Data)
std::unique_ptr< Transport > | newJSONTransport (std::FILE *In, llvm::raw_ostream &Out, llvm::raw_ostream *InMirror, bool Pretty, JSONStreamStyle Style)
template<typename... Ts>
void | elog (const char *Fmt, Ts &&... Vals)
template<typename... Ts>
void | log (const char *Fmt, Ts &&... Vals)
template<typename... Ts>
void | vlog (const char *Fmt, Ts &&... Vals)
void | dumpAST (ParsedAST &AST, llvm::raw_ostream &OS)
| For testing/debugging purposes. More...
llvm::Optional< ParsedAST > | buildAST (PathRef FileName, std::unique_ptr< CompilerInvocation > Invocation, llvm::ArrayRef< Diag > CompilerInvocationDiags, const ParseInputs &Inputs, std::shared_ptr< const PreambleData > Preamble)
| Build an AST from provided user inputs. More...
llvm::Optional< std::string > | doPathMapping (llvm::StringRef S, PathMapping::Direction Dir, const PathMappings &Mappings)
| Returns a modified `S` with the first matching path in `Mappings` substituted, if applicable. More...
void | applyPathMappings (llvm::json::Value &Params, PathMapping::Direction Dir, const PathMappings &Mappings)
| Applies the `Mappings` to all the file:// URIs in `Params`. More...
llvm::raw_ostream & | operator<< (llvm::raw_ostream &OS, const PathMapping &M)
llvm::Expected< PathMappings > | parsePathMappings (llvm::StringRef RawPathMappings)
| Parse the command line `RawPathMappings` (e.g. More...
std::unique_ptr< Transport > | createPathMappingTransport (std::unique_ptr< Transport > Transp, PathMappings Mappings)
| Creates a wrapping transport over `Transp` that applies the `Mappings` to all inbound and outbound LSP messages. More...
std::shared_ptr< const PreambleData > | buildPreamble (PathRef FileName, CompilerInvocation &CI, std::shared_ptr< const PreambleData > OldPreamble, const tooling::CompileCommand &OldCompileCommand, const ParseInputs &Inputs, bool StoreInMemory, PreambleParsedCallback PreambleCallback)
| Build a preamble for the new inputs unless an old one can be reused. More...
bool | fromJSON (const llvm::json::Value &E, URIForFile &R)
llvm::json::Value | toJSON (const URIForFile &U)
| Serialize/deserialize `URIForFile` to/from a string URI. More...
llvm::raw_ostream & | operator<< (llvm::raw_ostream &OS, const URIForFile &U)
llvm::json::Value | toJSON (const TextDocumentIdentifier &R)
bool | fromJSON (const llvm::json::Value &Params, TextDocumentIdentifier &R)
bool | fromJSON (const llvm::json::Value &Params, Position &R)
llvm::json::Value | toJSON (const Position &P)
llvm::raw_ostream & | operator<< (llvm::raw_ostream &OS, const Position &P)
bool | fromJSON (const llvm::json::Value &Params, Range &R)
llvm::json::Value | toJSON (const Range &P)
llvm::raw_ostream & | operator<< (llvm::raw_ostream &OS, const Range &R)
llvm::json::Value | toJSON (const Location &P)
llvm::raw_ostream & | operator<< (llvm::raw_ostream &OS, const Location &L)
bool | fromJSON (const llvm::json::Value &Params, TextDocumentItem &R)
bool | fromJSON (const llvm::json::Value &Params, TextEdit &R)
llvm::json::Value | toJSON (const TextEdit &P)
llvm::raw_ostream & | operator<< (llvm::raw_ostream &OS, const TextEdit &TE)
bool | fromJSON (const llvm::json::Value &E, TraceLevel &Out)
bool | fromJSON (const llvm::json::Value &E, SymbolKind &Out)
bool | fromJSON (const llvm::json::Value &E, SymbolKindBitset &Out)
SymbolKind | adjustKindToCapability (SymbolKind Kind, SymbolKindBitset &SupportedSymbolKinds)
SymbolKind | indexSymbolKindToSymbolKind (index::SymbolKind Kind)
bool | fromJSON (const llvm::json::Value &Params, ClientCapabilities &R)
bool | fromJSON (const llvm::json::Value &Params, InitializeParams &R)
llvm::json::Value | toJSON (const MessageType &R)
llvm::json::Value | toJSON (const ShowMessageParams &R)
bool | fromJSON (const llvm::json::Value &Params, DidOpenTextDocumentParams &R)
bool | fromJSON (const llvm::json::Value &Params, DidCloseTextDocumentParams &R)
bool | fromJSON (const llvm::json::Value &Params, DidChangeTextDocumentParams &R)
bool | fromJSON (const llvm::json::Value &E, FileChangeType &Out)
bool | fromJSON (const llvm::json::Value &Params, FileEvent &R)
bool | fromJSON (const llvm::json::Value &Params, DidChangeWatchedFilesParams &R)
bool | fromJSON (const llvm::json::Value &Params, TextDocumentContentChangeEvent &R)
bool | fromJSON (const llvm::json::Value &Params, DocumentRangeFormattingParams &R)
bool | fromJSON (const llvm::json::Value &Params, DocumentOnTypeFormattingParams &R)
bool | fromJSON (const llvm::json::Value &Params, DocumentFormattingParams &R)
bool | fromJSON (const llvm::json::Value &Params, DocumentSymbolParams &R)
llvm::json::Value | toJSON (const DiagnosticRelatedInformation &DRI)
llvm::json::Value | toJSON (const Diagnostic &D)
bool | fromJSON (const llvm::json::Value &Params, Diagnostic &R)
bool | fromJSON (const llvm::json::Value &Params, CodeActionContext &R)
llvm::raw_ostream & | operator<< (llvm::raw_ostream &OS, const Diagnostic &D)
bool | fromJSON (const llvm::json::Value &Params, CodeActionParams &R)
bool | fromJSON (const llvm::json::Value &Params, WorkspaceEdit &R)
bool | fromJSON (const llvm::json::Value &Params, ExecuteCommandParams &R)
llvm::json::Value | toJSON (const SymbolInformation &P)
llvm::raw_ostream & | operator<< (llvm::raw_ostream &O, const SymbolInformation &SI)
bool | operator== (const SymbolDetails &LHS, const SymbolDetails &RHS)
llvm::json::Value | toJSON (const SymbolDetails &P)
llvm::raw_ostream & | operator<< (llvm::raw_ostream &O, const SymbolDetails &S)
bool | fromJSON (const llvm::json::Value &Params, WorkspaceSymbolParams &R)
llvm::json::Value | toJSON (const Command &C)
llvm::json::Value | toJSON (const CodeAction &CA)
llvm::raw_ostream & | operator<< (llvm::raw_ostream &O, const DocumentSymbol &S)
llvm::json::Value | toJSON (const DocumentSymbol &S)
llvm::json::Value | toJSON (const WorkspaceEdit &WE)
bool | fromJSON (const llvm::json::Value &Params, TweakArgs &A)
llvm::json::Value | toJSON (const TweakArgs &A)
llvm::json::Value | toJSON (const ApplyWorkspaceEditParams &Params)
bool | fromJSON (const llvm::json::Value &Response, ApplyWorkspaceEditResponse &R)
bool | fromJSON (const llvm::json::Value &Params, TextDocumentPositionParams &R)
bool | fromJSON (const llvm::json::Value &Params, CompletionContext &R)
bool | fromJSON (const llvm::json::Value &Params, CompletionParams &R)
static llvm::StringRef | toTextKind (MarkupKind Kind)
bool | fromJSON (const llvm::json::Value &V, MarkupKind &K)
llvm::raw_ostream & | operator<< (llvm::raw_ostream &OS, MarkupKind K)
llvm::json::Value | toJSON (const MarkupContent &MC)
llvm::json::Value | toJSON (const Hover &H)
bool | fromJSON (const llvm::json::Value &E, CompletionItemKind &Out)
CompletionItemKind | adjustKindToCapability (CompletionItemKind Kind, CompletionItemKindBitset &SupportedCompletionItemKinds)
bool | fromJSON (const llvm::json::Value &E, CompletionItemKindBitset &Out)
llvm::json::Value | toJSON (const CompletionItem &CI)
llvm::raw_ostream & | operator<< (llvm::raw_ostream &O, const CompletionItem &I)
bool | operator< (const CompletionItem &L, const CompletionItem &R)
llvm::json::Value | toJSON (const CompletionList &L)
llvm::json::Value | toJSON (const ParameterInformation &PI)
llvm::json::Value | toJSON (const SignatureInformation &SI)
llvm::raw_ostream & | operator<< (llvm::raw_ostream &O, const SignatureInformation &I)
llvm::json::Value | toJSON (const SignatureHelp &SH)
bool | fromJSON (const llvm::json::Value &Params, RenameParams &R)
llvm::json::Value | toJSON (const DocumentHighlight &DH)
llvm::json::Value | toJSON (const FileStatus &FStatus)
llvm::raw_ostream & | operator<< (llvm::raw_ostream &O, const DocumentHighlight &V)
bool | fromJSON (const llvm::json::Value &Params, DidChangeConfigurationParams &CCP)
bool | fromJSON (const llvm::json::Value &Params, ClangdCompileCommand &CDbUpdate)
bool | fromJSON (const llvm::json::Value &Params, ConfigurationSettings &S)
bool | fromJSON (const llvm::json::Value &Params, InitializationOptions &Opts)
bool | fromJSON (const llvm::json::Value &E, TypeHierarchyDirection &Out)
bool | fromJSON (const llvm::json::Value &Params, TypeHierarchyParams &R)
llvm::raw_ostream & | operator<< (llvm::raw_ostream &O, const TypeHierarchyItem &I)
llvm::json::Value | toJSON (const TypeHierarchyItem &I)
bool | fromJSON (const llvm::json::Value &Params, TypeHierarchyItem &I)
bool | fromJSON (const llvm::json::Value &Params, ResolveTypeHierarchyItemParams &P)
bool | fromJSON (const llvm::json::Value &Params, ReferenceParams &R)
static const char * | toString (OffsetEncoding OE)
llvm::json::Value | toJSON (const OffsetEncoding &OE)
bool | fromJSON (const llvm::json::Value &V, OffsetEncoding &OE)
llvm::raw_ostream & | operator<< (llvm::raw_ostream &OS, OffsetEncoding Enc)
bool | operator== (const SemanticHighlightingInformation &Lhs, const SemanticHighlightingInformation &Rhs)
llvm::json::Value | toJSON (const SemanticHighlightingInformation &Highlighting)
llvm::json::Value | toJSON (const SemanticHighlightingParams &Highlighting)
bool | fromJSON (const llvm::json::Value &Params, SelectionRangeParams &P)
llvm::json::Value | toJSON (const SelectionRange &Out)
bool | fromJSON (const llvm::json::Value &Params, DocumentLinkParams &R)
llvm::json::Value | toJSON (const DocumentLink &DocumentLink)
bool | operator== (const TextEdit &L, const TextEdit &R)
bool | fromJSON (const llvm::json::Value &, NoParams &)
static bool | isReserved (llvm::StringRef Name)
static bool | hasDeclInMainFile (const Decl &D)
static bool | hasUsingDeclInMainFile (const CodeCompletionResult &R)
static SymbolQualitySignals::SymbolCategory | categorize (const NamedDecl &ND)
static SymbolQualitySignals::SymbolCategory | categorize (const CodeCompletionResult &R)
static SymbolQualitySignals::SymbolCategory | categorize (const index::SymbolInfo &D)
static bool | isInstanceMember (const NamedDecl *ND)
static bool | isInstanceMember (const index::SymbolInfo &D)
llvm::raw_ostream & | operator<< (llvm::raw_ostream &OS, const SymbolQualitySignals &S)
static SymbolRelevanceSignals::AccessibleScope | computeScope (const NamedDecl *D)
static std::pair< float, unsigned > | uriProximity (llvm::StringRef SymbolURI, URIDistance *D)
static float | scopeBoost (ScopeDistance &Distance, llvm::Optional< llvm::StringRef > SymbolScope)
static llvm::Optional< llvm::StringRef > | wordMatching (llvm::StringRef Name, const llvm::StringSet<> *ContextWords)
llvm::raw_ostream & | operator<< (llvm::raw_ostream &OS, const SymbolRelevanceSignals &S)
float | evaluateSymbolAndRelevance (float SymbolQuality, float SymbolRelevance)
| Combine symbol quality and relevance into a single score. More...
static uint32_t | encodeFloat (float F)
std::string | sortText (float Score, llvm::StringRef Tiebreak="")
| Returns a string that sorts in the same order as (-Score, Tiebreak), for LSP. More...
llvm::raw_ostream & | operator<< (llvm::raw_ostream &OS, const SignatureQualitySignals &S)
llvm::Expected< FileEdits > | rename (const RenameInputs &RInputs)
| Renames all occurrences of the symbol. More...
llvm::Expected< Edit > | buildRenameEdit (llvm::StringRef AbsFilePath, llvm::StringRef InitialCode, std::vector< Range > Occurrences, llvm::StringRef NewName)
| Generates rename edits that replaces all given occurrences with the NewName. More...
llvm::Optional< std::vector< Range > > | adjustRenameRanges (llvm::StringRef DraftCode, llvm::StringRef Identifier, std::vector< Range > Indexed, const LangOptions &LangOpts)
| Adjusts indexed occurrences to match the current state of the file. More...
llvm::Optional< std::vector< Range > > | getMappedRanges (ArrayRef< Range > Indexed, ArrayRef< Range > Lexed)
| Calculates the lexed occurrences that the given indexed occurrences map to. More...
size_t | renameRangeAdjustmentCost (ArrayRef< Range > Indexed, ArrayRef< Range > Lexed, ArrayRef< size_t > MappedIndex)
| Evaluates how good the mapped result is. More...
std::vector< std::unique_ptr< Tweak > > | prepareTweaks (const Tweak::Selection &S, llvm::function_ref< bool(const Tweak &)> Filter)
| Calls prepare() on all tweaks that satisfy the filter, returning those that can run on the selection. More...
llvm::Expected< std::unique_ptr< Tweak > > | prepareTweak (StringRef ID, const Tweak::Selection &S)
static std::pair< unsigned, unsigned > | pointBounds (unsigned Offset, FileID FID, ASTContext &AST)
std::vector< HighlightingToken > | getSemanticHighlightings (ParsedAST &AST)
llvm::raw_ostream & | operator<< (llvm::raw_ostream &OS, HighlightingKind K)
std::vector< LineHighlightings > | diffHighlightings (ArrayRef< HighlightingToken > New, ArrayRef< HighlightingToken > Old)
| Return a line-by-line diff between two highlightings. More...
bool | operator== (const HighlightingToken &L, const HighlightingToken &R)
bool | operator< (const HighlightingToken &L, const HighlightingToken &R)
bool | operator== (const LineHighlightings &L, const LineHighlightings &R)
std::vector< SemanticHighlightingInformation > | toSemanticHighlightingInformation (llvm::ArrayRef< LineHighlightings > Tokens)
| Convert to LSP's semantic highlighting information. More...
llvm::StringRef | toTextMateScope (HighlightingKind Kind)
| Converts a HighlightingKind to a corresponding TextMate scope (https://manual.macromates.com/en/language_grammars). More...
llvm::Expected< std::vector< Range > > | getSemanticRanges (ParsedAST &AST, Position Pos)
| Returns the list of all interesting ranges around the Position `Pos`. More...
void | abortAfterTimeout (std::chrono::seconds Timeout)
| Causes this process to crash if still running after Timeout. More...
void | requestShutdown ()
| Sets a flag to indicate that clangd was sent a shutdown signal, and the transport loop should exit at the next opportunity. More...
bool | shutdownRequested ()
| Checks whether requestShutdown() was called. More...
template<typename Fun , typename Ret = decltype(std::declval<Fun>()())>
Ret | retryAfterSignalUnlessShutdown (const typename std::enable_if< true, Ret >::type &Fail, const Fun &F)
| Retry an operation if it gets interrupted by a signal. More...
template<typename Callback >
static bool | iterateCodepoints (llvm::StringRef U8, const Callback &CB)
static size_t | measureUnits (llvm::StringRef U8, int Units, OffsetEncoding Enc, bool &Valid)
static OffsetEncoding | lspEncoding ()
size_t | lspLength (llvm::StringRef Code)
llvm::Expected< size_t > | positionToOffset (llvm::StringRef Code, Position P, bool AllowColumnsBeyondLineLength=true)
| Turn a [line, column] pair into an offset in Code. More...
Position | offsetToPosition (llvm::StringRef Code, size_t Offset)
| Turn an offset in Code into a [line, column] pair. More...
Position | sourceLocToPosition (const SourceManager &SM, SourceLocation Loc)
| Turn a SourceLocation into a [line, column] pair. More...
bool | isSpelledInSource (SourceLocation Loc, const SourceManager &SM)
| Returns true if the token at Loc is spelled in the source code. More...
llvm::Optional< Range > | getTokenRange (const SourceManager &SM, const LangOptions &LangOpts, SourceLocation TokLoc)
| Returns the taken range at `TokLoc`. More...
SourceLocation | getBeginningOfIdentifier (const Position &Pos, const SourceManager &SM, const LangOptions &LangOpts)
| Get the beginning SourceLocation at a specified `Pos` in the main file. More...
bool | isValidFileRange (const SourceManager &Mgr, SourceRange R)
| Returns true iff all of the following conditions hold: More...
bool | halfOpenRangeContains (const SourceManager &Mgr, SourceRange R, SourceLocation L)
| Returns true iff `L` is contained in `R`. More...
bool | halfOpenRangeTouches (const SourceManager &Mgr, SourceRange R, SourceLocation L)
| Returns true iff `L` is contained in `R` or `L` is equal to the end point of `R`. More...
SourceLocation | includeHashLoc (FileID IncludedFile, const SourceManager &SM)
| Returns the #include location through which IncludedFIle was loaded. More...
static unsigned | getTokenLengthAtLoc (SourceLocation Loc, const SourceManager &SM, const LangOptions &LangOpts)
static SourceLocation | getLocForTokenEnd (SourceLocation BeginLoc, const SourceManager &SM, const LangOptions &LangOpts)
static SourceLocation | getLocForTokenBegin (SourceLocation EndLoc, const SourceManager &SM, const LangOptions &LangOpts)
static SourceRange | toTokenRange (CharSourceRange Range, const SourceManager &SM, const LangOptions &LangOpts)
static SourceRange | unionTokenRange (SourceRange R1, SourceRange R2, const SourceManager &SM, const LangOptions &LangOpts)
static SourceRange | rangeInCommonFile (SourceRange R, const SourceManager &SM, const LangOptions &LangOpts)
static SourceRange | getExpansionTokenRangeInSameFile (SourceLocation Loc, const SourceManager &SM, const LangOptions &LangOpts)
static SourceRange | getTokenFileRange (SourceLocation Loc, const SourceManager &SM, const LangOptions &LangOpts)
bool | isInsideMainFile (SourceLocation Loc, const SourceManager &SM)
| Returns true iff `Loc` is inside the main file. More...
llvm::Optional< SourceRange > | toHalfOpenFileRange (const SourceManager &Mgr, const LangOptions &LangOpts, SourceRange R)
| Turns a token range into a half-open range and checks its correctness. More...
llvm::StringRef | toSourceCode (const SourceManager &SM, SourceRange R)
| Returns the source code covered by the source range. More...
llvm::Expected< SourceLocation > | sourceLocationInMainFile (const SourceManager &SM, Position P)
| Return the file location, corresponding to `P`. More...
Range | halfOpenToRange (const SourceManager &SM, CharSourceRange R)
std::pair< size_t, size_t > | offsetToClangLineColumn (llvm::StringRef Code, size_t Offset)
std::pair< StringRef, StringRef > | splitQualifiedName (StringRef QName)
TextEdit | replacementToEdit (llvm::StringRef Code, const tooling::Replacement &R)
std::vector< TextEdit > | replacementsToEdits (llvm::StringRef Code, const tooling::Replacements &Repls)
llvm::Optional< std::string > | getCanonicalPath (const FileEntry *F, const SourceManager &SourceMgr)
| Get the canonical path of `F`. More...
TextEdit | toTextEdit (const FixItHint &FixIt, const SourceManager &M, const LangOptions &L)
bool | isRangeConsecutive (const Range &Left, const Range &Right)
FileDigest | digest (llvm::StringRef Content)
llvm::Optional< FileDigest > | digestFile (const SourceManager &SM, FileID FID)
format::FormatStyle | getFormatStyleForFile (llvm::StringRef File, llvm::StringRef Content, llvm::vfs::FileSystem *FS)
| Choose the clang-format style we should apply to a certain file. More...
llvm::Expected< tooling::Replacements > | cleanupAndFormat (StringRef Code, const tooling::Replacements &Replaces, const format::FormatStyle &Style)
| Cleanup and format the given replacements. More...
static void | lex (llvm::StringRef Code, const LangOptions &LangOpts, llvm::function_ref< void(const clang::Token &, const SourceManager &SM)> Action)
llvm::StringMap< unsigned > | collectIdentifiers (llvm::StringRef Content, const format::FormatStyle &Style)
| Collects identifiers with counts in the source code. More...
std::vector< Range > | collectIdentifierRanges (llvm::StringRef Identifier, llvm::StringRef Content, const LangOptions &LangOpts)
| Collects all ranges of the given identifier in the source code. More...
std::vector< std::string > | visibleNamespaces (llvm::StringRef Code, const format::FormatStyle &Style)
| Heuristically determine namespaces visible at a point, without parsing Code. More...
llvm::StringSet | collectWords (llvm::StringRef Content)
| Collects words from the source code. More...
llvm::Optional< DefinedMacro > | locateMacroAt (SourceLocation Loc, Preprocessor &PP)
| Gets the macro at a specified `Loc`. More...
llvm::Error | reformatEdit (Edit &E, const format::FormatStyle &Style)
| Formats the edits and code around it according to Style. More...
EligibleRegion | getEligiblePoints (llvm::StringRef Code, llvm::StringRef FullyQualifiedName, const format::FormatStyle &Style)
| Returns most eligible region to insert a definition for `FullyQualifiedName` in the `Code`. More...
bool | isHeaderFile (llvm::StringRef FileName, llvm::Optional< LangOptions > LangOpts=llvm::None)
| Infers whether this is a header from the FileName and LangOpts (if presents). More...
FileDigest | digest (StringRef Content)
size_t | lspLength (StringRef Code)
std::pair< llvm::StringRef, llvm::StringRef > | splitQualifiedName (llvm::StringRef QName)
| From "a::b::c", return {"a::b::", "c"}. More...
TextEdit | replacementToEdit (StringRef Code, const tooling::Replacement &R)
std::vector< TextEdit > | replacementsToEdits (StringRef Code, const tooling::Replacements &Repls)
Deadline | timeoutSeconds (llvm::Optional< double > Seconds)
| Makes a deadline from a timeout in seconds. None means wait forever. More...
void | wait (std::unique_lock< std::mutex > &Lock, std::condition_variable &CV, Deadline D)
| Wait once on CV for the specified duration. More...
template<typename Func >
LLVM_NODISCARD bool | wait (std::unique_lock< std::mutex > &Lock, std::condition_variable &CV, Deadline D, Func F)
| Waits on a condition variable until F() is true or D expires. More...
template<typename T >
std::future< T > | runAsync (llvm::unique_function< T()> Action)
| Runs `Action` asynchronously with a new std::thread. More...
unsigned | getDefaultAsyncThreadsCount ()
| Returns a number of a default async threads to use for TUScheduler. More...
static clangd::Range | toLSPRange (llvm::StringRef Code, Annotations::Range R)
| MATCHER_P (Named, N, "")
| MATCHER (Declared, "")
| MATCHER (Defined, "")
| MATCHER_P (FileURI, F, "")
::testing::Matcher< const RefSlab & > | RefsAre (std::vector<::testing::Matcher< Ref >> Matchers)
| MATCHER (EmptyIncludeNode, "")
| MATCHER (HadErrors, "")
| MATCHER_P (NumReferences, N, "")
| TEST_F (BackgroundIndexTest, NoCrashOnErrorFile)
| TEST_F (BackgroundIndexTest, IndexTwoFiles)
| TEST_F (BackgroundIndexTest, ShardStorageTest)
| TEST_F (BackgroundIndexTest, DirectIncludesTest)
| TEST_F (BackgroundIndexTest, ShardStorageLoad)
| TEST_F (BackgroundIndexTest, ShardStorageEmptyFile)
| TEST_F (BackgroundIndexTest, NoDotsInAbsPath)
| TEST_F (BackgroundIndexTest, UncompilableFiles)
| TEST_F (BackgroundIndexTest, CmdLineHash)
| TEST_F (BackgroundIndexRebuilderTest, IndexingTUs)
| TEST_F (BackgroundIndexRebuilderTest, LoadingShards)
| TEST (BackgroundQueueTest, Priority)
| TEST (BackgroundQueueTest, Boost)
| TEST (ContextTests, Simple)
| TEST (ContextTests, MoveOps)
| TEST (ContextTests, Builders)
| TEST_F (WorkspaceSymbolsTest, Macros)
| TEST_F (WorkspaceSymbolsTest, NoLocals)
| TEST_F (WorkspaceSymbolsTest, Globals)
| TEST_F (WorkspaceSymbolsTest, Unnamed)
| TEST_F (WorkspaceSymbolsTest, InMainFile)
| TEST_F (WorkspaceSymbolsTest, Namespaces)
| TEST_F (WorkspaceSymbolsTest, AnonymousNamespace)
| TEST_F (WorkspaceSymbolsTest, MultiFile)
| TEST_F (WorkspaceSymbolsTest, GlobalNamespaceQueries)
| TEST_F (WorkspaceSymbolsTest, Enums)
| TEST_F (WorkspaceSymbolsTest, Ranking)
| TEST_F (WorkspaceSymbolsTest, WithLimit)
| TEST_F (WorkspaceSymbolsTest, TempSpecs)
| TEST_F (DocumentSymbolsTest, BasicSymbols)
| TEST_F (DocumentSymbolsTest, DeclarationDefinition)
| TEST_F (DocumentSymbolsTest, ExternSymbol)
| TEST_F (DocumentSymbolsTest, NoLocals)
| TEST_F (DocumentSymbolsTest, Unnamed)
| TEST_F (DocumentSymbolsTest, InHeaderFile)
| TEST_F (DocumentSymbolsTest, Template)
| TEST_F (DocumentSymbolsTest, Namespaces)
| TEST_F (DocumentSymbolsTest, Enums)
| TEST_F (DocumentSymbolsTest, FromMacro)
| TEST_F (DocumentSymbolsTest, FuncTemplates)
| TEST_F (DocumentSymbolsTest, UsingDirectives)
| TEST_F (DocumentSymbolsTest, TempSpecs)
| TEST_F (DocumentSymbolsTest, Qualifiers)
| TEST_F (DocumentSymbolsTest, QualifiersWithTemplateArgs)
template<typename... Args>
PolySubsequenceMatcher< Args... > | HasSubsequence (Args &&... M)
template<typename InnerMatcher >
OptionalMatcher< InnerMatcher > | HasValue (const InnerMatcher &inner_matcher)
void | runAddDocument (ClangdServer &Server, PathRef File, llvm::StringRef Contents, WantDiagnostics WantDiags)
llvm::Expected< CodeCompleteResult > | runCodeComplete (ClangdServer &Server, PathRef File, Position Pos, clangd::CodeCompleteOptions Opts)
llvm::Expected< SignatureHelp > | runSignatureHelp (ClangdServer &Server, PathRef File, Position Pos)
llvm::Expected< std::vector< LocatedSymbol > > | runLocateSymbolAt (ClangdServer &Server, PathRef File, Position Pos)
llvm::Expected< std::vector< DocumentHighlight > > | runFindDocumentHighlights (ClangdServer &Server, PathRef File, Position Pos)
llvm::Expected< FileEdits > | runRename (ClangdServer &Server, PathRef File, Position Pos, llvm::StringRef NewName)
std::string | runDumpAST (ClangdServer &Server, PathRef File)
llvm::Expected< std::vector< SymbolInformation > > | runWorkspaceSymbols (ClangdServer &Server, llvm::StringRef Query, int Limit)
llvm::Expected< std::vector< DocumentSymbol > > | runDocumentSymbols (ClangdServer &Server, PathRef File)
SymbolSlab | runFuzzyFind (const SymbolIndex &Index, llvm::StringRef Query)
SymbolSlab | runFuzzyFind (const SymbolIndex &Index, const FuzzyFindRequest &Req)
RefSlab | getRefs (const SymbolIndex &Index, SymbolID ID)
llvm::Expected< std::vector< Range > > | runSemanticRanges (ClangdServer &Server, PathRef File, Position Pos)
llvm::Expected< llvm::Optional< clangd::Path > > | runSwitchHeaderSource (ClangdServer &Server, PathRef File)
void | runAddDocument (ClangdServer &Server, PathRef File, StringRef Contents, WantDiagnostics WantDiags=WantDiagnostics::Auto)
llvm::Expected< FileEdits > | runRename (ClangdServer &Server, PathRef File, Position Pos, StringRef NewName)
llvm::Expected< std::vector< SymbolInformation > > | runWorkspaceSymbols (ClangdServer &Server, StringRef Query, int Limit)
SymbolSlab | runFuzzyFind (const SymbolIndex &Index, StringRef Query)
llvm::IntrusiveRefCntPtr< llvm::vfs::FileSystem > | buildTestFS (llvm::StringMap< std::string > const &Files, llvm::StringMap< time_t > const &Timestamps)
const char * | testRoot ()
std::string | testPath (PathRef File)
static URISchemeRegistry::Add< TestScheme > | X (TestScheme::Scheme, "Test schema")
Symbol | symbol (llvm::StringRef QName)
static std::string | replace (llvm::StringRef Haystack, llvm::StringRef Needle, llvm::StringRef Repl)
Symbol | sym (llvm::StringRef QName, index::SymbolKind Kind, llvm::StringRef USRFormat)
Symbol | func (llvm::StringRef Name)
Symbol | cls (llvm::StringRef Name)
Symbol | var (llvm::StringRef Name)
Symbol | ns (llvm::StringRef Name)
SymbolSlab | generateSymbols (std::vector< std::string > QualifiedNames)
SymbolSlab | generateNumSymbols (int Begin, int End)
std::string | getQualifiedName (const Symbol &Sym)
std::vector< std::string > | match (const SymbolIndex &I, const FuzzyFindRequest &Req, bool *Incomplete)
std::vector< std::string > | lookup (const SymbolIndex &I, llvm::ArrayRef< SymbolID > IDs)
const Symbol & | findSymbol (const SymbolSlab &Slab, llvm::StringRef QName)
const NamedDecl & | findDecl (ParsedAST &AST, llvm::StringRef QName)
const NamedDecl & | findDecl (ParsedAST &AST, std::function< bool(const NamedDecl &)> Filter)
const NamedDecl & | findUnqualifiedDecl (ParsedAST &AST, llvm::StringRef Name)
| TEST_F (ThreadingTest, TaskRunner)
xpc_object_t | jsonToXpc (const json::Value &JSON)
json::Value | xpcToJson (const xpc_object_t &XPCObject)
xpc_object_t | jsonToXpc (const llvm::json::Value &JSON)
std::unique_ptr< Transport > | newXPCTransport ()
std::vector< DocumentLink > | getDocumentLinks (ParsedAST &AST)
| Get all document links. More...
std::vector< LocatedSymbol > | locateSymbolAt (ParsedAST &AST, Position Pos, const SymbolIndex *Index=nullptr)
| Get definition of symbol at a specified `Pos`. More...
std::vector< DocumentHighlight > | findDocumentHighlights (ParsedAST &AST, Position Pos)
| Returns highlights for all usages of a symbol at `Pos`. More...
ReferencesResult | findReferences (ParsedAST &AST, Position Pos, uint32_t Limit, const SymbolIndex *Index=nullptr)
| Returns references of the symbol at a specified `Pos`. More...
std::vector< SymbolDetails > | getSymbolInfo (ParsedAST &AST, Position Pos)
| Get info about symbols at `Pos`. More...
llvm::raw_ostream & | operator<< (llvm::raw_ostream &OS, const LocatedSymbol &S)
static llvm::Optional< TypeHierarchyItem > | declToTypeHierarchyItem (ASTContext &Ctx, const NamedDecl &ND)
static Optional< TypeHierarchyItem > | symbolToTypeHierarchyItem (const Symbol &S, const SymbolIndex *Index, PathRef TUPath)
static void | fillSubTypes (const SymbolID &ID, std::vector< TypeHierarchyItem > &SubTypes, const SymbolIndex *Index, int Levels, PathRef TUPath)
static void | fillSuperTypes (const CXXRecordDecl &CXXRD, ASTContext &ASTCtx, std::vector< TypeHierarchyItem > &SuperTypes, RecursionProtectionSet &RPSet)
const CXXRecordDecl * | findRecordTypeAt (ParsedAST &AST, Position Pos)
| Find the record type references at `Pos`. More...
std::vector< const CXXRecordDecl * > | typeParents (const CXXRecordDecl *CXXRD)
| Given a record type declaration, find its base (parent) types. More...
llvm::Optional< TypeHierarchyItem > | getTypeHierarchy (ParsedAST &AST, Position Pos, int Resolve, TypeHierarchyDirection Direction, const SymbolIndex *Index=nullptr, PathRef TUPath=PathRef{})
| Get type hierarchy information at `Pos`. More...
void | resolveTypeHierarchy (TypeHierarchyItem &Item, int ResolveLevels, TypeHierarchyDirection Direction, const SymbolIndex *Index)
llvm::DenseSet< const Decl * > | getNonLocalDeclRefs (ParsedAST &AST, const FunctionDecl *FD)
| Returns all decls that are referenced in the `FD` except local symbols. More...

## Variables
static Key< std::shared_ptr< std::atomic< bool > > > | FlagKey
static constexpr int | AwfulScore = -(1 << 13)
static constexpr int | PerfectBonus = 4
static constexpr uint8_t | CharTypes []
static constexpr uint8_t | CharRoles []
static std::atomic< bool > | PreventStarvation = {false}
constexpr int | MaxSuffixComponents = 3
| The maximum number of path components in a key from StdSuffixHeaderMapping. More...
constexpr auto | CompletionItemKindMin
constexpr auto | CompletionItemKindMax
constexpr auto | SymbolKindMin = static_cast<size_t>(SymbolKind::File)
constexpr auto | SymbolKindMax = static_cast<size_t>(SymbolKind::TypeParameter)
static std::atomic< bool > | ShutdownRequested = {false}
Key< OffsetEncoding > | kCurrentOffsetEncoding
static clang::clangd::Key< std::string > | kFileBeingProcessed
static int LLVM_ATTRIBUTE_UNUSED | UnittestSchemeAnchorDest
volatile int | UnittestSchemeAnchorSource = 0
static int LLVM_ATTRIBUTE_UNUSED | UnittestSchemeAnchorDest

## Typedef Documentation

## ◆ Callback

template<typename T >

using clang::clangd::Callback = typedef llvm::unique_function<void(llvm::Expected<T>)>

A Callback<T> is a void function that accepts Expected<T>.

This is accepted by ClangdServer functions that logically return T.

Definition at line 28 of file Function.h.

## ◆ Canceler

using clang::clangd::Canceler = typedef std::function<void()>

A canceller requests cancellation of a task, when called.

Calling it again has no effect.

Definition at line 70 of file Cancellation.h.

## ◆ CharTypeSet

using clang::clangd::CharTypeSet = typedef unsigned char

Definition at line 49 of file FuzzyMatch.h.

## ◆ ClangTidyOptionsBuilder

using clang::clangd::ClangTidyOptionsBuilder = typedef std::function<tidy::ClangTidyOptions( llvm::vfs::FileSystem &, llvm::StringRef )>

When set, used by ClangdServer to get clang-tidy options for each particular file.

Must be thread-safe. We use this instead of ClangTidyOptionsProvider to allow reading tidy configs from the VFS used for parsing.

Definition at line 65 of file ClangdServer.h.

## ◆ CompletionItemKindBitset

using clang::clangd::CompletionItemKindBitset = typedef std::bitset<CompletionItemKindMax + 1>

Definition at line 293 of file Protocol.h.

## ◆ DirtyBufferGetter

using clang::clangd::DirtyBufferGetter = typedef llvm::function_ref<llvm::Optional<std::string>(PathRef AbsPath)>

Gets dirty buffer for a given file `AbsPath`.

Returns None if there is no dirty buffer for the given file.

Definition at line 27 of file Rename.h.

## ◆ ExitParams

using clang::clangd::ExitParams = typedef NoParams

Definition at line 243 of file Protocol.h.

## ◆ FileDigest

using clang::clangd::FileDigest = typedef std::array<uint8_t, 8>

Definition at line 38 of file SourceCode.h.

## ◆ FileEdits

using clang::clangd::FileEdits = typedef llvm::StringMap<Edit>

A mapping from absolute file path (the one used for accessing the underlying VFS) to edits.

Definition at line 222 of file SourceCode.h.

## ◆ IncludeGraph

using clang::clangd::IncludeGraph = typedef llvm::StringMap<IncludeGraphNode>

Definition at line 82 of file Headers.h.

## ◆ Path

using clang::clangd::Path = typedef std::string

A typedef to represent a file path.

Used solely for more descriptive signatures.

Definition at line 20 of file Path.h.

## ◆ PathMappings

using clang::clangd::PathMappings = typedef std::vector<PathMapping>

Definition at line 38 of file PathMapping.h.

## ◆ PathRef

using clang::clangd::PathRef = typedef llvm::StringRef

A typedef to represent a ref to file path.

Used solely for more descriptive signatures.

Definition at line 23 of file Path.h.

## ◆ PreambleParsedCallback

using clang::clangd::PreambleParsedCallback = typedef std::function<void(ASTContext &, std::shared_ptr<clang::Preprocessor>, const CanonicalIncludes &)>

Definition at line 69 of file Preamble.h.

## ◆ RecursionProtectionSet

using clang::clangd::RecursionProtectionSet = typedef llvm::SmallSet<const CXXRecordDecl *, 4>

Definition at line 661 of file XRefs.cpp.

## ◆ ShutdownParams

using clang::clangd::ShutdownParams = typedef NoParams

Definition at line 242 of file Protocol.h.

## ◆ SlabTuple

using clang::clangd::SlabTuple = typedef std::tuple<SymbolSlab, RefSlab, RelationSlab>

Definition at line 136 of file FileIndex.h.

## ◆ SymbolKindBitset

using clang::clangd::SymbolKindBitset = typedef std::bitset<SymbolKindMax + 1>

Definition at line 331 of file Protocol.h.

## ◆ TweakRegistry

typedef llvm::Registry<Tweak> clang::clangd::TweakRegistry

A handy typedef to save some typing.

Definition at line 30 of file Tweak.cpp.

## ◆ URISchemeRegistry

typedef llvm::Registry<URIScheme> clang::clangd::URISchemeRegistry

By default, a "file" scheme is supported where URI paths are always absolute in the file system.

Definition at line 131 of file URI.h.

## Enumeration Type Documentation

## ◆ CharRole

enum clang::clangd::CharRole : unsigned char

Enumerator
Unknown |
Tail |
Head |
Separator |

Definition at line 55 of file FuzzyMatch.h.

## ◆ CharType

enum clang::clangd::CharType : unsigned char

Enumerator
Empty |
Lower |
Upper |
Punctuation |

Definition at line 41 of file FuzzyMatch.h.

## ◆ CompletionItemKind

enum clang::clangd::CompletionItemKind
| strong

The kind of a completion entry.

Enumerator
Missing |
Text |
Method |
Function |
Constructor |
Field |
Variable |
Class |
Interface |
Module |
Property |
Unit |
Value |
Enum |
Keyword |
Snippet |
Color |
File |
Reference |
Folder |
EnumMember |
Constant |
Struct |
Event |
Operator |
TypeParameter |

Definition at line 260 of file Protocol.h.

## ◆ CompletionTriggerKind

enum clang::clangd::CompletionTriggerKind
| strong

Enumerator
Invoked | Completion was triggered by typing an identifier (24x7 code complete), manual invocation (e.g Ctrl+Space) or via API.
TriggerCharacter | Completion was triggered by a trigger character specified by the `triggerCharacters` properties of the `CompletionRegistrationOptions`.
TriggerTriggerForIncompleteCompletions | Completion was re-triggered as the current completion list is incomplete.

Definition at line 892 of file Protocol.h.

## ◆ DeclRelation

enum clang::clangd::DeclRelation : unsigned
| strong

Enumerator
TemplateInstantiation | This is the template instantiation that was referred to. e.g. template<> class vector<int> (the implicit specialization)
TemplatePattern | This is the pattern the template specialization was instantiated from. e.g. class vector<T> (the pattern within the primary template)
Alias | This declaration is an alias that was referred to. e.g. using llvm::StringRef (the UsingDecl directly referenced).
Underlying | This is the underlying declaration for an alias, decltype etc. e.g. class llvm::StringRef (the underlying declaration referenced).

Definition at line 93 of file FindTarget.h.

## ◆ DocumentHighlightKind

enum clang::clangd::DocumentHighlightKind
| strong

Enumerator
Text |
Read |
Write |

Definition at line 1093 of file Protocol.h.

## ◆ DuplicateHandling

enum clang::clangd::DuplicateHandling
| strong

How to handle duplicated symbols across multiple files.

Enumerator
PickOne |
Merge |

Definition at line 41 of file FileIndex.h.

## ◆ ErrorCode

enum clang::clangd::ErrorCode
| strong

Enumerator
ParseError |
InvalidRequest |
MethodNotFound |
InvalidParams |
InternalError |
ServerNotInitialized |
UnknownErrorCode |
RequestCancelled |

Definition at line 40 of file Protocol.h.

## ◆ FileChangeType

enum clang::clangd::FileChangeType
| strong

Enumerator
Created | The file got created.
Changed | The file got changed.
Deleted | The file got deleted.

Definition at line 565 of file Protocol.h.

## ◆ HighlightingKind

enum clang::clangd::HighlightingKind
| strong

Enumerator
Variable |
LocalVariable |
Parameter |
Function |
Method |
StaticMethod |
Field |
StaticField |
Class |
Enum |
EnumConstant |
Typedef |
DependentType |
DependentName |
Namespace |
TemplateParameter |
Primitive |
Macro |
InactiveCode |
LastKind |

Definition at line 27 of file SemanticHighlighting.h.

## ◆ IndexFileFormat

enum clang::clangd::IndexFileFormat
| strong

Enumerator
RIFF |
YAML |

Definition at line 36 of file Serialization.h.

## ◆ IndexType

enum clang::clangd::IndexType
| strong

Select between in-memory index implementations, which have tradeoffs.

Enumerator
Light |
Heavy |

Definition at line 33 of file FileIndex.h.

## ◆ InsertTextFormat

enum clang::clangd::InsertTextFormat
| strong

Defines whether the insert text in a completion item should be interpreted as plain text or a snippet.

Enumerator
Missing |
PlainText | The primary text to be inserted is treated as a plain string.
Snippet | The primary text to be inserted is treated as a snippet. A snippet can define tab stops and placeholders with `$1`, `$2` and `${3:foo}`. `$0` defines the final tab stop, it defaults to the end of the snippet. Placeholders with equal identifiers are linked, that is typing in one will update others too. See also: https//github.com/Microsoft/vscode/blob/master/src/vs/editor/contrib/snippet/common/snippet.md

Definition at line 935 of file Protocol.h.

## ◆ JSONStreamStyle

enum clang::clangd::JSONStreamStyle

Enumerator
Standard |
Delimited |

Definition at line 65 of file Transport.h.

## ◆ MarkupKind

enum clang::clangd::MarkupKind
| strong

Enumerator
PlainText |
Markdown |

Definition at line 359 of file Protocol.h.

## ◆ MessageType

enum clang::clangd::MessageType
| strong

Enumerator
Error | An error message.
Warning | A warning message.
Info | An information message.
Log | A log message.

Definition at line 502 of file Protocol.h.

## ◆ OffsetEncoding

enum clang::clangd::OffsetEncoding
| strong

Enumerator
UnsupportedEncoding |
UTF16 |
UTF8 |
UTF32 |

Definition at line 343 of file Protocol.h.

## ◆ RefKind

enum clang::clangd::RefKind : uint8_t
| strong

Describes the kind of a cross-reference.

This is a bitfield which can be combined from different kinds.

Enumerator
Unknown |
Declaration |
Definition |
Reference |
All |

Definition at line 28 of file Ref.h.

## ◆ RelationKind

enum clang::clangd::RelationKind : uint8_t
| strong

Enumerator
BaseOf |

Definition at line 22 of file Relation.h.

## ◆ SymbolKind

enum clang::clangd::SymbolKind
| strong

A symbol kind.

Enumerator
File |
Module |
Namespace |
Package |
Class |
Method |
Property |
Field |
Constructor |
Enum |
Interface |
Function |
Variable |
Constant |
String |
Number |
Boolean |
Array |
Object |
Key |
Null |
EnumMember |
Struct |
Event |
Operator |
TypeParameter |

Definition at line 300 of file Protocol.h.

## ◆ SymbolOrigin

enum clang::clangd::SymbolOrigin : uint8_t
| strong

Enumerator
Unknown |
AST |
Dynamic |
Static |
Merge |
Identifier |

Definition at line 21 of file SymbolOrigin.h.

## ◆ TextDocumentSyncKind

enum clang::clangd::TextDocumentSyncKind
| strong

Defines how the host (editor) should sync document changes to the language server.

Enumerator
None | Documents should not be synced at all.
Full | Documents are synced by always sending the full content of the document.
Incremental | Documents are synced by sending the full content on open. After that only incremental updates to the document are send.

Definition at line 247 of file Protocol.h.

## ◆ TraceLevel

enum clang::clangd::TraceLevel
| strong

Enumerator
Off |
Messages |
Verbose |

Definition at line 233 of file Protocol.h.

## ◆ TypeHierarchyDirection

enum clang::clangd::TypeHierarchyDirection
| strong

Enumerator
Children |
Parents |
Both |

Definition at line 1121 of file Protocol.h.

## ◆ WantDiagnostics

enum clang::clangd::WantDiagnostics
| strong

Determines whether diagnostics should be generated for a file snapshot.

Enumerator
Yes |
No | Diagnostics must be generated for this snapshot.
Auto | Diagnostics must not be generated for this snapshot.

Definition at line 47 of file TUScheduler.h.

## Function Documentation

## ◆ abortAfterTimeout()

void clang::clangd::abortAfterTimeout | ( | std::chrono::seconds | Timeout | ) |

Causes this process to crash if still running after Timeout.

Definition at line 18 of file Shutdown.cpp.

## ◆ adjustKindToCapability() [1/2]

SymbolKind clang::clangd::adjustKindToCapability | ( | SymbolKind | Kind,
|  | SymbolKindBitset & | SupportedSymbolKinds
| ) |  |

Definition at line 198 of file Protocol.cpp.

References Class, Enum, EnumMember, Kind, String, Struct, and SymbolKindMin.

## ◆ adjustKindToCapability() [2/2]

CompletionItemKind clang::clangd::adjustKindToCapability | ( | CompletionItemKind | Kind,
|  | CompletionItemKindBitset & | SupportedCompletionItemKinds
| ) |  |

Definition at line 773 of file Protocol.cpp.

References Class, CompletionItemKindMin, Enum, EnumMember, File, Folder, Kind, Struct, and Text.

## ◆ adjustRenameRanges()

llvm::Optional< std::vector< Range > > clang::clangd::adjustRenameRanges | ( | llvm::StringRef | DraftCode,
|  | llvm::StringRef | Identifier,
|  | std::vector< Range > | Indexed,
|  | const LangOptions & | LangOpts
| ) |  |

Adjusts indexed occurrences to match the current state of the file.

The Index is not always up to date. Blindly editing at the locations reported by the index may mangle the code in such cases. This function determines whether the indexed occurrences can be applied to this file, and heuristically repairs the occurrences if necessary.

The API assumes that Indexed contains only named occurrences (each occurrence has the same length). REQUIRED: Indexed is sorted.

Definition at line 584 of file Rename.cpp.

## ◆ allTargetDecls()

llvm::SmallVector< std::pair< const NamedDecl *, DeclRelationSet >, 1 > clang::clangd::allTargetDecls | ( | const ast_type_traits::DynTypedNode & |  | ) |

Similar to targetDecl(), however instead of applying a filter, all possible decls are returned along with their DeclRelationSets.

This is suitable for indexing, where everything is recorded and filtering is applied later.

Definition at line 486 of file FindTarget.cpp.

References dlog.

Referenced by explicitReferenceTargets().

## ◆ applyPathMappings()

void clang::clangd::applyPathMappings | ( | llvm::json::Value & | Params,
|  | PathMapping::Direction | Dir,
|  | const PathMappings & | Mappings
| ) |  |

Applies the `Mappings` to all the file:// URIs in `Params`.

NOTE: The first matching mapping will be applied, otherwise `Params` will be untouched.

Definition at line 49 of file PathMapping.cpp.

## ◆ asCommand()

static llvm::Optional<Command> clang::clangd::asCommand | ( | const CodeAction & | Action | ) |
| static

Definition at line 900 of file ClangdLSPServer.cpp.

References Code, clang::clangd::CodeAction::command, Command, clang::clangd::CodeActionParams::context, clang::clangd::CodeActionContext::diagnostics, clang::clangd::CodeAction::edit, clang::clangd::URIForFile::file(), InvalidParams, clang::clangd::CodeAction::kind, None, clang::clangd::CodeAction::QUICKFIX_KIND, clang::clangd::CodeActionParams::textDocument, clang::clangd::CodeAction::title, and clang::clangd::TextDocumentIdentifier::uri.

## ◆ buildAST()

llvm::Optional< ParsedAST > clang::clangd::buildAST | ( | PathRef | FileName,
|  | std::unique_ptr< CompilerInvocation > | Invocation,
|  | llvm::ArrayRef< Diag > | CompilerInvocationDiags,
|  | const ParseInputs & | Inputs,
|  | std::shared_ptr< const PreambleData > | Preamble
| ) |  |

Build an AST from provided user inputs.

This function does not check if preamble can be reused, as this function expects that `Preamble` is the result of calling buildPreamble.

Definition at line 505 of file ParsedAST.cpp.

Referenced by clang::clangd::ParsedAST::getTokens().

## ◆ buildCompilerInvocation()

std::unique_ptr< CompilerInvocation > clang::clangd::buildCompilerInvocation | ( | const ParseInputs & | Inputs,
|  | clang::DiagnosticConsumer & | D,
|  | std::vector< std::string > * | CC1Args
| ) |  |

Builds compiler invocation that could be used to build AST or preamble.

Definition at line 44 of file Compiler.cpp.

References clang::clangd::ParseInputs::CompileCommand, clang::clangd::ParseInputs::FS, and clang::clangd::IgnoreDiagnostics::log().

## ◆ buildPreamble()

std::shared_ptr< const PreambleData > clang::clangd::buildPreamble | ( | PathRef | FileName,
|  | CompilerInvocation & | CI,
|  | std::shared_ptr< const PreambleData > | OldPreamble,
|  | const tooling::CompileCommand & | OldCompileCommand,
|  | const ParseInputs & | Inputs,
|  | bool | StoreInMemory,
|  | PreambleParsedCallback | PreambleCallback
| ) |  |

Build a preamble for the new inputs unless an old one can be reused.

If `OldPreamble` can be reused, it is returned unchanged. If `OldPreamble` is null, always builds the preamble. If `PreambleCallback` is set, it will be run on top of the AST while building the preamble. Note that if the old preamble was reused, no AST is built and, therefore, the callback will not be executed.

Definition at line 89 of file Preamble.cpp.

References clang::clangd::ParseInputs::CompileCommand, clang::clangd::ParseInputs::Contents, clang::clangd::ParseInputs::FS, and vlog().

## ◆ buildRenameEdit()

llvm::Expected< Edit > clang::clangd::buildRenameEdit | ( | llvm::StringRef | AbsFilePath,
|  | llvm::StringRef | InitialCode,
|  | std::vector< Range > | Occurrences,
|  | llvm::StringRef | NewName
| ) |  |

Generates rename edits that replaces all given occurrences with the NewName.

Exposed for testing only. REQUIRED: Occurrences is sorted and doesn't have duplicated ranges.

Definition at line 519 of file Rename.cpp.

References clang::clangd::Position::line, Offset, positionToOffset(), and clang::tidy::cppcoreguidelines::toString().

## ◆ buildTestFS()

llvm::IntrusiveRefCntPtr< llvm::vfs::FileSystem > clang::clangd::buildTestFS | ( | llvm::StringMap< std::string > const & | Files,
|  | llvm::StringMap< time_t > const & | Timestamps
| ) |  |

Definition at line 22 of file TestFS.cpp.

References InMemoryFileSystem, and testRoot().

Referenced by clang::clangd::TestTU::build(), and clang::clangd::MockFSProvider::getFileSystem().

## ◆ calculateRoles()

CharTypeSet clang::clangd::calculateRoles | ( | llvm::StringRef | Text,
|  | llvm::MutableArrayRef< CharRole > | Roles
| ) |  |

Definition at line 154 of file FuzzyMatch.cpp.

References AwfulScore, CharRoles, CharTypes, Empty, Head, Lower, lower(), Score, Tail, Type, and Upper.

Referenced by collectWords(), clang::clangd::FuzzyMatcher::FuzzyMatcher(), and clang::clangd::dex::generateIdentifierTrigrams().

## ◆ cancelableTask()

std::pair< Context, Canceler > clang::clangd::cancelableTask | ( |  | ) |

Defines a new task whose cancellation may be requested.

The returned Context defines the scope of the task. When the context is active, isCancelled() is false until the Canceler is invoked, and true afterwards.

Definition at line 18 of file Cancellation.cpp.

References clang::clangd::Context::current(), and clang::clangd::Context::derive().

## ◆ canonicalize()

static llvm::SmallString<128> clang::clangd::canonicalize | ( | llvm::StringRef | Path | ) |
| static

Definition at line 46 of file FileDistance.cpp.

Referenced by clang::clangd::FileDistance::distance().

## ◆ categorize() [1/3]

static SymbolQualitySignals::SymbolCategory clang::clangd::categorize | ( | const NamedDecl & | ND | ) |
| static

Definition at line 62 of file Quality.cpp.

References Constructor, Decl, Function, MAP, Namespace, clang::clangd::SymbolQualitySignals::Operator, Type, Unknown, and Variable.

Referenced by categorize(), and clang::clangd::SymbolQualitySignals::merge().

## ◆ categorize() [2/3]

static SymbolQualitySignals::SymbolCategory clang::clangd::categorize | ( | const CodeCompletionResult & | R | ) |
| static

Definition at line 92 of file Quality.cpp.

References categorize(), clang::clangd::SymbolQualitySignals::Constructor, clang::clangd::SymbolQualitySignals::Function, clang::clangd::SymbolQualitySignals::Keyword, clang::clangd::SymbolQualitySignals::Macro, clang::clangd::SymbolQualitySignals::Namespace, clang::clangd::SymbolQualitySignals::Type, and clang::clangd::SymbolQualitySignals::Variable.

## ◆ categorize() [3/3]

static SymbolQualitySignals::SymbolCategory clang::clangd::categorize | ( | const index::SymbolInfo & | D | ) |
| static

Definition at line 118 of file Quality.cpp.

References clang::clangd::SymbolQualitySignals::Constructor, clang::clangd::SymbolQualitySignals::Destructor, clang::clangd::SymbolQualitySignals::Function, clang::clangd::SymbolQualitySignals::Macro, clang::clangd::SymbolQualitySignals::Namespace, clang::clangd::SymbolQualitySignals::Type, Unknown, clang::clangd::SymbolQualitySignals::Unknown, and clang::clangd::SymbolQualitySignals::Variable.

## ◆ cleanupAndFormat()

llvm::Expected< tooling::Replacements > clang::clangd::cleanupAndFormat | ( | StringRef | Code,
|  | const tooling::Replacements & | Replaces,
|  | const format::FormatStyle & | Style
| ) |  |

Cleanup and format the given replacements.

Definition at line 707 of file SourceCode.cpp.

## ◆ cls()

Symbol clang::clangd::cls | ( | llvm::StringRef | Name | ) |

Definition at line 64 of file TestIndex.cpp.

References sym().

## ◆ codeComplete() [1/2]

CodeCompleteResult clang::clangd::codeComplete | ( | PathRef | FileName,
|  | const tooling::CompileCommand & | Command,
|  | const PreambleData * | Preamble,
|  | StringRef | Contents,
|  | Position | Pos,
|  | IntrusiveRefCntPtr< llvm::vfs::FileSystem > | VFS,
|  | CodeCompleteOptions | Opts,
|  | SpeculativeFuzzyFind * | SpecFuzzyFind = `nullptr`
| ) |  |

Gets code completions at a specified `Pos` in `FileName`.

If `Preamble` is nullptr, this runs code completion without compiling the code.

If `SpecFuzzyFind` is set, a speculative and asynchronous fuzzy find index request (based on cached request) will be run before parsing sema. In case the speculative result is used by code completion (e.g. speculation failed), the speculative result is not consumed, and `SpecFuzzyFind` is only destroyed when the async request finishes.

## ◆ codeComplete() [2/2]

CodeCompleteResult clang::clangd::codeComplete | ( | PathRef | FileName,
|  | const tooling::CompileCommand & | Command,
|  | const PreambleData * | Preamble,
|  | llvm::StringRef | Contents,
|  | Position | Pos,
|  | llvm::IntrusiveRefCntPtr< llvm::vfs::FileSystem > | VFS,
|  | CodeCompleteOptions | Opts,
|  | SpeculativeFuzzyFind * | SpecFuzzyFind
| ) |  |

Definition at line 1731 of file CodeComplete.cpp.

## ◆ collectAccessibleScopes()

std::vector<std::string> clang::clangd::collectAccessibleScopes | ( | Sema & | Sem,
|  | const DeclarationNameInfo & | Typo,
|  | Scope * | S,
|  | Sema::LookupNameKind | LookupKind
| ) |  |

Returns all namespace scopes that the unqualified lookup would visit.

Definition at line 306 of file clangd/IncludeFixer.cpp.

Referenced by clang::clangd::IncludeFixer::UnresolvedNameRecorder::CorrectTypo().

## ◆ collectIdentifierRanges()

std::vector< Range > clang::clangd::collectIdentifierRanges | ( | llvm::StringRef | Identifier,
|  | llvm::StringRef | Content,
|  | const LangOptions & | LangOpts
| ) |  |

Collects all ranges of the given identifier in the source code.

Definition at line 746 of file SourceCode.cpp.

References lex().

## ◆ collectIdentifiers()

llvm::StringMap< unsigned > clang::clangd::collectIdentifiers | ( | llvm::StringRef | Content,
|  | const format::FormatStyle & | Style
| ) |  |

Collects identifiers with counts in the source code.

Definition at line 735 of file SourceCode.cpp.

## ◆ collectIncludeStructureCallback()

std::unique_ptr< PPCallbacks > clang::clangd::collectIncludeStructureCallback | ( | const SourceManager & | SM,
|  | IncludeStructure * | Out
| ) |  |

Returns a PPCallback that visits all inclusions in the main file.

Definition at line 113 of file Headers.cpp.

## ◆ collectIWYUHeaderMaps()

std::unique_ptr< CommentHandler > clang::clangd::collectIWYUHeaderMaps | ( | CanonicalIncludes * | Includes | ) |

Returns a CommentHandler that parses pragma comment on include files to determine when we should include a different header from the header that directly defines a symbol.

Mappinps are registered with `Includes`.

Currently it only supports IWYU private pragma: https://github.com/include-what-you-use/include-what-you-use/blob/master/docs/IWYUPragmas.md#iwyu-pragma-private

Definition at line 63 of file CanonicalIncludes.cpp.

## ◆ collectWords()

llvm::StringSet clang::clangd::collectWords | ( | llvm::StringRef | Content | ) |

Collects words from the source code.

Unlike collectIdentifiers:

- also finds text in comments:
- splits text into words
- drops stopwords like "get" and "for"

Definition at line 949 of file SourceCode.cpp.

References calculateRoles().

## ◆ computeScope()

static SymbolRelevanceSignals::AccessibleScope clang::clangd::computeScope | ( | const NamedDecl * | D | ) |
| static

Definition at line 261 of file Quality.cpp.

References clang::clangd::SymbolRelevanceSignals::ClassScope, clang::clangd::SymbolRelevanceSignals::FileScope, clang::clangd::SymbolRelevanceSignals::FunctionScope, and clang::clangd::SymbolRelevanceSignals::GlobalScope.

Referenced by clang::clangd::SymbolRelevanceSignals::merge().

## ◆ createPathMappingTransport()

std::unique_ptr< Transport > clang::clangd::createPathMappingTransport | ( | std::unique_ptr< Transport > | Transp,
|  | PathMappings | Mappings
| ) |  |

Creates a wrapping transport over `Transp` that applies the `Mappings` to all inbound and outbound LSP messages.

All calls are then delegated to the regular transport (e.g. XPC, JSON).

Definition at line 193 of file PathMapping.cpp.

## ◆ createScopeFileDistance()

static FileDistance clang::clangd::createScopeFileDistance | ( | llvm::ArrayRef< std::string > | QueryScopes | ) |
| static

Definition at line 186 of file FileDistance.cpp.

## ◆ createStaticIndexingAction()

std::unique_ptr< FrontendAction > clang::clangd::createStaticIndexingAction | ( | SymbolCollector::Options | Opts,
|  | std::function< void(SymbolSlab)> | SymbolsCallback,
|  | std::function< void(RefSlab)> | RefsCallback,
|  | std::function< void(RelationSlab)> | RelationsCallback,
|  | std::function< void(IncludeGraph)> | IncludeGraphCallback
| ) |  |

Definition at line 205 of file IndexAction.cpp.

## ◆ currentContext()

static Context& clang::clangd::currentContext | ( |  | ) |
| static

Definition at line 22 of file Context.cpp.

References clang::clangd::Context::empty().

Referenced by clang::clangd::Context::current(), and clang::clangd::Context::swapCurrent().

## ◆ declaredType()

QualType clang::clangd::declaredType | ( | const TypeDecl * | D | ) |

Definition at line 321 of file AST.cpp.

## ◆ declToTypeHierarchyItem()

static llvm::Optional<TypeHierarchyItem> clang::clangd::declToTypeHierarchyItem | ( | ASTContext & | Ctx,
|  | const NamedDecl & | ND
| ) |  |
| static

Definition at line 573 of file XRefs.cpp.

Referenced by getTypeHierarchy().

## ◆ diffHighlightings()

std::vector< LineHighlightings > clang::clangd::diffHighlightings | ( | ArrayRef< HighlightingToken > | New,
|  | ArrayRef< HighlightingToken > | Old
| ) |  |

Return a line-by-line diff between two highlightings.

- if the tokens on a line are the same in both highlightings, this line is omitted.
- if a line exists in New but not in Old, the tokens on this line are emitted.
- if a line does not exist in New but exists in Old, an empty line is emitted (to tell client to clear the previous highlightings on this line).

REQUIRED: Old and New are sorted.

Definition at line 406 of file SemanticHighlighting.cpp.

## ◆ digest() [1/2]

FileDigest clang::clangd::digest | ( | StringRef | Content | ) |

## ◆ digest() [2/2]

FileDigest clang::clangd::digest | ( | llvm::StringRef | Content | ) |

Definition at line 675 of file SourceCode.cpp.

## ◆ digestFile()

Optional< FileDigest > clang::clangd::digestFile | ( | const SourceManager & | SM,
|  | FileID | FID
| ) |  |

Definition at line 685 of file SourceCode.cpp.

## ◆ doPathMapping()

llvm::Optional< std::string > clang::clangd::doPathMapping | ( | llvm::StringRef | S,
|  | PathMapping::Direction | Dir,
|  | const PathMappings & | Mappings
| ) |  |

Returns a modified `S` with the first matching path in `Mappings` substituted, if applicable.

Definition at line 21 of file PathMapping.cpp.

## ◆ dumpAST()

void clang::clangd::dumpAST | ( | ParsedAST & | AST,
|  | llvm::raw_ostream & | OS
| ) |  |

For testing/debugging purposes.

Note that this method deserializes all unserialized Decls, so use with care.

Definition at line 213 of file ParsedAST.cpp.

Referenced by clang::clangd::ParsedAST::getTokens().

## ◆ elog()

template<typename... Ts>

void clang::clangd::elog | ( | const char * | Fmt,
|  | Ts &&... | Vals
| ) |  |

Definition at line 56 of file Logger.h.

References clang::clangd::Logger::Error, and clang::clangd::detail::log().

Referenced by clang::clangd::URIForFile::canonicalize(), filenameWithoutExtension(), clang::clangd::TUScheduler::getContents(), loadIndex(), clang::clangd::TUScheduler::remove(), and signatureHelp().

## ◆ encodeFloat()

static uint32_t clang::clangd::encodeFloat | ( | float | F | ) |
| static

Definition at line 469 of file Quality.cpp.

## ◆ evaluateSymbolAndRelevance()

float clang::clangd::evaluateSymbolAndRelevance | ( | float | SymbolQuality,
|  | float | SymbolRelevance
| ) |  |

Combine symbol quality and relevance into a single score.

Definition at line 463 of file Quality.cpp.

## ◆ explicitReferenceTargets() [1/2]

llvm::SmallVector<const NamedDecl *, 1> clang::clangd::explicitReferenceTargets | ( | ast_type_traits::DynTypedNode | N,
|  | DeclRelationSet | Mask
| ) |  |

Find declarations explicitly referenced in the source code defined by `N`.

For templates, will prefer to return a template instantiation whenever possible. However, can also return a template pattern if the specialization cannot be picked, e.g. in dependent code or when there is no corresponding Decl for a template instantitation, e.g. for templated using decls: template <class t>=""> using Ptr = T*; Ptr<int> x; ^~~ there is no Decl for 'Ptr<int>', so we return the template pattern. `Mask` should not contain TemplatePattern or TemplateInstantiation.

## ◆ explicitReferenceTargets() [2/2]

llvm::SmallVector<const NamedDecl *, 1> clang::clangd::explicitReferenceTargets | ( | DynTypedNode | N,
|  | DeclRelationSet | Mask
| ) |  |

Definition at line 519 of file FindTarget.cpp.

References allTargetDecls(), Decl, getQualifierLoc(), Refs, TemplateInstantiation, TemplatePattern, and Underlying.

## ◆ extractUnresolvedNameCheaply()

llvm::Optional<CheapUnresolvedName> clang::clangd::extractUnresolvedNameCheaply | ( | const SourceManager & | SM,
|  | const DeclarationNameInfo & | Unresolved,
|  | CXXScopeSpec * | SS,
|  | const LangOptions & | LangOpts,
|  | bool | UnresolvedIsSpecifier
| ) |  |

Definition at line 231 of file clangd/IncludeFixer.cpp.

Referenced by clang::clangd::IncludeFixer::UnresolvedNameRecorder::CorrectTypo().

## ◆ filenameWithoutExtension()

static llvm::StringRef clang::clangd::filenameWithoutExtension | ( | llvm::StringRef | Path | ) |
| static

Definition at line 188 of file Background.cpp.

References elog(), Error, FileName, and clang::clangd::BackgroundQueue::Task::QueuePri.

Referenced by clang::clangd::BackgroundIndex::boostRelated().

## ◆ fillNonLocationData()

static void clang::clangd::fillNonLocationData | ( | DiagnosticsEngine::Level | DiagLevel,
|  | const clang::Diagnostic & | Info,
|  | clangd::DiagBase & | D
| ) |  |
| static

Fills `D` with all information, except the location-related bits.

Also note that ID and Name are not part of clangd::DiagBase and should be set elsewhere.

Definition at line 497 of file Diagnostics.cpp.

References clang::clangd::DiagBase::Category, clang::clangd::DiagBase::Message, clang::tidy::modernize::Message, and clang::clangd::DiagBase::Severity.

Referenced by clang::clangd::StoreDiags::HandleDiagnostic().

## ◆ fillSubTypes()

static void clang::clangd::fillSubTypes | ( | const SymbolID & | ID,
|  | std::vector< TypeHierarchyItem > & | SubTypes,
|  | const SymbolIndex * | Index,
|  | int | Levels,
|  | PathRef | TUPath
| ) |  |
| static

Definition at line 643 of file XRefs.cpp.

## ◆ fillSuperTypes()

static void clang::clangd::fillSuperTypes | ( | const CXXRecordDecl & | CXXRD,
|  | ASTContext & | ASTCtx,
|  | std::vector< TypeHierarchyItem > & | SuperTypes,
|  | RecursionProtectionSet & | RPSet
| ) |  |
| static

Definition at line 663 of file XRefs.cpp.

## ◆ findDecl() [1/2]

const NamedDecl & clang::clangd::findDecl | ( | ParsedAST & | AST,
|  | llvm::StringRef | QName
| ) |  |

Definition at line 118 of file TestTU.cpp.

References Ctx, clang::clangd::ParsedAST::getASTContext(), and Name.

Referenced by findUnqualifiedDecl().

## ◆ findDecl() [2/2]

const NamedDecl & clang::clangd::findDecl | ( | ParsedAST & | AST,
|  | std::function< bool(const NamedDecl &)> | Filter
| ) |  |

Definition at line 139 of file TestTU.cpp.

## ◆ findDocumentHighlights()

std::vector< DocumentHighlight > clang::clangd::findDocumentHighlights | ( | ParsedAST & | AST,
|  | Position | Pos
| ) |  |

Returns highlights for all usages of a symbol at `Pos`.

Definition at line 390 of file XRefs.cpp.

Referenced by clang::clangd::ClangdServer::findDocumentHighlights().

## ◆ findExplicitReferences() [1/3]

void clang::clangd::findExplicitReferences | ( | const Stmt * | S,
|  | llvm::function_ref< void(ReferenceLoc)> | Out
| ) |  |

Recursively traverse `S` and report all references explicitly written in the code.

The main use-case is refactorings that need to process all references in some subrange of the file and apply simple edits, e.g. add qualifiers. FIXME: currently this does not report references to overloaded operators. FIXME: extend to report location information about declaration names too.

Definition at line 867 of file FindTarget.cpp.

Referenced by getNonLocalDeclRefs(), and getSemanticHighlightings().

## ◆ findExplicitReferences() [2/3]

void clang::clangd::findExplicitReferences | ( | const Decl * | D,
|  | llvm::function_ref< void(ReferenceLoc)> | Out
| ) |  |

Definition at line 872 of file FindTarget.cpp.

## ◆ findExplicitReferences() [3/3]

void clang::clangd::findExplicitReferences | ( | const ASTContext & | AST,
|  | llvm::function_ref< void(ReferenceLoc)> | Out
| ) |  |

Definition at line 877 of file FindTarget.cpp.

## ◆ findRecordTypeAt()

const CXXRecordDecl * clang::clangd::findRecordTypeAt | ( | ParsedAST & | AST,
|  | Position | Pos
| ) |  |

Find the record type references at `Pos`.

Definition at line 692 of file XRefs.cpp.

Referenced by getTypeHierarchy().

## ◆ findReferences()

ReferencesResult clang::clangd::findReferences | ( | ParsedAST & | AST,
|  | Position | Pos,
|  | uint32_t | Limit,
|  | const SymbolIndex * | Index = `nullptr`
| ) |  |

Returns references of the symbol at a specified `Pos`.

`Limit` limits the number of results returned (0 means no limit).

Definition at line 423 of file XRefs.cpp.

References Results.

Referenced by clang::clangd::ClangdServer::findReferences().

## ◆ findSymbol()

const Symbol & clang::clangd::findSymbol | ( | const SymbolSlab & | Slab,
|  | llvm::StringRef | QName
| ) |  |

Definition at line 97 of file TestTU.cpp.

## ◆ findUnqualifiedDecl()

const NamedDecl & clang::clangd::findUnqualifiedDecl | ( | ParsedAST & | AST,
|  | llvm::StringRef | Name
| ) |  |

Definition at line 159 of file TestTU.cpp.

References findDecl().

## ◆ flattenSymbolHierarchy()

static std::vector<SymbolInformation> clang::clangd::flattenSymbolHierarchy | ( | llvm::ArrayRef< DocumentSymbol > | Symbols,
|  | const URIForFile & | FileURI
| ) |  |
| static

The functions constructs a flattened view of the DocumentSymbol hierarchy.

Used by the clients that do not support the hierarchical view.

Definition at line 859 of file ClangdLSPServer.cpp.

References clang::clangd::DocumentSymbol::children, clang::clangd::SymbolInformation::containerName, clang::clangd::URIForFile::file(), clang::clangd::DocumentSymbol::kind, clang::clangd::SymbolInformation::kind, clang::clangd::SymbolInformation::location, clang::clangd::DocumentSymbol::name, clang::clangd::SymbolInformation::name, clang::clangd::Location::range, clang::clangd::DocumentSymbol::range, Results, Server, clang::clangd::DocumentSymbolParams::textDocument, clang::clangd::TextDocumentIdentifier::uri, and clang::clangd::Location::uri.

## ◆ formatDocumentation()

std::string clang::clangd::formatDocumentation | ( | const CodeCompletionString & | CCS,
|  | llvm::StringRef | DocComment
| ) |  |

Assembles formatted documentation for a completion result.

This includes documentation comments and other relevant information like annotations.

Parameters

  DocComment | is a documentation comment for the original declaration, it should be obtained via getDocComment or getParameterDocComment.

Definition at line 208 of file CodeCompletionStrings.cpp.

## ◆ formatIncremental()

std::vector< tooling::Replacement > clang::clangd::formatIncremental | ( | llvm::StringRef | Code,
|  | unsigned | Cursor,
|  | llvm::StringRef | InsertedText,
|  | format::FormatStyle | Style
| ) |  |

Applies limited formatting around new `InsertedText`.

The `Code` already contains the updated text before `Cursor`, and may have had additional / characters (such as indentation) inserted by the editor.

Example breaking a line (^ is the cursor): === before newline is typed === if(1){^} === after newline is typed and editor indents === if(1){ ^} === after formatIncremental(InsertedText="\n") === if (1) { ^ }

We return sorted vector<tooling::Replacement>, not tooling::Replacements! We may insert text both before and after the cursor. tooling::Replacements would merge these, and thus lose information about cursor position.

Definition at line 246 of file Format.cpp.

References Incremental, and Range.

## ◆ fromJSON() [1/51]

bool clang::clangd::fromJSON | ( | const llvm::json::Value & | Parameters,
|  | FuzzyFindRequest & | Request
| ) |  |

Definition at line 34 of file Index.cpp.

Referenced by clang::clangd::Range::contains(), clang::clangd::FuzzyFindRequest::operator!=(), clang::clangd::LSPDiagnosticCompare::operator()(), and operator==().

## ◆ fromJSON() [2/51]

bool clang::clangd::fromJSON | ( | const llvm::json::Value & | E,
|  | URIForFile & | R
| ) |  |

Definition at line 53 of file Protocol.cpp.

## ◆ fromJSON() [3/51]

bool clang::clangd::fromJSON | ( | const llvm::json::Value & | Params,
|  | TextDocumentIdentifier & | R
| ) |  |

Definition at line 87 of file Protocol.cpp.

## ◆ fromJSON() [4/51]

bool clang::clangd::fromJSON | ( | const llvm::json::Value & | Params,
|  | Position & | R
| ) |  |

Definition at line 92 of file Protocol.cpp.

## ◆ fromJSON() [5/51]

bool clang::clangd::fromJSON | ( | const llvm::json::Value & | Params,
|  | Range & | R
| ) |  |

Definition at line 108 of file Protocol.cpp.

## ◆ fromJSON() [6/51]

bool clang::clangd::fromJSON | ( | const llvm::json::Value & | Params,
|  | TextDocumentItem & | R
| ) |  |

Definition at line 135 of file Protocol.cpp.

## ◆ fromJSON() [7/51]

bool clang::clangd::fromJSON | ( | const llvm::json::Value & | Params,
|  | TextEdit & | R
| ) |  |

Definition at line 141 of file Protocol.cpp.

## ◆ fromJSON() [8/51]

bool clang::clangd::fromJSON | ( | const llvm::json::Value & | E,
|  | TraceLevel & | Out
| ) |  |

Definition at line 159 of file Protocol.cpp.

## ◆ fromJSON() [9/51]

bool clang::clangd::fromJSON | ( | const llvm::json::Value & | E,
|  | SymbolKind & | Out
| ) |  |

Definition at line 175 of file Protocol.cpp.

## ◆ fromJSON() [10/51]

bool clang::clangd::fromJSON | ( | const llvm::json::Value & | E,
|  | SymbolKindBitset & | Out
| ) |  |

Definition at line 186 of file Protocol.cpp.

## ◆ fromJSON() [11/51]

bool clang::clangd::fromJSON | ( | const llvm::json::Value & | ,
|  | NoParams & |
| ) |  |
| inline

Definition at line 241 of file Protocol.h.

## ◆ fromJSON() [12/51]

bool clang::clangd::fromJSON | ( | const llvm::json::Value & | Params,
|  | ClientCapabilities & | R
| ) |  |

Definition at line 271 of file Protocol.cpp.

## ◆ fromJSON() [13/51]

bool clang::clangd::fromJSON | ( | const llvm::json::Value & | Params,
|  | InitializeParams & | R
| ) |  |

Definition at line 358 of file Protocol.cpp.

## ◆ fromJSON() [14/51]

bool clang::clangd::fromJSON | ( | const llvm::json::Value & | Params,
|  | DidOpenTextDocumentParams & | R
| ) |  |

Definition at line 381 of file Protocol.cpp.

## ◆ fromJSON() [15/51]

bool clang::clangd::fromJSON | ( | const llvm::json::Value & | Params,
|  | DidCloseTextDocumentParams & | R
| ) |  |

Definition at line 386 of file Protocol.cpp.

## ◆ fromJSON() [16/51]

bool clang::clangd::fromJSON | ( | const llvm::json::Value & | Params,
|  | DidChangeTextDocumentParams & | R
| ) |  |

Definition at line 391 of file Protocol.cpp.

## ◆ fromJSON() [17/51]

bool clang::clangd::fromJSON | ( | const llvm::json::Value & | E,
|  | FileChangeType & | Out
| ) |  |

Definition at line 398 of file Protocol.cpp.

## ◆ fromJSON() [18/51]

bool clang::clangd::fromJSON | ( | const llvm::json::Value & | Params,
|  | FileEvent & | R
| ) |  |

Definition at line 409 of file Protocol.cpp.

## ◆ fromJSON() [19/51]

bool clang::clangd::fromJSON | ( | const llvm::json::Value & | Params,
|  | DidChangeWatchedFilesParams & | R
| ) |  |

Definition at line 414 of file Protocol.cpp.

## ◆ fromJSON() [20/51]

bool clang::clangd::fromJSON | ( | const llvm::json::Value & | Params,
|  | TextDocumentContentChangeEvent & | R
| ) |  |

Definition at line 419 of file Protocol.cpp.

## ◆ fromJSON() [21/51]

bool clang::clangd::fromJSON | ( | const llvm::json::Value & | Params,
|  | DocumentRangeFormattingParams & | R
| ) |  |

Definition at line 426 of file Protocol.cpp.

## ◆ fromJSON() [22/51]

bool clang::clangd::fromJSON | ( | const llvm::json::Value & | Params,
|  | DocumentOnTypeFormattingParams & | R
| ) |  |

Definition at line 432 of file Protocol.cpp.

## ◆ fromJSON() [23/51]

bool clang::clangd::fromJSON | ( | const llvm::json::Value & | Params,
|  | DocumentFormattingParams & | R
| ) |  |

Definition at line 439 of file Protocol.cpp.

## ◆ fromJSON() [24/51]

bool clang::clangd::fromJSON | ( | const llvm::json::Value & | Params,
|  | DocumentSymbolParams & | R
| ) |  |

Definition at line 444 of file Protocol.cpp.

## ◆ fromJSON() [25/51]

bool clang::clangd::fromJSON | ( | const llvm::json::Value & | Params,
|  | Diagnostic & | R
| ) |  |

Definition at line 475 of file Protocol.cpp.

## ◆ fromJSON() [26/51]

bool clang::clangd::fromJSON | ( | const llvm::json::Value & | Params,
|  | CodeActionContext & | R
| ) |  |

Definition at line 486 of file Protocol.cpp.

## ◆ fromJSON() [27/51]

bool clang::clangd::fromJSON | ( | const llvm::json::Value & | Params,
|  | CodeActionParams & | R
| ) |  |

Definition at line 513 of file Protocol.cpp.

## ◆ fromJSON() [28/51]

bool clang::clangd::fromJSON | ( | const llvm::json::Value & | Params,
|  | WorkspaceEdit & | R
| ) |  |

Definition at line 519 of file Protocol.cpp.

## ◆ fromJSON() [29/51]

bool clang::clangd::fromJSON | ( | const llvm::json::Value & | Params,
|  | ExecuteCommandParams & | R
| ) |  |

Definition at line 529 of file Protocol.cpp.

## ◆ fromJSON() [30/51]

bool clang::clangd::fromJSON | ( | const llvm::json::Value & | Params,
|  | WorkspaceSymbolParams & | R
| ) |  |

Definition at line 598 of file Protocol.cpp.

## ◆ fromJSON() [31/51]

bool clang::clangd::fromJSON | ( | const llvm::json::Value & | Params,
|  | TweakArgs & | A
| ) |  |

Definition at line 658 of file Protocol.cpp.

## ◆ fromJSON() [32/51]

bool clang::clangd::fromJSON | ( | const llvm::json::Value & | Response,
|  | ApplyWorkspaceEditResponse & | R
| ) |  |

Definition at line 673 of file Protocol.cpp.

## ◆ fromJSON() [33/51]

bool clang::clangd::fromJSON | ( | const llvm::json::Value & | Params,
|  | TextDocumentPositionParams & | R
| ) |  |

Definition at line 682 of file Protocol.cpp.

## ◆ fromJSON() [34/51]

bool clang::clangd::fromJSON | ( | const llvm::json::Value & | Params,
|  | CompletionContext & | R
| ) |  |

Definition at line 688 of file Protocol.cpp.

## ◆ fromJSON() [35/51]

bool clang::clangd::fromJSON | ( | const llvm::json::Value & | Params,
|  | CompletionParams & | R
| ) |  |

Definition at line 703 of file Protocol.cpp.

## ◆ fromJSON() [36/51]

bool clang::clangd::fromJSON | ( | const llvm::json::Value & | V,
|  | MarkupKind & | K
| ) |  |

Definition at line 721 of file Protocol.cpp.

## ◆ fromJSON() [37/51]

bool clang::clangd::fromJSON | ( | const llvm::json::Value & | E,
|  | CompletionItemKind & | Out
| ) |  |

Definition at line 761 of file Protocol.cpp.

## ◆ fromJSON() [38/51]

bool clang::clangd::fromJSON | ( | const llvm::json::Value & | E,
|  | CompletionItemKindBitset & | Out
| ) |  |

Definition at line 794 of file Protocol.cpp.

## ◆ fromJSON() [39/51]

bool clang::clangd::fromJSON | ( | const llvm::json::Value & | Params,
|  | RenameParams & | R
| ) |  |

Definition at line 893 of file Protocol.cpp.

## ◆ fromJSON() [40/51]

bool clang::clangd::fromJSON | ( | const llvm::json::Value & | Params,
|  | DidChangeConfigurationParams & | CCP
| ) |  |

Definition at line 923 of file Protocol.cpp.

## ◆ fromJSON() [41/51]

bool clang::clangd::fromJSON | ( | const llvm::json::Value & | Params,
|  | ClangdCompileCommand & | CDbUpdate
| ) |  |

Definition at line 929 of file Protocol.cpp.

## ◆ fromJSON() [42/51]

bool clang::clangd::fromJSON | ( | const llvm::json::Value & | Params,
|  | ConfigurationSettings & | S
| ) |  |

Definition at line 936 of file Protocol.cpp.

## ◆ fromJSON() [43/51]

bool clang::clangd::fromJSON | ( | const llvm::json::Value & | Params,
|  | InitializationOptions & | Opts
| ) |  |

Definition at line 944 of file Protocol.cpp.

## ◆ fromJSON() [44/51]

bool clang::clangd::fromJSON | ( | const llvm::json::Value & | E,
|  | TypeHierarchyDirection & | Out
| ) |  |

Definition at line 956 of file Protocol.cpp.

## ◆ fromJSON() [45/51]

bool clang::clangd::fromJSON | ( | const llvm::json::Value & | Params,
|  | TypeHierarchyParams & | R
| ) |  |

Definition at line 967 of file Protocol.cpp.

## ◆ fromJSON() [46/51]

bool clang::clangd::fromJSON | ( | const llvm::json::Value & | Params,
|  | TypeHierarchyItem & | I
| ) |  |

Definition at line 999 of file Protocol.cpp.

## ◆ fromJSON() [47/51]

bool clang::clangd::fromJSON | ( | const llvm::json::Value & | Params,
|  | ResolveTypeHierarchyItemParams & | P
| ) |  |

Definition at line 1019 of file Protocol.cpp.

## ◆ fromJSON() [48/51]

bool clang::clangd::fromJSON | ( | const llvm::json::Value & | Params,
|  | ReferenceParams & | R
| ) |  |

Definition at line 1026 of file Protocol.cpp.

## ◆ fromJSON() [49/51]

bool clang::clangd::fromJSON | ( | const llvm::json::Value & | V,
|  | OffsetEncoding & | OE
| ) |  |

Definition at line 1045 of file Protocol.cpp.

## ◆ fromJSON() [50/51]

bool clang::clangd::fromJSON | ( | const llvm::json::Value & | Params,
|  | SelectionRangeParams & | P
| ) |  |

Definition at line 1078 of file Protocol.cpp.

## ◆ fromJSON() [51/51]

bool clang::clangd::fromJSON | ( | const llvm::json::Value & | Params,
|  | DocumentLinkParams & | R
| ) |  |

Definition at line 1092 of file Protocol.cpp.

## ◆ func()

Symbol clang::clangd::func | ( | llvm::StringRef | Name | ) |

Definition at line 60 of file TestIndex.cpp.

References sym().

## ◆ generateNumSymbols()

SymbolSlab clang::clangd::generateNumSymbols | ( | int | Begin,
|  | int | End
| ) |  |

Definition at line 83 of file TestIndex.cpp.

## ◆ generateSymbols()

SymbolSlab clang::clangd::generateSymbols | ( | std::vector< std::string > | QualifiedNames | ) |

Definition at line 76 of file TestIndex.cpp.

References clang::clangd::SymbolSlab::Builder::insert(), QName, and symbol().

## ◆ getBeginningOfIdentifier()

SourceLocation clang::clangd::getBeginningOfIdentifier | ( | const Position & | Pos,
|  | const SourceManager & | SM,
|  | const LangOptions & | LangOpts
| ) |  |

Get the beginning SourceLocation at a specified `Pos` in the main file.

May be invalid if Pos is, or if there's no identifier or operators. The returned position is in the main file, callers may prefer to obtain the macro expansion location.

Definition at line 277 of file SourceCode.cpp.

## ◆ getCanonicalPath()

llvm::Optional< std::string > clang::clangd::getCanonicalPath | ( | const FileEntry * | F,
|  | const SourceManager & | SourceMgr
| ) |  |

Get the canonical path of `F`.

This means:

- Absolute path
- Symlinks resolved
- No "." or ".." component
- No duplicate or trailing directory separator

This function should be used when paths needs to be used outside the component that generate it, so that paths are normalized as much as possible.

Definition at line 622 of file SourceCode.cpp.

Referenced by clang::clangd::StoreDiags::HandleDiagnostic().

## ◆ getCorrespondingHeaderOrSource() [1/2]

llvm::Optional< Path > clang::clangd::getCorrespondingHeaderOrSource | ( | const Path & | OriginalFile,
|  | llvm::IntrusiveRefCntPtr< llvm::vfs::FileSystem > | VFS
| ) |  |

Given a header file, returns the best matching source file, and vice visa.

It only uses the filename heuristics to do the inference.

Definition at line 19 of file HeaderSourceSwitch.cpp.

Referenced by clang::clangd::ClangdServer::switchSourceHeader().

## ◆ getCorrespondingHeaderOrSource() [2/2]

llvm::Optional< Path > clang::clangd::getCorrespondingHeaderOrSource | ( | const Path & | OriginalFile,
|  | ParsedAST & | AST,
|  | const SymbolIndex * | Index
| ) |  |

Given a header file, returns the best matching source file, and vice visa.

The heuristics incorporate with the AST and the index (if provided).

Definition at line 72 of file HeaderSourceSwitch.cpp.

References getIndexableLocalDecls().

## ◆ getDeclComment()

std::string clang::clangd::getDeclComment | ( | const ASTContext & | Ctx,
|  | const NamedDecl & | Decl
| ) |  |

Similar to getDocComment, but returns the comment for a NamedDecl.

Definition at line 73 of file CodeCompletionStrings.cpp.

## ◆ getDeducedType()

llvm::Optional< QualType > clang::clangd::getDeducedType | ( | ASTContext & | ,
|  | SourceLocation | Loc
| ) |  |

Retrieves the deduced type at a given location (auto, decltype).

Retuns None unless Loc starts an auto/decltype token. It will return the underlying type.

Definition at line 418 of file AST.cpp.

## ◆ getDefaultAsyncThreadsCount()

unsigned clang::clangd::getDefaultAsyncThreadsCount | ( |  | ) |

Returns a number of a default async threads to use for TUScheduler.

Returned value is always >= 1 (i.e. will not cause requests to be processed synchronously).

Definition at line 826 of file TUScheduler.cpp.

## ◆ getDocComment()

std::string clang::clangd::getDocComment | ( | const ASTContext & | Ctx,
|  | const CodeCompletionResult & | Result,
|  | bool | CommentsFromHeaders
| ) |  |

Gets a minimally formatted documentation comment of `Result`, with comment markers stripped.

See clang::RawComment::getFormattedText() for the detailed explanation of how the comment text is transformed. Returns empty string when no comment is available. If `CommentsFromHeaders` parameter is set, only comments from the main file will be returned. It is used to workaround crashes when parsing comments in the stale headers, coming from completion preamble.

Definition at line 61 of file CodeCompletionStrings.cpp.

## ◆ getDocumentLinks()

std::vector< DocumentLink > clang::clangd::getDocumentLinks | ( | ParsedAST & | AST | ) |

Get all document links.

Definition at line 170 of file XRefs.cpp.

Referenced by clang::clangd::ClangdServer::documentLinks().

## ◆ getDocumentSymbols()

llvm::Expected< std::vector< DocumentSymbol > > clang::clangd::getDocumentSymbols | ( | ParsedAST & | AST | ) |

Retrieves the symbols contained in the "main file" section of an AST in the same order that they appear.

Definition at line 269 of file FindSymbols.cpp.

Referenced by clang::clangd::ClangdServer::documentSymbols().

## ◆ getEligiblePoints()

EligibleRegion clang::clangd::getEligiblePoints | ( | llvm::StringRef | Code,
|  | llvm::StringRef | FullyQualifiedName,
|  | const format::FormatStyle & | Style
| ) |  |

Returns most eligible region to insert a definition for `FullyQualifiedName` in the `Code`.

Pseudo parses under the hood to determine namespace decls and possible insertion points. Choses the region that matches the longest prefix of `FullyQualifiedName`. Returns EOF if there are no shared namespaces. `FullyQualifiedName` should not contain anonymous namespaces.

Definition at line 1065 of file SourceCode.cpp.

## ◆ getExpansionTokenRangeInSameFile()

static SourceRange clang::clangd::getExpansionTokenRangeInSameFile | ( | SourceLocation | Loc,
|  | const SourceManager & | SM,
|  | const LangOptions & | LangOpts
| ) |  |
| static

Definition at line 489 of file SourceCode.cpp.

## ◆ getFormatStyleForFile()

format::FormatStyle clang::clangd::getFormatStyleForFile | ( | llvm::StringRef | File,
|  | llvm::StringRef | Content,
|  | llvm::vfs::FileSystem * | FS
| ) |  |

Choose the clang-format style we should apply to a certain file.

This will usually use FS to look for .clang-format directories. FIXME: should we be caching the .clang-format file search? This uses format::DefaultFormatStyle and format::DefaultFallbackStyle, though the latter may have been overridden in main()!

Definition at line 693 of file SourceCode.cpp.

## ◆ getHover()

llvm::Optional< HoverInfo > clang::clangd::getHover | ( | ParsedAST & | AST,
|  | Position | Pos,
|  | format::FormatStyle | Style,
|  | const SymbolIndex * | Index
| ) |  |

Get the hover information when hovering at `Pos`.

Definition at line 483 of file Hover.cpp.

Referenced by operator==().

## ◆ getIndexableLocalDecls()

std::vector< const Decl * > clang::clangd::getIndexableLocalDecls | ( | ParsedAST & | AST | ) |

Returns all indexable decls that are present in the main file of the AST.

Exposed for unittests.

Definition at line 127 of file HeaderSourceSwitch.cpp.

References Decl, clang::clangd::ParsedAST::getLocalTopLevelDecls(), Results, and clang::clangd::SymbolCollector::shouldCollectSymbol().

Referenced by getCorrespondingHeaderOrSource().

## ◆ getLocForTokenBegin()

static SourceLocation clang::clangd::getLocForTokenBegin | ( | SourceLocation | EndLoc,
|  | const SourceManager & | SM,
|  | const LangOptions & | LangOpts
| ) |  |
| static

Definition at line 421 of file SourceCode.cpp.

## ◆ getLocForTokenEnd()

static SourceLocation clang::clangd::getLocForTokenEnd | ( | SourceLocation | BeginLoc,
|  | const SourceManager & | SM,
|  | const LangOptions & | LangOpts
| ) |  |
| static

Definition at line 413 of file SourceCode.cpp.

## ◆ getMappedRanges()

llvm::Optional< std::vector< Range > > clang::clangd::getMappedRanges | ( | ArrayRef< Range > | Indexed,
|  | ArrayRef< Range > | Lexed
| ) |  |

Calculates the lexed occurrences that the given indexed occurrences map to.

Returns None if we don't find a mapping.

Exposed for testing only.

REQUIRED: Indexed and Lexed are sorted.

Definition at line 594 of file Rename.cpp.

References None, renameRangeAdjustmentCost(), and vlog().

## ◆ getNonLocalDeclRefs()

llvm::DenseSet< const Decl * > clang::clangd::getNonLocalDeclRefs | ( | ParsedAST & | AST,
|  | const FunctionDecl * | FD
| ) |  |

Returns all decls that are referenced in the `FD` except local symbols.

Definition at line 826 of file XRefs.cpp.

References Decl, findExplicitReferences(), and clang::clangd::ReferenceLoc::Targets.

## ◆ getQualification() [1/2]

std::string clang::clangd::getQualification | ( | ASTContext & | Context,
|  | const DeclContext * | DestContext,
|  | SourceLocation | InsertionPoint,
|  | const NamedDecl * | ND
| ) |  |

Gets the nested name specifier necessary for spelling `ND` in `DestContext`, at `InsertionPoint`.

It selects the shortest suffix of `ND` such that it is visible in `DestContext`. Returns an empty string if no qualification is necessary. For example, if you want to qualify clang::clangd::bar::foo in clang::clangd::x, this function will return bar. Note that the result might be sub-optimal for classes, e.g. when the `ND` is a member of the base class.

This version considers all the using namespace directives before `InsertionPoint`. i.e, if you have `using namespace clang::clangd::bar`, this function will return an empty string for the example above since no qualification is necessary in that case. FIXME: Also take using directives and namespace aliases inside function body into account.

Definition at line 437 of file AST.cpp.

References Namespace.

Referenced by getQualification().

## ◆ getQualification() [2/2]

std::string clang::clangd::getQualification | ( | ASTContext & | Context,
|  | const DeclContext * | DestContext,
|  | const NamedDecl * | ND,
|  | llvm::ArrayRef< std::string > | VisibleNamespaces
| ) |  |

This function uses the `VisibleNamespaces` to figure out if a shorter qualification is sufficient for `ND`, and ignores any using namespace directives.

It can be useful if there's no AST for the DestContext, but some pseudo-parsing is done. i.e. if `ND` is ns1::ns2::X and `DestContext` is ns1::, users can provide `ns2::` as visible to change the result to be empty. Elements in VisibleNamespaces should be in the form: `ns::`, with trailing "::". Note that this is just textual and might be incorrect. e.g. when there are two namespaces ns1::a and ns2::a, the function will early exit if "a::" is present in `VisibleNamespaces`, no matter whether it is from ns1:: or ns2::

Definition at line 456 of file AST.cpp.

References getQualification(), and Namespace.

## ◆ getQualifiedName()

std::string clang::clangd::getQualifiedName | ( | const Symbol & | Sym | ) |

Definition at line 90 of file TestIndex.cpp.

References clang::clangd::Symbol::Name, clang::clangd::Symbol::Scope, and clang::clangd::Symbol::TemplateSpecializationArgs.

Referenced by lookup().

## ◆ getQualifierLoc()

NestedNameSpecifierLoc clang::clangd::getQualifierLoc | ( | const NamedDecl & | ND | ) |

Returns a nested name specifier loc of `ND` if it was present in the source, e.g.

void ns::something::foo() -> returns 'ns::something' void foo() -> returns null

Definition at line 188 of file AST.cpp.

Referenced by explicitReferenceTargets().

## ◆ getQueryDriverDatabase()

std::unique_ptr< GlobalCompilationDatabase > clang::clangd::getQueryDriverDatabase | ( | llvm::ArrayRef< std::string > | QueryDriverGlobs,
|  | std::unique_ptr< GlobalCompilationDatabase > | Base
| ) |  |

Extracts system include search path from drivers matching QueryDriverGlobs and adds them to the compile flags.

Base may not be nullptr. Returns Base when `QueryDriverGlobs` is empty.

Definition at line 275 of file QueryDriverDatabase.cpp.

## ◆ getRankedIncludes()

llvm::SmallVector< llvm::StringRef, 1 > clang::clangd::getRankedIncludes | ( | const Symbol & | Sym | ) |

Definition at line 97 of file Headers.cpp.

## ◆ getRefs()

RefSlab clang::clangd::getRefs | ( | const SymbolIndex & | Index,
|  | SymbolID | ID
| ) |  |

Definition at line 139 of file SyncAPI.cpp.

## ◆ getReturnType()

std::string clang::clangd::getReturnType | ( | const CodeCompletionString & | CCS | ) |

Gets detail to be used as the detail field in an LSP completion item.

This is usually the return type of a function.

Definition at line 238 of file CodeCompletionStrings.cpp.

## ◆ getSemanticHighlightings()

std::vector< HighlightingToken > clang::clangd::getSemanticHighlightings | ( | ParsedAST & | AST | ) |

Definition at line 339 of file SemanticHighlighting.cpp.

References Builder, findExplicitReferences(), clang::clangd::ParsedAST::getASTContext(), clang::clangd::ParsedAST::getMacros(), clang::clangd::ParsedAST::getSourceManager(), Macro, clang::clangd::MainFileMacros::MacroRefs, clang::clangd::ReferenceLoc::NameLoc, and clang::clangd::MainFileMacros::UnknownMacros.

## ◆ getSemanticRanges()

llvm::Expected< std::vector< Range > > clang::clangd::getSemanticRanges | ( | ParsedAST & | AST,
|  | Position | Pos
| ) |  |

Returns the list of all interesting ranges around the Position `Pos`.

The interesting ranges corresponds to the AST nodes in the SelectionTree containing `Pos`. Any range in the result strictly contains all the previous ranges in the result. front() is the inner most range. back() is the outermost range.

Definition at line 29 of file SemanticSelection.cpp.

Referenced by clang::clangd::ClangdServer::semanticRanges().

## ◆ getSeverity()

int clang::clangd::getSeverity | ( | DiagnosticsEngine::Level | L | ) |

Convert from clang diagnostic level to LSP severity.

Definition at line 400 of file Diagnostics.cpp.

References Error, and Warning.

Referenced by toLSPDiags().

## ◆ getSignature()

void clang::clangd::getSignature | ( | const CodeCompletionString & | CCS,
|  | std::string * | Signature,
|  | std::string * | Snippet,
|  | std::string * | RequiredQualifiers = `nullptr`,
|  | bool | CompletingPattern = `false`
| ) |  |

Formats the signature for an item, as a display string and snippet.

e.g. for const_reference std::vector<T>::at(size_type) const, this returns: *Signature = "(size_type) const" *Snippet = "(${1:size_type})" If set, RequiredQualifiers is the text that must be typed before the name. e.g "Base::" when calling a base class member function that's hidden.

When `CompletingPattern` is true, the last placeholder will be of the form ${0:…}, indicating the cursor should stay there.

Definition at line 92 of file CodeCompletionStrings.cpp.

## ◆ getSymbolID() [1/2]

llvm::Optional< SymbolID > clang::clangd::getSymbolID | ( | const Decl * | D | ) |

Gets the symbol ID for a declaration, if possible.

Definition at line 286 of file AST.cpp.

## ◆ getSymbolID() [2/2]

llvm::Optional< SymbolID > clang::clangd::getSymbolID | ( | const llvm::StringRef | MacroName,
|  | const MacroInfo * | MI,
|  | const SourceManager & | SM
| ) |  |

Gets the symbol ID for a macro, if possible.

Currently, this is an encoded USR of the macro, which incorporates macro locations (e.g. file name, offset in file). FIXME: the USR semantics might not be stable enough as the ID for index macro (e.g. a change in definition offset can result in a different USR). We could change these semantics in the future by reimplementing this funcure (e.g. avoid USR for macros).

Definition at line 293 of file AST.cpp.

## ◆ getSymbolInfo()

std::vector< SymbolDetails > clang::clangd::getSymbolInfo | ( | ParsedAST & | AST,
|  | Position | Pos
| ) |  |

Get info about symbols at `Pos`.

Definition at line 519 of file XRefs.cpp.

Referenced by clang::clangd::ClangdServer::symbolInfo().

## ◆ getToggle()

static Location* clang::clangd::getToggle | ( | const TextDocumentPositionParams & | Point,
|  | LocatedSymbol & | Sym
| ) |  |
| static

Definition at line 1010 of file ClangdLSPServer.cpp.

References clang::clangd::Range::contains(), clang::clangd::LocatedSymbol::Definition, clang::clangd::URIForFile::file(), clang::clangd::TextDocumentPositionParams::position, clang::clangd::LocatedSymbol::PreferredDeclaration, clang::clangd::Location::range, clang::clangd::TextDocumentPositionParams::textDocument, clang::clangd::TextDocumentIdentifier::uri, and clang::clangd::Location::uri.

## ◆ getTokenFileRange()

static SourceRange clang::clangd::getTokenFileRange | ( | SourceLocation | Loc,
|  | const SourceManager & | SM,
|  | const LangOptions & | LangOpts
| ) |  |
| static

Definition at line 506 of file SourceCode.cpp.

## ◆ getTokenLengthAtLoc()

static unsigned clang::clangd::getTokenLengthAtLoc | ( | SourceLocation | Loc,
|  | const SourceManager & | SM,
|  | const LangOptions & | LangOpts
| ) |  |
| static

Definition at line 397 of file SourceCode.cpp.

## ◆ getTokenRange()

llvm::Optional< Range > clang::clangd::getTokenRange | ( | const SourceManager & | SM,
|  | const LangOptions & | LangOpts,
|  | SourceLocation | TokLoc
| ) |  |

Returns the taken range at `TokLoc`.

Definition at line 227 of file SourceCode.cpp.

Referenced by clang::tidy::modernize::RawStringLiteralCheck::check().

## ◆ getTypeHierarchy()

llvm::Optional< TypeHierarchyItem > clang::clangd::getTypeHierarchy | ( | ParsedAST & | AST,
|  | Position | Pos,
|  | int | ResolveLevels,
|  | TypeHierarchyDirection | Direction,
|  | const SymbolIndex * | Index,
|  | PathRef | TUPath
| ) |  |

Get type hierarchy information at `Pos`.

Definition at line 768 of file XRefs.cpp.

References declToTypeHierarchyItem(), findRecordTypeAt(), clang::clangd::ParsedAST::getASTContext(), and None.

Referenced by clang::clangd::ClangdServer::typeHierarchy().

## ◆ getWorkspaceSymbols()

llvm::Expected< std::vector< SymbolInformation > > clang::clangd::getWorkspaceSymbols | ( | llvm::StringRef | Query,
|  | int | Limit,
|  | const SymbolIndex *const | Index,
|  | llvm::StringRef | HintPath
| ) |  |

Searches for the symbols matching `Query`.

The syntax of `Query` can be the non-qualified name or fully qualified of a symbol. For example, "vector" will match the symbol std::vector and "std::vector" would also match it. Direct children of scopes (namepaces, etc) can be listed with a trailing "::". For example, "std::" will list all children of the std namespace and "::" alone will list all children of the global namespace. `Limit` limits the number of results returned (0 means no limit). `HintPath` This is used when resolving URIs. If empty, URI resolution can fail if a hint path is required for the scheme of a specific URI.

Definition at line 67 of file FindSymbols.cpp.

## ◆ guessCompletionPrefix()

CompletionPrefix clang::clangd::guessCompletionPrefix | ( | llvm::StringRef | Content,
|  | unsigned | Offset
| ) |  |

Definition at line 1708 of file CodeComplete.cpp.

## ◆ halfOpenRangeContains()

bool clang::clangd::halfOpenRangeContains | ( | const SourceManager & | Mgr,
|  | SourceRange | R,
|  | SourceLocation | L
| ) |  |

Returns true iff `L` is contained in `R`.

EXPECTS: isValidFileRange(R) == true, L is a file location.

Definition at line 355 of file SourceCode.cpp.

References isValidFileRange().

Referenced by halfOpenRangeTouches().

## ◆ halfOpenRangeTouches()

bool clang::clangd::halfOpenRangeTouches | ( | const SourceManager & | Mgr,
|  | SourceRange | R,
|  | SourceLocation | L
| ) |  |

Returns true iff `L` is contained in `R` or `L` is equal to the end point of `R`.

EXPECTS: isValidFileRange(R) == true, L is a file location.

Definition at line 370 of file SourceCode.cpp.

References halfOpenRangeContains().

## ◆ halfOpenToRange()

Range clang::clangd::halfOpenToRange | ( | const SourceManager & | SM,
|  | CharSourceRange | R
| ) |  |

Definition at line 581 of file SourceCode.cpp.

## ◆ hasDeclInMainFile()

static bool clang::clangd::hasDeclInMainFile | ( | const Decl & | D | ) |
| static

Definition at line 43 of file Quality.cpp.

Referenced by clang::clangd::SymbolRelevanceSignals::merge().

## ◆ hash_value()

llvm::hash_code clang::clangd::hash_value | ( | const SymbolID & | ID | ) |

Definition at line 50 of file SymbolID.cpp.

Referenced by clang::clangd::FileDistance::distance(), clang::clangd::URIDistance::distance(), and llvm::DenseMapInfo< clang::clangd::SymbolID >::getHashValue().

## ◆ HasSubsequence()

template<typename... Args>

PolySubsequenceMatcher<Args...> clang::clangd::HasSubsequence | ( | Args &&... | M | ) |

Definition at line 106 of file clangd/unittests/Matchers.h.

## ◆ hasUsingDeclInMainFile()

static bool clang::clangd::hasUsingDeclInMainFile | ( | const CodeCompletionResult & | R | ) |
| static

Definition at line 52 of file Quality.cpp.

Referenced by clang::clangd::SymbolRelevanceSignals::merge().

## ◆ HasValue()

template<typename InnerMatcher >

OptionalMatcher<InnerMatcher> clang::clangd::HasValue | ( | const InnerMatcher & | inner_matcher | ) |
| inline

Definition at line 193 of file clangd/unittests/Matchers.h.

## ◆ includeHashLoc()

SourceLocation clang::clangd::includeHashLoc | ( | FileID | IncludedFile,
|  | const SourceManager & | SM
| ) |  |

Returns the #include location through which IncludedFIle was loaded.

Where SM.getIncludeLoc() returns the location of the filename, which may be in a macro, includeHashLoc() returns the location of the #.

Definition at line 375 of file SourceCode.cpp.

## ◆ indexHeaderSymbols()

SlabTuple clang::clangd::indexHeaderSymbols | ( | ASTContext & | AST,
|  | std::shared_ptr< Preprocessor > | PP,
|  | const CanonicalIncludes & | Includes
| ) |  |

Index declarations from `AST` and macros from `PP` that are declared in included headers.

Definition at line 93 of file FileIndex.cpp.

Referenced by clang::clangd::TestTU::headerSymbols().

## ◆ indexMainDecls()

SlabTuple clang::clangd::indexMainDecls | ( | ParsedAST & | AST | ) |

Retrieves symbols and refs of local top level decls in `AST` (i.e.

`AST.getLocalTopLevelDecls()`). Exposed to assist in unit tests.

Definition at line 86 of file FileIndex.cpp.

References clang::clangd::ParsedAST::getASTContext(), clang::clangd::ParsedAST::getCanonicalIncludes(), clang::clangd::ParsedAST::getLocalTopLevelDecls(), clang::clangd::ParsedAST::getMacros(), clang::clangd::ParsedAST::getPreprocessorPtr(), and indexSymbols().

Referenced by clang::clangd::FileIndex::updateMain().

## ◆ indexSymbolKindToSymbolKind()

SymbolKind clang::clangd::indexSymbolKindToSymbolKind | ( | index::SymbolKind | Kind | ) |

Definition at line 216 of file Protocol.cpp.

References Class, Constructor, Enum, EnumMember, Field, Function, Interface, Method, Module, Namespace, Property, String, Struct, Unknown, and Variable.

Referenced by symbolToTypeHierarchyItem().

## ◆ indexSymbols()

static SlabTuple clang::clangd::indexSymbols | ( | ASTContext & | AST,
|  | std::shared_ptr< Preprocessor > | PP,
|  | llvm::ArrayRef< Decl *> | DeclsToIndex,
|  | const MainFileMacros * | MacroRefsToIndex,
|  | const CanonicalIncludes & | Includes,
|  | bool | IsIndexMainAST
| ) |  |
| static

Definition at line 34 of file FileIndex.cpp.

Referenced by indexMainDecls().

## ◆ isAnonymous()

static bool clang::clangd::isAnonymous | ( | const DeclarationName & | N | ) |
| static

Definition at line 184 of file AST.cpp.

## ◆ isAwful()

static bool clang::clangd::isAwful | ( | int | S | ) |
| static

Definition at line 73 of file FuzzyMatch.cpp.

Referenced by clang::clangd::FuzzyMatcher::match().

## ◆ isCancelled()

bool clang::clangd::isCancelled | ( | const Context & | Ctx = `Context::current()` | ) |

True if the current context is within a cancelable task which was cancelled.

Always false if there is no active cancelable task. This isn't free (context lookup) - don't call it in a tight loop.

Definition at line 26 of file Cancellation.cpp.

References clang::clangd::Context::get().

## ◆ isErrorAboutInclude()

static bool clang::clangd::isErrorAboutInclude | ( | llvm::StringRef | Line | ) |
| static

Definition at line 753 of file SymbolCollector.cpp.

References isIf(), and Line.

## ◆ isExplicitTemplateSpecialization()

bool clang::clangd::isExplicitTemplateSpecialization | ( | const NamedDecl * | D | ) |

Indicates if `D` is an explicit template specialization, e.g.

template <class t>=""> struct vector {}; template <> struct vector<bool> {}; // <– explicit specialization

Note that explicit instantiations are NOT explicit specializations, albeit they look similar. template struct vector<bool>; // <– explicit instantiation, NOT an explicit specialization.

Definition at line 153 of file AST.cpp.

Referenced by clang::find_all_symbols::FindAllSymbols::registerMatchers().

## ◆ isHeaderFile()

bool clang::clangd::isHeaderFile | ( | llvm::StringRef | FileName,
|  | llvm::Optional< LangOptions > | LangOpts = `llvm::None`
| ) |  |

Infers whether this is a header from the FileName and LangOpts (if presents).

Definition at line 1118 of file SourceCode.cpp.

Referenced by clang::clangd::BackgroundIndex::boostRelated().

## ◆ isIf()

static bool clang::clangd::isIf | ( | llvm::StringRef | Line | ) |
| static

Definition at line 745 of file SymbolCollector.cpp.

Referenced by isErrorAboutInclude().

## ◆ isImplementationDetail()

bool clang::clangd::isImplementationDetail | ( | const Decl * | D | ) |

Returns true if the declaration is considered implementation detail based on heuristics.

For example, a declaration whose name is not explicitly spelled in code is considered implementation detail.

Definition at line 157 of file AST.cpp.

References isSpelledInSource().

Referenced by clang::clangd::SymbolQualitySignals::merge().

## ◆ isImplicitTemplateInstantiation()

bool clang::clangd::isImplicitTemplateInstantiation | ( | const NamedDecl * | D | ) |

Indicates if `D` is a template instantiation implicitly generated by the compiler, e.g.

template <class t>=""> struct vector {}; vector<int> v; // 'vector<int>' is an implicit instantiation

Definition at line 149 of file AST.cpp.

## ◆ isIndexedForCodeCompletion()

bool clang::clangd::isIndexedForCodeCompletion | ( | const NamedDecl & | ND,
|  | ASTContext & | ASTCtx
| ) |  |

Definition at line 1774 of file CodeComplete.cpp.

## ◆ isInsideMainFile()

bool clang::clangd::isInsideMainFile | ( | SourceLocation | Loc,
|  | const SourceManager & | SM
| ) |  |

Returns true iff `Loc` is inside the main file.

This function handles file & macro locations. For macro locations, returns iff the macro is being expanded inside the main file.

The function is usually used to check whether a declaration is inside the the main file.

Definition at line 534 of file SourceCode.cpp.

Referenced by clang::clangd::IncludeFixer::UnresolvedNameRecorder::CorrectTypo(), clang::clangd::CollectMainFileMacros::FileChanged(), and clang::clangd::StoreDiags::HandleDiagnostic().

## ◆ isInstanceMember() [1/2]

static bool clang::clangd::isInstanceMember | ( | const NamedDecl * | ND | ) |
| static

Definition at line 159 of file Quality.cpp.

References CM.

Referenced by clang::clangd::SymbolRelevanceSignals::merge().

## ◆ isInstanceMember() [2/2]

static bool clang::clangd::isInstanceMember | ( | const index::SymbolInfo & | D | ) |
| static

Definition at line 169 of file Quality.cpp.

## ◆ isLiteralInclude()

bool clang::clangd::isLiteralInclude | ( | llvm::StringRef | Include | ) |

Returns true if `Include` is literal include like "path" or <path>.

Definition at line 68 of file Headers.cpp.

Referenced by clang::clangd::HeaderFile::valid().

## ◆ isRangeConsecutive()

bool clang::clangd::isRangeConsecutive | ( | const Range & | Left,
|  | const Range & | Right
| ) |  |

Definition at line 670 of file SourceCode.cpp.

References clang::clangd::Position::character, clang::clangd::Range::end, clang::clangd::Position::line, and clang::clangd::Range::start.

## ◆ isReserved()

static bool clang::clangd::isReserved | ( | llvm::StringRef | Name | ) |
| static

Definition at line 37 of file Quality.cpp.

Referenced by clang::clangd::SymbolQualitySignals::merge().

## ◆ isSpelledInSource()

bool clang::clangd::isSpelledInSource | ( | SourceLocation | Loc,
|  | const SourceManager & | SM
| ) |  |

Returns true if the token at Loc is spelled in the source code.

This is not the case for:

- symbols formed via macro concatenation, the spelling location will be "<scratch space>"
- symbols controlled and defined by a compile command-line option `-DName=foo`, the spelling location will be "<command line>".

Definition at line 217 of file SourceCode.cpp.

Referenced by isImplementationDetail().

## ◆ isValidFileRange()

bool clang::clangd::isValidFileRange | ( | const SourceManager & | Mgr,
|  | SourceRange | R
| ) |  |

Returns true iff all of the following conditions hold:

- start and end locations are valid,
- start and end locations are file locations from the same file (i.e. expansion locations are not taken into account).
- start offset <= end offset. FIXME: introduce a type for source range with this invariant.

Definition at line 340 of file SourceCode.cpp.

Referenced by halfOpenRangeContains().

## ◆ iterateCodepoints()

template<typename Callback >

static bool clang::clangd::iterateCodepoints | ( | llvm::StringRef | U8,
|  | const Callback & | CB
| ) |  |
| static

Definition at line 57 of file SourceCode.cpp.

Referenced by lspLength().

## ◆ jsonToXpc() [1/2]

xpc_object_t clang::clangd::jsonToXpc | ( | const llvm::json::Value & | JSON | ) |

## ◆ jsonToXpc() [2/2]

xpc_object_t clang::clangd::jsonToXpc | ( | const json::Value & | JSON | ) |

Definition at line 20 of file Conversion.cpp.

Referenced by main().

## ◆ lex()

static void clang::clangd::lex | ( | llvm::StringRef | Code,
|  | const LangOptions & | LangOpts,
|  | llvm::function_ref< void(const clang::Token &, const SourceManager &SM)> | Action
| ) |  |
| static

Definition at line 716 of file SourceCode.cpp.

Referenced by collectIdentifierRanges().

## ◆ loadIndex()

std::unique_ptr< SymbolIndex > clang::clangd::loadIndex | ( | llvm::StringRef | SymbolFilename,
|  | bool | UseDex
| ) |  |

Definition at line 663 of file Serialization.cpp.

References elog(), Refs, and Symbols.

## ◆ loadIndexShards()

std::vector< LoadedShard > clang::clangd::loadIndexShards | ( | llvm::ArrayRef< Path > | MainFiles,
|  | BackgroundIndexStorage::Factory & | IndexStorageFactory,
|  | const GlobalCompilationDatabase & | CDB
| ) |  |

Loads all shards for the TU `MainFile` from `Storage`.

Definition at line 123 of file BackgroundIndexLoader.cpp.

## ◆ locateMacroAt()

llvm::Optional< DefinedMacro > clang::clangd::locateMacroAt | ( | SourceLocation | Loc,
|  | Preprocessor & | PP
| ) |  |

Gets the macro at a specified `Loc`.

Definition at line 987 of file SourceCode.cpp.

## ◆ locateSymbolAt()

std::vector< LocatedSymbol > clang::clangd::locateSymbolAt | ( | ParsedAST & | AST,
|  | Position | Pos,
|  | const SymbolIndex * | Index = `nullptr`
| ) |  |

Get definition of symbol at a specified `Pos`.

Multiple locations may be returned, corresponding to distinct symbols.

Definition at line 190 of file XRefs.cpp.

Referenced by clang::clangd::ClangdServer::locateSymbolAt().

## ◆ log()

template<typename... Ts>

void clang::clangd::log | ( | const char * | Fmt,
|  | Ts &&... | Vals
| ) |  |

Definition at line 62 of file Logger.h.

References clang::clangd::Logger::Info, and clang::clangd::detail::log().

Referenced by clang::clangd::URIDistance::distance(), clang::clangd::DirectoryBasedGlobalCompilationDatabase::getCompileCommand(), and symbolToTypeHierarchyItem().

## ◆ lookup()

std::vector< std::string > clang::clangd::lookup | ( | const SymbolIndex & | I,
|  | llvm::ArrayRef< SymbolID > | IDs
| ) |  |

Definition at line 106 of file TestIndex.cpp.

References getQualifiedName(), clang::clangd::LookupRequest::IDs, clang::clangd::SymbolIndex::lookup(), and Results.

Referenced by clang::clangd::SwapIndex::SwapIndex().

## ◆ lower()

static char clang::clangd::lower | ( | char | C | ) |
| static

Definition at line 68 of file FuzzyMatch.cpp.

Referenced by calculateRoles(), clang::clangd::FuzzyMatcher::FuzzyMatcher(), and clang::tidy::bugprone::isLikelyTypo().

## ◆ lspEncoding()

static OffsetEncoding clang::clangd::lspEncoding | ( |  | ) |
| static

Definition at line 125 of file SourceCode.cpp.

References clang::clangd::Context::current(), clang::clangd::Context::get(), and UTF16.

Referenced by lspLength(), and positionToOffset().

## ◆ lspLength() [1/2]

size_t clang::clangd::lspLength | ( | StringRef | Code | ) |

## ◆ lspLength() [2/2]

size_t clang::clangd::lspLength | ( | llvm::StringRef | Code | ) |

Definition at line 131 of file SourceCode.cpp.

References iterateCodepoints(), lspEncoding(), UnsupportedEncoding, UTF16, UTF32, and UTF8.

Referenced by offsetToPosition().

## ◆ match()

std::vector< std::string > clang::clangd::match | ( | const SymbolIndex & | I,
|  | const FuzzyFindRequest & | Req,
|  | bool * | Incomplete
| ) |  |

Definition at line 94 of file TestIndex.cpp.

## ◆ MATCHER() [1/4]

clang::clangd::MATCHER | ( | Declared | ,
|  | "" |
| ) |  |

Definition at line 27 of file BackgroundIndexTests.cpp.

## ◆ MATCHER() [2/4]

clang::clangd::MATCHER | ( | Defined | ,
|  | "" |
| ) |  |

Definition at line 30 of file BackgroundIndexTests.cpp.

## ◆ MATCHER() [3/4]

clang::clangd::MATCHER | ( | EmptyIncludeNode | ,
|  | "" |
| ) |  |

Definition at line 37 of file BackgroundIndexTests.cpp.

References clang::clangd::IncludeGraphNode::None.

## ◆ MATCHER() [4/4]

clang::clangd::MATCHER | ( | HadErrors | ,
|  | "" |
| ) |  |

Definition at line 42 of file BackgroundIndexTests.cpp.

References clang::clangd::IncludeGraphNode::HadErrors.

## ◆ MATCHER_P() [1/3]

clang::clangd::MATCHER_P | ( | Named | ,
|  | N | ,
|  | "" |
| ) |  |

Definition at line 26 of file BackgroundIndexTests.cpp.

## ◆ MATCHER_P() [2/3]

clang::clangd::MATCHER_P | ( | FileURI | ,
|  | F | ,
|  | "" |
| ) |  |

Definition at line 31 of file BackgroundIndexTests.cpp.

## ◆ MATCHER_P() [3/3]

clang::clangd::MATCHER_P | ( | NumReferences | ,
|  | N | ,
|  | "" |
| ) |  |

Definition at line 46 of file BackgroundIndexTests.cpp.

## ◆ maybeCaseFoldPath()

static std::string clang::clangd::maybeCaseFoldPath | ( | PathRef | Path | ) |
| static

Definition at line 94 of file GlobalCompilationDatabase.cpp.

Referenced by pathEqual().

## ◆ measureUnits()

static size_t clang::clangd::measureUnits | ( | llvm::StringRef | U8,
|  | int | Units,
|  | OffsetEncoding | Enc,
|  | bool & | Valid
| ) |  |
| static

Definition at line 87 of file SourceCode.cpp.

Referenced by positionToOffset().

## ◆ mergeSymbol()

Symbol clang::clangd::mergeSymbol | ( | const Symbol & | L,
|  | const Symbol & | R
| ) |  |

Definition at line 172 of file Merge.cpp.

References clang::clangd::Symbol::CanonicalDeclaration, clang::clangd::Symbol::CompletionSnippetSuffix, clang::clangd::Symbol::Definition, clang::clangd::Symbol::Documentation, clang::clangd::SymbolLocation::FileURI, clang::clangd::Symbol::Flags, clang::clangd::Symbol::ID, clang::clangd::Symbol::IncludeHeaders, Merge, clang::clangd::Symbol::Origin, prefer(), clang::clangd::Symbol::References, clang::clangd::Symbol::ReturnType, clang::clangd::Symbol::Signature, clang::clangd::Symbol::SymInfo, and clang::clangd::Symbol::Type.

Referenced by clang::clangd::FileSymbols::buildIndex().

## ◆ nameLocation()

SourceLocation clang::clangd::nameLocation | ( | const clang::Decl & | D,
|  | const SourceManager & | SM
| ) |  |

Find the source location of the identifier for `D`.

Transforms macro locations to locations spelled inside files. All code that needs locations of declaration names (e.g. the index) should go through this function.

Definition at line 162 of file AST.cpp.

## ◆ newJSONTransport()

std::unique_ptr< Transport > clang::clangd::newJSONTransport | ( | std::FILE * | In,
|  | llvm::raw_ostream & | Out,
|  | llvm::raw_ostream * | InMirror,
|  | bool | Pretty,
|  | JSONStreamStyle | Style
| ) |  |

Definition at line 302 of file JSONTransport.cpp.

## ◆ newXPCTransport()

std::unique_ptr<Transport> clang::clangd::newXPCTransport | ( |  | ) |

Definition at line 211 of file XPCTransport.cpp.

## ◆ ns()

Symbol clang::clangd::ns | ( | llvm::StringRef | Name | ) |

Definition at line 72 of file TestIndex.cpp.

References sym().

## ◆ offsetToClangLineColumn()

std::pair< size_t, size_t > clang::clangd::offsetToClangLineColumn | ( | llvm::StringRef | Code,
|  | size_t | Offset
| ) |  |

Definition at line 589 of file SourceCode.cpp.

References Lines, and Offset.

## ◆ offsetToPosition()

Position clang::clangd::offsetToPosition | ( | llvm::StringRef | Code,
|  | size_t | Offset
| ) |  |

Turn an offset in Code into a [line, column] pair.

The offset must be in range [0, Code.size()].

Definition at line 188 of file SourceCode.cpp.

References clang::clangd::Position::character, clang::clangd::Position::line, Lines, lspLength(), Offset, and Pos.

Referenced by clang::clangd::Annotations::point(), clang::clangd::Annotations::points(), replacementToEdit(), and toLSPRange().

## ◆ operator &() [1/4]

SymbolOrigin clang::clangd::operator& | ( | SymbolOrigin | A,
|  | SymbolOrigin | B
| ) |  |
| inline

Definition at line 38 of file SymbolOrigin.h.

References operator<<().

## ◆ operator &() [2/4]

RefKind clang::clangd::operator& | ( | RefKind | A,
|  | RefKind | B
| ) |  |
| inline

Definition at line 41 of file Ref.h.

References operator<<().

## ◆ operator &() [3/4]

bool clang::clangd::operator& | ( | IncludeGraphNode::SourceFlag | A,
|  | IncludeGraphNode::SourceFlag | B
| ) |  |
| inline

Definition at line 90 of file Headers.h.

## ◆ operator &() [4/4]

DeclRelationSet clang::clangd::operator& | ( | DeclRelation | L,
|  | DeclRelation | R
| ) |  |
| inline

Definition at line 198 of file FindTarget.h.

## ◆ operator<() [1/5]

bool clang::clangd::operator< | ( | const Ref & | L,
|  | const Ref & | R
| ) |  |
| inline

Definition at line 58 of file Ref.h.

References clang::clangd::Ref::Kind, and clang::clangd::Ref::Location.

Referenced by clang::doc::Index::operator==().

## ◆ operator<() [2/5]

bool clang::clangd::operator< | ( | const SymbolLocation::Position & | L,
|  | const SymbolLocation::Position & | R
| ) |  |
| inline

Definition at line 71 of file SymbolLocation.h.

References clang::clangd::SymbolLocation::Position::column(), and clang::clangd::SymbolLocation::Position::line().

## ◆ operator<() [3/5]

bool clang::clangd::operator< | ( | const SymbolLocation & | L,
|  | const SymbolLocation & | R
| ) |  |
| inline

Definition at line 81 of file SymbolLocation.h.

References clang::clangd::SymbolLocation::End, clang::clangd::SymbolLocation::FileURI, operator<<(), and clang::clangd::SymbolLocation::Start.

## ◆ operator<() [4/5]

bool clang::clangd::operator< | ( | const HighlightingToken & | L,
|  | const HighlightingToken & | R
| ) |  |

Definition at line 466 of file SemanticHighlighting.cpp.

References clang::clangd::HighlightingToken::Kind, and clang::clangd::HighlightingToken::R.

## ◆ operator<() [5/5]

bool clang::clangd::operator< | ( | const CompletionItem & | L,
|  | const CompletionItem & | R
| ) |  |

Definition at line 838 of file Protocol.cpp.

References clang::clangd::CompletionItem::label, and clang::clangd::CompletionItem::sortText.

## ◆ operator<<() [1/41]

llvm::raw_ostream & clang::clangd::operator<< | ( | llvm::raw_ostream & | OS,
|  | SymbolOrigin | O
| ) |  |

Definition at line 14 of file SymbolOrigin.cpp.

## ◆ operator<<() [2/41]

llvm::raw_ostream & clang::clangd::operator<< | ( | llvm::raw_ostream & | OS,
|  | RefKind | K
| ) |  |

Definition at line 14 of file Ref.cpp.

## ◆ operator<<() [3/41]

llvm::raw_ostream & clang::clangd::operator<< | ( | llvm::raw_ostream & | OS,
|  | Symbol::SymbolFlag | F
| ) |  |

Definition at line 14 of file Symbol.cpp.

## ◆ operator<<() [4/41]

llvm::raw_ostream & clang::clangd::operator<< | ( | llvm::raw_ostream & | OS,
|  | const Symbol & | S
| ) |  |

Definition at line 25 of file Symbol.cpp.

## ◆ operator<<() [5/41]

llvm::raw_ostream & clang::clangd::operator<< | ( | llvm::raw_ostream & | OS,
|  | const Ref & | R
| ) |  |

Definition at line 31 of file Ref.cpp.

## ◆ operator<<() [6/41]

llvm::raw_ostream & clang::clangd::operator<< | ( | llvm::raw_ostream & | OS,
|  | const SymbolLocation & | L
| ) |  |

Definition at line 32 of file SymbolLocation.cpp.

## ◆ operator<<() [7/41]

llvm::raw_ostream & clang::clangd::operator<< | ( | llvm::raw_ostream & | OS,
|  | const SymbolID & | ID
| ) |  |

Definition at line 46 of file SymbolID.cpp.

## ◆ operator<<() [8/41]

llvm::raw_ostream& clang::clangd::operator<< | ( | llvm::raw_ostream & | OS,
|  | const URIForFile & | U
| ) |  |

Definition at line 79 of file Protocol.cpp.

## ◆ operator<<() [9/41]

llvm::raw_ostream & clang::clangd::operator<< | ( | llvm::raw_ostream & | OS,
|  | const Position & | P
| ) |  |

Definition at line 104 of file Protocol.cpp.

## ◆ operator<<() [10/41]

llvm::raw_ostream & clang::clangd::operator<< | ( | llvm::raw_ostream & | OS,
|  | const Range & | R
| ) |  |

Definition at line 120 of file Protocol.cpp.

## ◆ operator<<() [11/41]

llvm::raw_ostream & clang::clangd::operator<< | ( | llvm::raw_ostream & | OS,
|  | const Location & | L
| ) |  |

Definition at line 131 of file Protocol.cpp.

## ◆ operator<<() [12/41]

llvm::raw_ostream & clang::clangd::operator<< | ( | llvm::raw_ostream & | OS,
|  | const TextEdit & | TE
| ) |  |

Definition at line 153 of file Protocol.cpp.

## ◆ operator<<() [13/41]

llvm::raw_ostream & clang::clangd::operator<< | ( | llvm::raw_ostream & | OS,
|  | const PathMapping & | M
| ) |  |

Definition at line 165 of file PathMapping.cpp.

## ◆ operator<<() [14/41]

raw_ostream& clang::clangd::operator<< | ( | raw_ostream & | ,
|  | const CodeCompletion & |
| ) |  |

## ◆ operator<<() [15/41]

raw_ostream& clang::clangd::operator<< | ( | raw_ostream & | ,
|  | const CodeCompleteResult & |
| ) |  |

## ◆ operator<<() [16/41]

llvm::raw_ostream & clang::clangd::operator<< | ( | llvm::raw_ostream & | OS,
|  | const Inclusion & | Inc
| ) |  |

Definition at line 228 of file Headers.cpp.

## ◆ operator<<() [17/41]

llvm::raw_ostream & clang::clangd::operator<< | ( | llvm::raw_ostream & | OS,
|  | const SymbolQualitySignals & | S
| ) |  |

Definition at line 250 of file Quality.cpp.

## ◆ operator<<() [18/41]

llvm::raw_ostream & clang::clangd::operator<< | ( | llvm::raw_ostream & | OS,
|  | const DiagBase & | D
| ) |  |

Definition at line 279 of file Diagnostics.cpp.

References clang::clangd::Range::end, clang::clangd::DiagBase::File, clang::clangd::DiagBase::InsideMainFile, clang::clangd::DiagBase::Message, clang::clangd::DiagBase::Range, and clang::clangd::Range::start.

## ◆ operator<<() [19/41]

llvm::raw_ostream & clang::clangd::operator<< | ( | llvm::raw_ostream & | OS,
|  | const Fix & | F
| ) |  |

Definition at line 288 of file Diagnostics.cpp.

## ◆ operator<<() [20/41]

llvm::raw_ostream & clang::clangd::operator<< | ( | llvm::raw_ostream & | OS,
|  | const Diag & | D
| ) |  |

Definition at line 298 of file Diagnostics.cpp.

References Fix(), clang::clangd::Diag::Fixes, and clang::clangd::Diag::Notes.

## ◆ operator<<() [21/41]

llvm::raw_ostream & clang::clangd::operator<< | ( | llvm::raw_ostream & | OS,
|  | HighlightingKind | K
| ) |  |

Definition at line 361 of file SemanticHighlighting.cpp.

References Class, DependentName, DependentType, Enum, EnumConstant, Field, Function, InactiveCode, LocalVariable, Macro, Method, Namespace, Parameter, Primitive, StaticField, StaticMethod, TemplateParameter, Typedef, and Variable.

## ◆ operator<<() [22/41]

llvm::raw_ostream & clang::clangd::operator<< | ( | llvm::raw_ostream & | OS,
|  | const SymbolRelevanceSignals & | S
| ) |  |

Definition at line 424 of file Quality.cpp.

## ◆ operator<<() [23/41]

llvm::raw_ostream & clang::clangd::operator<< | ( | llvm::raw_ostream & | OS,
|  | const Diagnostic & | D
| ) |  |

Definition at line 491 of file Protocol.cpp.

## ◆ operator<<() [24/41]

llvm::raw_ostream & clang::clangd::operator<< | ( | llvm::raw_ostream & | OS,
|  | const SignatureQualitySignals & | S
| ) |  |

Definition at line 493 of file Quality.cpp.

## ◆ operator<<() [25/41]

llvm::raw_ostream & clang::clangd::operator<< | ( | llvm::raw_ostream & | O,
|  | const SymbolInformation & | SI
| ) |  |

Definition at line 553 of file Protocol.cpp.

References clang::clangd::SymbolInformation::containerName, clang::clangd::SymbolInformation::name, and toJSON().

## ◆ operator<<() [26/41]

llvm::raw_ostream & clang::clangd::operator<< | ( | llvm::raw_ostream & | OS,
|  | const LocatedSymbol & | S
| ) |  |

Definition at line 564 of file XRefs.cpp.

## ◆ operator<<() [27/41]

llvm::raw_ostream & clang::clangd::operator<< | ( | llvm::raw_ostream & | O,
|  | const SymbolDetails & | S
| ) |  |

Definition at line 586 of file Protocol.cpp.

References clang::clangd::SymbolDetails::containerName, clang::clangd::SymbolDetails::name, and toJSON().

## ◆ operator<<() [28/41]

llvm::raw_ostream & clang::clangd::operator<< | ( | llvm::raw_ostream & | OS,
|  | const HoverInfo::Param & | P
| ) |  |

Definition at line 607 of file Hover.cpp.

References clang::clangd::HoverInfo::Param::Default, clang::tidy::cppcoreguidelines::join(), clang::clangd::HoverInfo::Param::Name, and clang::clangd::HoverInfo::Param::Type.

## ◆ operator<<() [29/41]

llvm::raw_ostream & clang::clangd::operator<< | ( | llvm::raw_ostream & | O,
|  | const DocumentSymbol & | S
| ) |  |

Definition at line 629 of file Protocol.cpp.

References clang::clangd::DocumentSymbol::name, and toJSON().

## ◆ operator<<() [30/41]

llvm::raw_ostream & clang::clangd::operator<< | ( | llvm::raw_ostream & | OS,
|  | const IndexFileOut & | O
| ) |  |

Definition at line 640 of file Serialization.cpp.

References clang::clangd::IndexFileOut::Format, RIFF, writeYAML(), and YAML.

## ◆ operator<<() [31/41]

llvm::raw_ostream & clang::clangd::operator<< | ( | llvm::raw_ostream & | OS,
|  | MarkupKind | K
| ) |  |

Definition at line 738 of file Protocol.cpp.

## ◆ operator<<() [32/41]

llvm::raw_ostream & clang::clangd::operator<< | ( | llvm::raw_ostream & | O,
|  | const CompletionItem & | I
| ) |  |

Definition at line 833 of file Protocol.cpp.

References clang::clangd::CompletionItem::label, and toJSON().

## ◆ operator<<() [33/41]

llvm::raw_ostream & clang::clangd::operator<< | ( | llvm::raw_ostream & | O,
|  | const SignatureInformation & | I
| ) |  |

Definition at line 875 of file Protocol.cpp.

References clang::clangd::SignatureInformation::label, and toJSON().

## ◆ operator<<() [34/41]

llvm::raw_ostream & clang::clangd::operator<< | ( | llvm::raw_ostream & | OS,
|  | DeclRelation | R
| ) |  |

Definition at line 882 of file FindTarget.cpp.

## ◆ operator<<() [35/41]

llvm::raw_ostream & clang::clangd::operator<< | ( | llvm::raw_ostream & | OS,
|  | DeclRelationSet | RS
| ) |  |

Definition at line 895 of file FindTarget.cpp.

## ◆ operator<<() [36/41]

llvm::raw_ostream & clang::clangd::operator<< | ( | llvm::raw_ostream & | OS,
|  | ReferenceLoc | R
| ) |  |

Definition at line 906 of file FindTarget.cpp.

## ◆ operator<<() [37/41]

llvm::raw_ostream & clang::clangd::operator<< | ( | llvm::raw_ostream & | O,
|  | const DocumentHighlight & | V
| ) |  |

Definition at line 913 of file Protocol.cpp.

References clang::clangd::DocumentHighlight::kind, clang::clangd::DocumentHighlight::range, Read, and Write.

## ◆ operator<<() [38/41]

llvm::raw_ostream & clang::clangd::operator<< | ( | llvm::raw_ostream & | O,
|  | const TypeHierarchyItem & | I
| ) |  |

Definition at line 974 of file Protocol.cpp.

References clang::clangd::TypeHierarchyItem::name, and toJSON().

## ◆ operator<<() [39/41]

llvm::raw_ostream & clang::clangd::operator<< | ( | llvm::raw_ostream & | OS,
|  | OffsetEncoding | Enc
| ) |  |

Definition at line 1056 of file Protocol.cpp.

## ◆ operator<<() [40/41]

llvm::raw_ostream& clang::clangd::operator<< | ( | llvm::raw_ostream & | OS,
|  | const CodeCompletion & | C
| ) |  |

Definition at line 1850 of file CodeComplete.cpp.

Referenced by clang::clangd::IndexFileOut::IndexFileOut(), operator &(), clang::clangd::DeclRelationSet::operator &=(), operator<(), operator==(), operator|=(), and operator~().

## ◆ operator<<() [41/41]

llvm::raw_ostream& clang::clangd::operator<< | ( | llvm::raw_ostream & | OS,
|  | const CodeCompleteResult & | R
| ) |  |

Definition at line 1855 of file CodeComplete.cpp.

## ◆ operator==() [1/9]

bool clang::clangd::operator== | ( | const Ref & | L,
|  | const Ref & | R
| ) |  |
| inline

Definition at line 61 of file Ref.h.

References clang::clangd::Ref::Kind, clang::clangd::Ref::Location, and operator<<().

## ◆ operator==() [2/9]

bool clang::clangd::operator== | ( | const SymbolLocation::Position & | L,
|  | const SymbolLocation::Position & | R
| ) |  |
| inline

Definition at line 66 of file SymbolLocation.h.

References clang::clangd::SymbolLocation::Position::column(), and clang::clangd::SymbolLocation::Position::line().

## ◆ operator==() [3/9]

bool clang::clangd::operator== | ( | const SymbolLocation & | L,
|  | const SymbolLocation & | R
| ) |  |
| inline

Definition at line 76 of file SymbolLocation.h.

References clang::clangd::SymbolLocation::End, clang::clangd::SymbolLocation::FileURI, and clang::clangd::SymbolLocation::Start.

## ◆ operator==() [4/9]

bool clang::clangd::operator== | ( | const HoverInfo::Param & | LHS,
|  | const HoverInfo::Param & | RHS
| ) |  |
| inline

Definition at line 78 of file Hover.h.

References AST, clang::clangd::HoverInfo::Param::Default, FormatStyle(), getHover(), clang::clangd::HoverInfo::Param::Name, Pos, and clang::clangd::HoverInfo::Param::Type.

## ◆ operator==() [5/9]

bool clang::clangd::operator== | ( | const TextEdit & | L,
|  | const TextEdit & | R
| ) |  |
| inline

Definition at line 211 of file Protocol.h.

References fromJSON(), clang::clangd::TextEdit::newText, and clang::clangd::TextEdit::range.

## ◆ operator==() [6/9]

bool clang::clangd::operator== | ( | const HighlightingToken & | L,
|  | const HighlightingToken & | R
| ) |  |

Definition at line 463 of file SemanticHighlighting.cpp.

References clang::clangd::HighlightingToken::Kind, and clang::clangd::HighlightingToken::R.

## ◆ operator==() [7/9]

bool clang::clangd::operator== | ( | const LineHighlightings & | L,
|  | const LineHighlightings & | R
| ) |  |

Definition at line 469 of file SemanticHighlighting.cpp.

References clang::clangd::LineHighlightings::Line, and clang::clangd::LineHighlightings::Tokens.

## ◆ operator==() [8/9]

bool clang::clangd::operator== | ( | const SymbolDetails & | LHS,
|  | const SymbolDetails & | RHS
| ) |  |

Definition at line 559 of file Protocol.cpp.

References clang::clangd::SymbolDetails::containerName, clang::clangd::SymbolDetails::ID, clang::clangd::SymbolDetails::name, and clang::clangd::SymbolDetails::USR.

## ◆ operator==() [9/9]

bool clang::clangd::operator== | ( | const SemanticHighlightingInformation & | Lhs,
|  | const SemanticHighlightingInformation & | Rhs
| ) |  |

Definition at line 1060 of file Protocol.cpp.

References clang::clangd::SemanticHighlightingInformation::Line, and clang::clangd::SemanticHighlightingInformation::Tokens.

## ◆ operator|() [1/5]

SymbolOrigin clang::clangd::operator| | ( | SymbolOrigin | A,
|  | SymbolOrigin | B
| ) |  |
| inline

Definition at line 31 of file SymbolOrigin.h.

## ◆ operator|() [2/5]

RefKind clang::clangd::operator| | ( | RefKind | L,
|  | RefKind | R
| ) |  |
| inline

Definition at line 36 of file Ref.h.

## ◆ operator|() [3/5]

IncludeGraphNode::SourceFlag clang::clangd::operator| | ( | IncludeGraphNode::SourceFlag | A,
|  | IncludeGraphNode::SourceFlag | B
| ) |  |
| inline

Definition at line 84 of file Headers.h.

## ◆ operator|() [4/5]

Symbol::SymbolFlag clang::clangd::operator| | ( | Symbol::SymbolFlag | A,
|  | Symbol::SymbolFlag | B
| ) |  |
| inline

Definition at line 132 of file Symbol.h.

## ◆ operator|() [5/5]

DeclRelationSet clang::clangd::operator| | ( | DeclRelation | L,
|  | DeclRelation | R
| ) |  |
| inline

Definition at line 195 of file FindTarget.h.

## ◆ operator|=() [1/4]

SymbolOrigin& clang::clangd::operator|= | ( | SymbolOrigin & | A,
|  | SymbolOrigin | B
| ) |  |
| inline

Definition at line 35 of file SymbolOrigin.h.

## ◆ operator|=() [2/4]

RefKind& clang::clangd::operator|= | ( | RefKind & | L,
|  | RefKind | R
| ) |  |
| inline

Definition at line 40 of file Ref.h.

## ◆ operator|=() [3/4]

IncludeGraphNode::SourceFlag& clang::clangd::operator|= | ( | IncludeGraphNode::SourceFlag & | A,
|  | IncludeGraphNode::SourceFlag | B
| ) |  |
| inline

Definition at line 96 of file Headers.h.

## ◆ operator|=() [4/4]

Symbol::SymbolFlag& clang::clangd::operator|= | ( | Symbol::SymbolFlag & | A,
|  | Symbol::SymbolFlag | B
| ) |  |
| inline

Definition at line 137 of file Symbol.h.

References operator<<().

## ◆ operator~()

DeclRelationSet clang::clangd::operator~ | ( | DeclRelation | R | ) |
| inline

Definition at line 201 of file FindTarget.h.

References operator<<().

## ◆ own()

static void clang::clangd::own | ( | Symbol & | S,
|  | llvm::UniqueStringSaver & | Strings
| ) |  |
| static

Definition at line 46 of file Symbol.cpp.

References visitStrings().

Referenced by clang::clangd::SymbolSlab::Builder::build(), and clang::clangd::SymbolSlab::Builder::insert().

## ◆ packedLookup()

template<typename T >

static T clang::clangd::packedLookup | ( | const uint8_t * | Data,
|  | int | I
| ) |  |
| static

Definition at line 151 of file FuzzyMatch.cpp.

## ◆ parsePathMappings()

llvm::Expected< PathMappings > clang::clangd::parsePathMappings | ( | llvm::StringRef | RawPathMappings | ) |

Parse the command line `RawPathMappings` (e.g.

"/client=/server") into pairs. Returns an error if the mappings are malformed, i.e. not absolute or not a proper pair.

Definition at line 170 of file PathMapping.cpp.

## ◆ pathEqual()

static bool clang::clangd::pathEqual | ( | PathRef | A,
|  | PathRef | B
| ) |  |
| static

Definition at line 102 of file GlobalCompilationDatabase.cpp.

References Error, and maybeCaseFoldPath().

## ◆ pointBounds()

static std::pair<unsigned, unsigned> clang::clangd::pointBounds | ( | unsigned | Offset,
|  | FileID | FID,
|  | ASTContext & | AST
| ) |  |
| static

Definition at line 667 of file Selection.cpp.

References Offset.

## ◆ positionToOffset()

llvm::Expected< size_t > clang::clangd::positionToOffset | ( | llvm::StringRef | Code,
|  | Position | P,
|  | bool | AllowColumnsBeyondLineLength = `true`
| ) |  |

Turn a [line, column] pair into an offset in Code.

If P.character exceeds the line length, returns the offset at end-of-line. (If !AllowColumnsBeyondLineLength, then returns an error instead). If the line number is out of range, returns an error.

The returned value is in the range [0, Code.size()].

Definition at line 155 of file SourceCode.cpp.

References clang::clangd::Position::character, clang::clangd::Position::line, Line, lspEncoding(), and measureUnits().

Referenced by buildRenameEdit(), clang::clangd::TweakTest::expandCases(), clang::clangd::ClangdServer::formatOnType(), and signatureHelp().

## ◆ prefer()

bool clang::clangd::prefer | ( | const SymbolLocation & | L,
|  | const SymbolLocation & | R
| ) |  |

Definition at line 157 of file Merge.cpp.

References Loc.

Referenced by mergeSymbol().

## ◆ prepareCompilerInstance() [1/2]

std::unique_ptr<CompilerInstance> clang::clangd::prepareCompilerInstance | ( | std::unique_ptr< clang::CompilerInvocation > | ,
|  | const PrecompiledPreamble * | ,
|  | std::unique_ptr< llvm::MemoryBuffer > | MainFile,
|  | IntrusiveRefCntPtr< llvm::vfs::FileSystem > | ,
|  | DiagnosticConsumer & |
| ) |  |

Creates a compiler instance, configured so that:

- Contents of the parsed file are remapped to `MainFile`.
- Preamble is overriden to use PCH passed to this function. It means the changes to the preamble headers or files included in the preamble are not visible to this compiler instance.
- llvm::vfs::FileSystem is used for all underlying file accesses. The actual vfs used by the compiler may be an overlay over the passed vfs. Returns null on errors. When non-null value is returned, it is expected to be consumed by FrontendAction::BeginSourceFile to properly destroy `MainFile`.

## ◆ prepareCompilerInstance() [2/2]

std::unique_ptr<CompilerInstance> clang::clangd::prepareCompilerInstance | ( | std::unique_ptr< clang::CompilerInvocation > | CI,
|  | const PrecompiledPreamble * | Preamble,
|  | std::unique_ptr< llvm::MemoryBuffer > | Buffer,
|  | llvm::IntrusiveRefCntPtr< llvm::vfs::FileSystem > | VFS,
|  | DiagnosticConsumer & | DiagsClient
| ) |  |

Definition at line 72 of file Compiler.cpp.

References VFS.

## ◆ prepareTweak()

llvm::Expected< std::unique_ptr< Tweak > > clang::clangd::prepareTweak | ( | StringRef | ID,
|  | const Tweak::Selection & | S
| ) |  |

Definition at line 77 of file Tweak.cpp.

Referenced by clang::clangd::TweakTest::apply(), and clang::clangd::ClangdServer::applyTweak().

## ◆ prepareTweaks()

std::vector< std::unique_ptr< Tweak > > clang::clangd::prepareTweaks | ( | const Tweak::Selection & | S,
|  | llvm::function_ref< bool(const Tweak &)> | Filter
| ) |  |

Calls prepare() on all tweaks that satisfy the filter, returning those that can run on the selection.

Definition at line 59 of file Tweak.cpp.

Referenced by clang::clangd::ClangdServer::enumerateTweaks().

## ◆ printName()

std::string clang::clangd::printName | ( | const ASTContext & | Ctx,
|  | const NamedDecl & | ND
| ) |  |

Prints unqualified name of the decl for the purpose of displaying it to the user.

Anonymous decls return names of the form "(anonymous {kind})", e.g. "(anonymous struct)" or "(anonymous namespace)".

Definition at line 208 of file AST.cpp.

References Name.

## ◆ printNamespaceScope()

std::string clang::clangd::printNamespaceScope | ( | const DeclContext & | DC | ) |

Returns the first enclosing namespace scope starting from `DC`.

Definition at line 278 of file AST.cpp.

References Ctx, and printQualifiedName().

## ◆ printQualifiedName()

std::string clang::clangd::printQualifiedName | ( | const NamedDecl & | ND | ) |

Returns the qualified name of ND.

The scope doesn't contain unwritten scopes like inline namespaces.

Definition at line 169 of file AST.cpp.

References QName.

Referenced by clang::clangd::IncludeFixer::fix(), and printNamespaceScope().

## ◆ printTemplateSpecializationArgs()

std::string clang::clangd::printTemplateSpecializationArgs | ( | const NamedDecl & | ND | ) |

Prints template arguments of a decl as written in the source code, including enclosing '<' and '>', e.g for a partial specialization like: template <typename u>=""> struct Foo<int, U> will return '<int, U>'.

Returns an empty string if decl is not a template specialization.

Definition at line 249 of file AST.cpp.

## ◆ printType()

std::string clang::clangd::printType | ( | const QualType | QT,
|  | const DeclContext & | CurContext
| ) |  |

Returns a QualType as string.

The result doesn't contain unwritten scopes like anonymous/inline namespace.

Definition at line 305 of file AST.cpp.

## ◆ printUsingNamespaceName()

std::string clang::clangd::printUsingNamespaceName | ( | const ASTContext & | Ctx,
|  | const UsingDirectiveDecl & | D
| ) |  |

Returns the name of the namespace inside the 'using namespace' directive, as written in the code.

E.g., passing 'using namespace ::std' will result in '::std'.

Definition at line 196 of file AST.cpp.

References Name, and clang::tidy::bugprone::PP.

## ◆ qualifiedByUnresolved()

llvm::Optional<std::string> clang::clangd::qualifiedByUnresolved | ( | const SourceManager & | SM,
|  | SourceLocation | Loc,
|  | const LangOptions & | LangOpts
| ) |  |

Definition at line 195 of file clangd/IncludeFixer.cpp.

## ◆ quality()

float clang::clangd::quality | ( | const Symbol & | S | ) |

Computes query-independent quality score for a Symbol.

This currently falls in the range [1, ln(#indexed documents)]. FIXME: this should probably be split into symbol -> signals and signals -> score, so it can be reused for Sema completions.

Definition at line 29 of file Symbol.cpp.

References clang::clangd::detail::log(), and clang::clangd::Symbol::References.

Referenced by visitStrings().

## ◆ rangeInCommonFile()

static SourceRange clang::clangd::rangeInCommonFile | ( | SourceRange | R,
|  | const SourceManager & | SM,
|  | const LangOptions & | LangOpts
| ) |  |
| static

Definition at line 456 of file SourceCode.cpp.

## ◆ readIndexFile()

llvm::Expected< IndexFileIn > clang::clangd::readIndexFile | ( | llvm::StringRef | Data | ) |

Definition at line 652 of file Serialization.cpp.

References clang::clangd::riff::makeError(), readYAML(), and clang::tidy::cppcoreguidelines::toString().

Referenced by clang::clangd::MemoryShardStorage::loadShard().

## ◆ readYAML()

llvm::Expected< IndexFileIn > clang::clangd::readYAML | ( | llvm::StringRef | Data | ) |

Definition at line 356 of file YAMLSerialization.cpp.

References Refs, and Symbols.

Referenced by readIndexFile().

## ◆ reformatEdit()

llvm::Error clang::clangd::reformatEdit | ( | Edit & | E,
|  | const format::FormatStyle & | Style
| ) |  |

Formats the edits and code around it according to Style.

Changes Replacements to formatted ones if succeeds.

Definition at line 1057 of file SourceCode.cpp.

## ◆ RefsAre()

::testing::Matcher<const RefSlab &> clang::clangd::RefsAre | ( | std::vector<::testing::Matcher< Ref >> | Matchers | ) |

Definition at line 33 of file BackgroundIndexTests.cpp.

Referenced by MATCHER_P().

## ◆ removeDots()

Path clang::clangd::removeDots | ( | PathRef | File | ) |

Returns a version of `File` that doesn't contain dots and dot dots.

e.g /a/b/../c -> /a/c /a/b/./c -> /a/b/c FIXME: We should avoid encountering such paths in clangd internals by filtering everything we get over LSP, CDB, etc.

Definition at line 114 of file FS.cpp.

Referenced by clang::clangd::OverlayCDB::getCompileCommand(), clang::clangd::OverlayCDB::getProjectInfo(), and clang::clangd::OverlayCDB::setCompileCommand().

## ◆ rename()

llvm::Expected< FileEdits > clang::clangd::rename | ( | const RenameInputs & | RInputs | ) |

Renames all occurrences of the symbol.

If AllowCrossFile is false, returns an error if rename a symbol that's used in another file (per the index).

Definition at line 427 of file Rename.cpp.

References clang::clangd::RenameInputs::AST, and clang::clangd::ParsedAST::getSourceManager().

Referenced by clang::clangd::ClangdServer::rename().

## ◆ renameRangeAdjustmentCost()

size_t clang::clangd::renameRangeAdjustmentCost | ( | ArrayRef< Range > | Indexed,
|  | ArrayRef< Range > | Lexed,
|  | ArrayRef< size_t > | MappedIndex
| ) |  |

Evaluates how good the mapped result is.

0 indicates a perfect match.

Exposed for testing only.

REQUIRED: Indexed and Lexed are sorted, Indexed and MappedIndex have the same size.

Definition at line 655 of file Rename.cpp.

References Line.

Referenced by getMappedRanges().

## ◆ replace()

static std::string clang::clangd::replace | ( | llvm::StringRef | Haystack,
|  | llvm::StringRef | Needle,
|  | llvm::StringRef | Repl
| ) |  |
| static

Definition at line 30 of file TestIndex.cpp.

References clang::tidy::cppcoreguidelines::join().

Referenced by addModuleDescription(), clang::pp_trace::PPCallbacksTracker::appendFilePathArgument(), eatDiagnostics(), ensureVaidModuleName(), Modularize::ModularizeUtilities::getCanonicalPath(), clang::tidy::llvm_check::LLVMHeaderGuardCheck::getHeaderGuard(), main(), and sym().

## ◆ replacementsToEdits() [1/2]

std::vector<TextEdit> clang::clangd::replacementsToEdits | ( | StringRef | Code,
|  | const tooling::Replacements & | Repls
| ) |  |

## ◆ replacementsToEdits() [2/2]

std::vector<TextEdit> clang::clangd::replacementsToEdits | ( | llvm::StringRef | Code,
|  | const tooling::Replacements & | Repls
| ) |  |

Definition at line 614 of file SourceCode.cpp.

Referenced by clang::clangd::Edit::asTextEdits().

## ◆ replacementToEdit() [1/2]

TextEdit clang::clangd::replacementToEdit | ( | StringRef | Code,
|  | const tooling::Replacement & | R
| ) |  |

## ◆ replacementToEdit() [2/2]

TextEdit clang::clangd::replacementToEdit | ( | llvm::StringRef | Code,
|  | const tooling::Replacement & | R
| ) |  |

Definition at line 606 of file SourceCode.cpp.

References offsetToPosition().

## ◆ requestShutdown()

void clang::clangd::requestShutdown | ( |  | ) |

Sets a flag to indicate that clangd was sent a shutdown signal, and the transport loop should exit at the next opportunity.

If shutdown was already requested, aborts the process. This function is threadsafe and signal-safe.

Definition at line 28 of file Shutdown.cpp.

Referenced by main().

## ◆ resolveTypeHierarchy()

void clang::clangd::resolveTypeHierarchy | ( | TypeHierarchyItem & | Item,
|  | int | ResolveLevels,
|  | TypeHierarchyDirection | Direction,
|  | const SymbolIndex * | Index
| ) |  |

Definition at line 807 of file XRefs.cpp.

References clang::clangd::TypeHierarchyItem::children, clang::clangd::TypeHierarchyItem::data, and Parents.

Referenced by clang::clangd::ClangdServer::resolveTypeHierarchy().

## ◆ retryAfterSignalUnlessShutdown()

template<typename Fun , typename Ret = decltype(std::declval<Fun>()())>

Ret clang::clangd::retryAfterSignalUnlessShutdown | ( | const typename std::enable_if< true, Ret >::type & | Fail,
|  | const Fun & | F
| ) |  |

Retry an operation if it gets interrupted by a signal.

This is like llvm::sys::RetryAfterSignal, except that if shutdown was requested (which interrupts IO), we'll fail rather than retry.

Definition at line 68 of file Shutdown.h.

## ◆ runAddDocument() [1/2]

void clang::clangd::runAddDocument | ( | ClangdServer & | Server,
|  | PathRef | File,
|  | llvm::StringRef | Contents,
|  | WantDiagnostics | WantDiags
| ) |  |

Definition at line 15 of file SyncAPI.cpp.

References clang::clangd::ClangdServer::addDocument(), and clang::clangd::ClangdServer::blockUntilIdleForTest().

## ◆ runAddDocument() [2/2]

void clang::clangd::runAddDocument | ( | ClangdServer & | Server,
|  | PathRef | File,
|  | StringRef | Contents,
|  | WantDiagnostics | WantDiags = `WantDiagnostics::Auto`
| ) |  |

## ◆ runAsync()

template<typename T >

std::future<T> clang::clangd::runAsync | ( | llvm::unique_function< T()> | Action | ) |

Runs `Action` asynchronously with a new std::thread.

The context will be propagated.

Definition at line 124 of file Threading.h.

References Action, clang::clangd::Context::clone(), Ctx, and clang::clangd::Context::current().

Referenced by clang::clangd::AsyncTaskRunner::wait().

## ◆ runCodeComplete()

llvm::Expected< CodeCompleteResult > clang::clangd::runCodeComplete | ( | ClangdServer & | Server,
|  | PathRef | File,
|  | Position | Pos,
|  | clangd::CodeCompleteOptions | Opts
| ) |  |

Definition at line 71 of file SyncAPI.cpp.

## ◆ runDocumentSymbols()

Expected< std::vector< DocumentSymbol > > clang::clangd::runDocumentSymbols | ( | ClangdServer & | Server,
|  | PathRef | File
| ) |  |

Definition at line 120 of file SyncAPI.cpp.

Referenced by TEST_F().

## ◆ runDumpAST()

std::string clang::clangd::runDumpAST | ( | ClangdServer & | Server,
|  | PathRef | File
| ) |  |

Definition at line 106 of file SyncAPI.cpp.

## ◆ runFindDocumentHighlights()

llvm::Expected< std::vector< DocumentHighlight > > clang::clangd::runFindDocumentHighlights | ( | ClangdServer & | Server,
|  | PathRef | File,
|  | Position | Pos
| ) |  |

Definition at line 93 of file SyncAPI.cpp.

## ◆ runFuzzyFind() [1/3]

SymbolSlab clang::clangd::runFuzzyFind | ( | const SymbolIndex & | Index,
|  | StringRef | Query
| ) |  |

## ◆ runFuzzyFind() [2/3]

SymbolSlab clang::clangd::runFuzzyFind | ( | const SymbolIndex & | Index,
|  | llvm::StringRef | Query
| ) |  |

Definition at line 126 of file SyncAPI.cpp.

## ◆ runFuzzyFind() [3/3]

SymbolSlab clang::clangd::runFuzzyFind | ( | const SymbolIndex & | Index,
|  | const FuzzyFindRequest & | Req
| ) |  |

Definition at line 133 of file SyncAPI.cpp.

References Builder, clang::clangd::SymbolIndex::fuzzyFind(), and clang::clangd::SymbolSlab::Builder::insert().

## ◆ runLocateSymbolAt()

llvm::Expected< std::vector< LocatedSymbol > > clang::clangd::runLocateSymbolAt | ( | ClangdServer & | Server,
|  | PathRef | File,
|  | Position | Pos
| ) |  |

Definition at line 86 of file SyncAPI.cpp.

## ◆ runRename() [1/2]

llvm::Expected<FileEdits> clang::clangd::runRename | ( | ClangdServer & | Server,
|  | PathRef | File,
|  | Position | Pos,
|  | StringRef | NewName
| ) |  |

## ◆ runRename() [2/2]

llvm::Expected<FileEdits> clang::clangd::runRename | ( | ClangdServer & | Server,
|  | PathRef | File,
|  | Position | Pos,
|  | llvm::StringRef | NewName
| ) |  |

Definition at line 99 of file SyncAPI.cpp.

## ◆ runSemanticRanges()

llvm::Expected< std::vector< Range > > clang::clangd::runSemanticRanges | ( | ClangdServer & | Server,
|  | PathRef | File,
|  | Position | Pos
| ) |  |

Definition at line 148 of file SyncAPI.cpp.

## ◆ runSignatureHelp()

llvm::Expected< SignatureHelp > clang::clangd::runSignatureHelp | ( | ClangdServer & | Server,
|  | PathRef | File,
|  | Position | Pos
| ) |  |

Definition at line 78 of file SyncAPI.cpp.

## ◆ runSwitchHeaderSource()

llvm::Expected< llvm::Optional< clangd::Path > > clang::clangd::runSwitchHeaderSource | ( | ClangdServer & | Server,
|  | PathRef | File
| ) |  |

Definition at line 155 of file SyncAPI.cpp.

## ◆ runWorkspaceSymbols() [1/2]

llvm::Expected<std::vector<SymbolInformation> > clang::clangd::runWorkspaceSymbols | ( | ClangdServer & | Server,
|  | StringRef | Query,
|  | int | Limit
| ) |  |

## ◆ runWorkspaceSymbols() [2/2]

llvm::Expected<std::vector<SymbolInformation> > clang::clangd::runWorkspaceSymbols | ( | ClangdServer & | Server,
|  | llvm::StringRef | Query,
|  | int | Limit
| ) |  |

Definition at line 113 of file SyncAPI.cpp.

## ◆ scopeBoost()

static float clang::clangd::scopeBoost | ( | ScopeDistance & | Distance,
|  | llvm::Optional< llvm::StringRef > | SymbolScope
| ) |  |
| static

Definition at line 328 of file Quality.cpp.

References clang::clangd::ScopeDistance::distance(), and clang::clangd::FileDistance::Unreachable.

Referenced by clang::clangd::SymbolRelevanceSignals::evaluate().

## ◆ scopeToPath()

static std::pair<std::string, int> clang::clangd::scopeToPath | ( | llvm::StringRef | Scope | ) |
| static

Definition at line 179 of file FileDistance.cpp.

References clang::tidy::cppcoreguidelines::join().

Referenced by clang::clangd::ScopeDistance::distance().

## ◆ shutdownRequested()

bool clang::clangd::shutdownRequested | ( |  | ) |

Checks whether requestShutdown() was called.

This function is threadsafe and signal-safe.

Definition at line 34 of file Shutdown.cpp.

References ShutdownRequested.

## ◆ signatureHelp() [1/2]

SignatureHelp clang::clangd::signatureHelp | ( | PathRef | FileName,
|  | const tooling::CompileCommand & | Command,
|  | const PreambleData * | Preamble,
|  | StringRef | Contents,
|  | Position | Pos,
|  | IntrusiveRefCntPtr< llvm::vfs::FileSystem > | VFS,
|  | const SymbolIndex * | Index
| ) |  |

Get signature help at a specified `Pos` in `FileName`.

## ◆ signatureHelp() [2/2]

SignatureHelp clang::clangd::signatureHelp | ( | PathRef | FileName,
|  | const tooling::CompileCommand & | Command,
|  | const PreambleData * | Preamble,
|  | llvm::StringRef | Contents,
|  | Position | Pos,
|  | llvm::IntrusiveRefCntPtr< llvm::vfs::FileSystem > | VFS,
|  | const SymbolIndex * | Index
| ) |  |

Definition at line 1749 of file CodeComplete.cpp.

References elog(), Offset, and positionToOffset().

Referenced by clang::clangd::ClangdServer::signatureHelp().

## ◆ sortText()

std::string clang::clangd::sortText | ( | float | Score,
|  | llvm::StringRef | Tiebreak = `""`
| ) |  |

Returns a string that sorts in the same order as (-Score, Tiebreak), for LSP.

(The highest score compares smallest so it sorts at the top).

Definition at line 481 of file Quality.cpp.

Referenced by clang::clangd::TopN< T, Compare >::items().

## ◆ sourceLocationInMainFile()

llvm::Expected< SourceLocation > clang::clangd::sourceLocationInMainFile | ( | const SourceManager & | SM,
|  | Position | P
| ) |  |

Return the file location, corresponding to `P`.

Note that one should take care to avoid comparing the result with expansion locations.

Definition at line 571 of file SourceCode.cpp.

## ◆ sourceLocToPosition()

Position clang::clangd::sourceLocToPosition | ( | const SourceManager & | SM,
|  | SourceLocation | Loc
| ) |  |

Turn a SourceLocation into a [line, column] pair.

FIXME: This should return an error if the location is invalid.

Definition at line 200 of file SourceCode.cpp.

## ◆ splitQualifiedName() [1/2]

std::pair<llvm::StringRef, llvm::StringRef> clang::clangd::splitQualifiedName | ( | llvm::StringRef | QName | ) |

From "a::b::c", return {"a::b::", "c"}.

Scope is empty if there's no qualifier.

## ◆ splitQualifiedName() [2/2]

std::pair<StringRef, StringRef> clang::clangd::splitQualifiedName | ( | StringRef | QName | ) |

Definition at line 599 of file SourceCode.cpp.

References Pos.

## ◆ sym()

Symbol clang::clangd::sym | ( | llvm::StringRef | QName,
|  | index::SymbolKind | Kind,
|  | llvm::StringRef | USRFormat
| ) |  |

Definition at line 39 of file TestIndex.cpp.

References clang::clangd::Symbol::Flags, clang::clangd::Symbol::ID, clang::clangd::Symbol::IndexedForCodeCompletion, Kind, clang::clangd::Symbol::Name, clang::clangd::Symbol::Origin, Pos, QName, replace(), clang::clangd::Symbol::Scope, Static, and clang::clangd::Symbol::SymInfo.

Referenced by cls(), func(), ns(), and var().

## ◆ symbol()

Symbol clang::clangd::symbol | ( | llvm::StringRef | QName | ) |

Definition at line 16 of file TestIndex.cpp.

References clang::clangd::Symbol::ID, clang::clangd::Symbol::Name, Pos, QName, and clang::clangd::Symbol::Scope.

Referenced by generateSymbols(), and MATCHER_P().

## ◆ symbolToLocation()

llvm::Expected< Location > clang::clangd::symbolToLocation | ( | const Symbol & | Sym,
|  | llvm::StringRef | HintPath
| ) |  |

Helper function for deriving an LSP Location for a Symbol.

Definition at line 42 of file FindSymbols.cpp.

Referenced by symbolToTypeHierarchyItem().

## ◆ symbolToTypeHierarchyItem()

static Optional<TypeHierarchyItem> clang::clangd::symbolToTypeHierarchyItem | ( | const Symbol & | S,
|  | const SymbolIndex * | Index,
|  | PathRef | TUPath
| ) |  |
| static

Definition at line 619 of file XRefs.cpp.

References clang::clangd::TypeHierarchyItem::data, clang::clangd::Symbol::Deprecated, clang::clangd::TypeHierarchyItem::deprecated, clang::clangd::Symbol::Flags, clang::clangd::Symbol::ID, indexSymbolKindToSymbolKind(), clang::clangd::TypeHierarchyItem::kind, log(), clang::clangd::Symbol::Name, clang::clangd::TypeHierarchyItem::name, None, clang::clangd::TypeHierarchyItem::range, clang::clangd::TypeHierarchyItem::selectionRange, clang::clangd::SymbolID::str(), symbolToLocation(), clang::clangd::Symbol::SymInfo, and clang::clangd::TypeHierarchyItem::uri.

## ◆ targetDecl()

llvm::SmallVector< const NamedDecl *, 1 > clang::clangd::targetDecl | ( | const ast_type_traits::DynTypedNode & | ,
|  | DeclRelationSet | Mask
| ) |  |

targetDecl() finds the declaration referred to by an AST node.

For example a RecordTypeLoc refers to the RecordDecl for the type.

In some cases there are multiple results, e.g. a dependent unresolved OverloadExpr may have several candidates. All will be returned:

void foo(int); <– candidate void foo(double); <– candidate template <typename t>=""> callFoo() { foo(T()); } ^ OverloadExpr

In other cases, there may be choices about what "referred to" means. e.g. does naming a typedef refer to the underlying type? The results are marked with a set of DeclRelations, and can be filtered.

struct S{}; <– candidate (underlying) using T = S{}; <– candidate (alias) T x; ^ TypedefTypeLoc

Formally, we walk a graph starting at the provided node, and return the decls that were found. Certain edges in the graph have labels, and for each decl we return the set of labels seen on a path to the decl. For the previous example:

               TypedefTypeLoc T
                      |
                TypedefType T
                   /     \
          [underlying]  [alias]
                 /         \
         RecordDecl S    TypeAliasDecl T

Note that this function only returns NamedDecls. Generally other decls don't have references in this sense, just the node itself. If callers want to support such decls, they should cast the node directly.

FIXME: some AST nodes cannot be DynTypedNodes, these cannot be specified.

Definition at line 509 of file FindTarget.cpp.

## ◆ TEST() [1/5]

clang::clangd::TEST | ( | ContextTests | ,
|  | Simple |
| ) |  |

Definition at line 16 of file ContextTests.cpp.

References Ctx, clang::clangd::Context::derive(), clang::clangd::Context::empty(), and clang::clangd::Context::get().

## ◆ TEST() [2/5]

clang::clangd::TEST | ( | ContextTests | ,
|  | MoveOps |
| ) |  |

Definition at line 26 of file ContextTests.cpp.

References Ctx, clang::clangd::Context::derive(), clang::clangd::Context::empty(), and clang::clangd::Context::get().

## ◆ TEST() [3/5]

clang::clangd::TEST | ( | ContextTests | ,
|  | Builders |
| ) |  |

Definition at line 36 of file ContextTests.cpp.

References clang::clangd::Context::derive(), clang::clangd::Context::empty(), and clang::clangd::Context::get().

## ◆ TEST() [4/5]

clang::clangd::TEST | ( | BackgroundQueueTest | ,
|  | Priority |
| ) |  |

Definition at line 647 of file BackgroundIndexTests.cpp.

References clang::clangd::BackgroundQueue::append(), clang::clangd::BackgroundQueue::push(), clang::clangd::BackgroundQueue::Task::QueuePri, clang::clangd::AsyncTaskRunner::runAsync(), clang::clangd::BackgroundQueue::stop(), and clang::clangd::AsyncTaskRunner::wait().

## ◆ TEST() [5/5]

clang::clangd::TEST | ( | BackgroundQueueTest | ,
|  | Boost |
| ) |  |

Definition at line 679 of file BackgroundIndexTests.cpp.

## ◆ TEST_F() [1/40]

clang::clangd::TEST_F | ( | ThreadingTest | ,
|  | TaskRunner |
| ) |  |

Definition at line 17 of file ThreadingTests.cpp.

## ◆ TEST_F() [2/40]

clang::clangd::TEST_F | ( | BackgroundIndexTest | ,
|  | NoCrashOnErrorFile |
| ) |  |

Definition at line 88 of file BackgroundIndexTests.cpp.

References clang::clangd::MockFSProvider::Files, FS, and testPath().

## ◆ TEST_F() [3/40]

clang::clangd::TEST_F | ( | WorkspaceSymbolsTest | ,
|  | Macros |
| ) |  |

Definition at line 89 of file FindSymbolsTests.cpp.

## ◆ TEST_F() [4/40]

clang::clangd::TEST_F | ( | WorkspaceSymbolsTest | ,
|  | NoLocals |
| ) |  |

Definition at line 101 of file FindSymbolsTests.cpp.

## ◆ TEST_F() [5/40]

clang::clangd::TEST_F | ( | BackgroundIndexTest | ,
|  | IndexTwoFiles |
| ) |  |

Definition at line 107 of file BackgroundIndexTests.cpp.

References clang::clangd::MockFSProvider::Files, FS, and testPath().

## ◆ TEST_F() [6/40]

clang::clangd::TEST_F | ( | WorkspaceSymbolsTest | ,
|  | Globals |
| ) |  |

Definition at line 111 of file FindSymbolsTests.cpp.

References Function, QName, Struct, and Variable.

## ◆ TEST_F() [7/40]

clang::clangd::TEST_F | ( | WorkspaceSymbolsTest | ,
|  | Unnamed |
| ) |  |

Definition at line 128 of file FindSymbolsTests.cpp.

References Field, QName, and Variable.

## ◆ TEST_F() [8/40]

clang::clangd::TEST_F | ( | WorkspaceSymbolsTest | ,
|  | InMainFile |
| ) |  |

Definition at line 144 of file FindSymbolsTests.cpp.

References QName.

## ◆ TEST_F() [9/40]

clang::clangd::TEST_F | ( | WorkspaceSymbolsTest | ,
|  | Namespaces |
| ) |  |

Definition at line 152 of file FindSymbolsTests.cpp.

References QName.

## ◆ TEST_F() [10/40]

clang::clangd::TEST_F | ( | BackgroundIndexTest | ,
|  | ShardStorageTest |
| ) |  |

Definition at line 177 of file BackgroundIndexTests.cpp.

References clang::clangd::MockFSProvider::Files, FS, and testPath().

## ◆ TEST_F() [11/40]

clang::clangd::TEST_F | ( | WorkspaceSymbolsTest | ,
|  | AnonymousNamespace |
| ) |  |

Definition at line 180 of file FindSymbolsTests.cpp.

References QName.

## ◆ TEST_F() [12/40]

clang::clangd::TEST_F | ( | WorkspaceSymbolsTest | ,
|  | MultiFile |
| ) |  |

Definition at line 189 of file FindSymbolsTests.cpp.

References QName.

## ◆ TEST_F() [13/40]

clang::clangd::TEST_F | ( | WorkspaceSymbolsTest | ,
|  | GlobalNamespaceQueries |
| ) |  |

Definition at line 206 of file FindSymbolsTests.cpp.

References Class, Function, Namespace, and QName.

## ◆ TEST_F() [14/40]

clang::clangd::TEST_F | ( | WorkspaceSymbolsTest | ,
|  | Enums |
| ) |  |

Definition at line 230 of file FindSymbolsTests.cpp.

References QName.

## ◆ TEST_F() [15/40]

clang::clangd::TEST_F | ( | BackgroundIndexTest | ,
|  | DirectIncludesTest |
| ) |  |

Definition at line 248 of file BackgroundIndexTests.cpp.

References clang::clangd::MockFSProvider::Files, FS, and testPath().

## ◆ TEST_F() [16/40]

clang::clangd::TEST_F | ( | WorkspaceSymbolsTest | ,
|  | Ranking |
| ) |  |

Definition at line 270 of file FindSymbolsTests.cpp.

References QName.

## ◆ TEST_F() [17/40]

clang::clangd::TEST_F | ( | WorkspaceSymbolsTest | ,
|  | WithLimit |
| ) |  |

Definition at line 281 of file FindSymbolsTests.cpp.

References Limit, QName, and Variable.

## ◆ TEST_F() [18/40]

clang::clangd::TEST_F | ( | WorkspaceSymbolsTest | ,
|  | TempSpecs |
| ) |  |

Definition at line 299 of file FindSymbolsTests.cpp.

References clang::clangd::ClangdServer::addDocument(), clang::clangd::ClangdServer::blockUntilIdleForTest(), CDB, Class, Contents, DiagConsumer, File, clang::clangd::MockFSProvider::Files, FSProvider, QName, runDocumentSymbols(), and Server.

## ◆ TEST_F() [19/40]

clang::clangd::TEST_F | ( | BackgroundIndexTest | ,
|  | ShardStorageLoad |
| ) |  |

Definition at line 299 of file BackgroundIndexTests.cpp.

References clang::clangd::MockFSProvider::Files, FS, and testPath().

## ◆ TEST_F() [20/40]

clang::clangd::TEST_F | ( | DocumentSymbolsTest | ,
|  | BasicSymbols |
| ) |  |

Definition at line 342 of file FindSymbolsTests.cpp.

References Children, Class, Constructor, Function, Method, Namespace, testPath(), and Variable.

## ◆ TEST_F() [21/40]

clang::clangd::TEST_F | ( | BackgroundIndexTest | ,
|  | ShardStorageEmptyFile |
| ) |  |

Definition at line 370 of file BackgroundIndexTests.cpp.

References clang::clangd::MockFSProvider::Files, FS, and testPath().

## ◆ TEST_F() [22/40]

clang::clangd::TEST_F | ( | DocumentSymbolsTest | ,
|  | DeclarationDefinition |
| ) |  |

Definition at line 431 of file FindSymbolsTests.cpp.

References Children, Class, Method, clang::clangd::Annotations::range(), and testPath().

## ◆ TEST_F() [23/40]

clang::clangd::TEST_F | ( | BackgroundIndexTest | ,
|  | NoDotsInAbsPath |
| ) |  |

Definition at line 438 of file BackgroundIndexTests.cpp.

References FS.

## ◆ TEST_F() [24/40]

clang::clangd::TEST_F | ( | DocumentSymbolsTest | ,
|  | ExternSymbol |
| ) |  |

Definition at line 452 of file FindSymbolsTests.cpp.

References testPath().

## ◆ TEST_F() [25/40]

clang::clangd::TEST_F | ( | DocumentSymbolsTest | ,
|  | NoLocals |
| ) |  |

Definition at line 464 of file FindSymbolsTests.cpp.

References testPath().

## ◆ TEST_F() [26/40]

clang::clangd::TEST_F | ( | BackgroundIndexTest | ,
|  | UncompilableFiles |
| ) |  |

Definition at line 467 of file BackgroundIndexTests.cpp.

References FS.

## ◆ TEST_F() [27/40]

clang::clangd::TEST_F | ( | DocumentSymbolsTest | ,
|  | Unnamed |
| ) |  |

Definition at line 475 of file FindSymbolsTests.cpp.

References Children, Field, Struct, testPath(), and Variable.

## ◆ TEST_F() [28/40]

clang::clangd::TEST_F | ( | DocumentSymbolsTest | ,
|  | InHeaderFile |
| ) |  |

Definition at line 493 of file FindSymbolsTests.cpp.

References testPath().

## ◆ TEST_F() [29/40]

clang::clangd::TEST_F | ( | DocumentSymbolsTest | ,
|  | Template |
| ) |  |

Definition at line 510 of file FindSymbolsTests.cpp.

References Children, Field, Struct, and testPath().

## ◆ TEST_F() [30/40]

clang::clangd::TEST_F | ( | BackgroundIndexTest | ,
|  | CmdLineHash |
| ) |  |

Definition at line 530 of file BackgroundIndexTests.cpp.

References FS.

## ◆ TEST_F() [31/40]

clang::clangd::TEST_F | ( | DocumentSymbolsTest | ,
|  | Namespaces |
| ) |  |

Definition at line 547 of file FindSymbolsTests.cpp.

References Children, and testPath().

## ◆ TEST_F() [32/40]

clang::clangd::TEST_F | ( | DocumentSymbolsTest | ,
|  | Enums |
| ) |  |

Definition at line 585 of file FindSymbolsTests.cpp.

References Children, and testPath().

## ◆ TEST_F() [33/40]

clang::clangd::TEST_F | ( | BackgroundIndexRebuilderTest | ,
|  | IndexingTUs |
| ) |  |

Definition at line 611 of file BackgroundIndexTests.cpp.

## ◆ TEST_F() [34/40]

clang::clangd::TEST_F | ( | DocumentSymbolsTest | ,
|  | FromMacro |
| ) |  |

Definition at line 613 of file FindSymbolsTests.cpp.

References clang::clangd::Annotations::range(), and testPath().

## ◆ TEST_F() [35/40]

clang::clangd::TEST_F | ( | BackgroundIndexRebuilderTest | ,
|  | LoadingShards |
| ) |  |

Definition at line 620 of file BackgroundIndexTests.cpp.

## ◆ TEST_F() [36/40]

clang::clangd::TEST_F | ( | DocumentSymbolsTest | ,
|  | FuncTemplates |
| ) |  |

Definition at line 634 of file FindSymbolsTests.cpp.

References testPath().

## ◆ TEST_F() [37/40]

clang::clangd::TEST_F | ( | DocumentSymbolsTest | ,
|  | UsingDirectives |
| ) |  |

Definition at line 649 of file FindSymbolsTests.cpp.

References testPath().

## ◆ TEST_F() [38/40]

clang::clangd::TEST_F | ( | DocumentSymbolsTest | ,
|  | TempSpecs |
| ) |  |

Definition at line 668 of file FindSymbolsTests.cpp.

References Class.

## ◆ TEST_F() [39/40]

clang::clangd::TEST_F | ( | DocumentSymbolsTest | ,
|  | Qualifiers |
| ) |  |

Definition at line 685 of file FindSymbolsTests.cpp.

## ◆ TEST_F() [40/40]

clang::clangd::TEST_F | ( | DocumentSymbolsTest | ,
|  | QualifiersWithTemplateArgs |
| ) |  |

Definition at line 717 of file FindSymbolsTests.cpp.

## ◆ testPath()

std::string clang::clangd::testPath | ( | PathRef | File | ) |

Definition at line 82 of file TestFS.cpp.

References File, and testRoot().

Referenced by clang::clangd::TestTU::build(), and TEST_F().

## ◆ testRoot()

const char * clang::clangd::testRoot | ( |  | ) |

Definition at line 74 of file TestFS.cpp.

Referenced by clang::clangd::TestTU::build(), buildTestFS(), testPath(), and clang::clangd::TestScheme::uriFromAbsolutePath().

## ◆ timeoutSeconds()

Deadline clang::clangd::timeoutSeconds | ( | llvm::Optional< double > | Seconds | ) |

Makes a deadline from a timeout in seconds. None means wait forever.

Definition at line 99 of file Threading.cpp.

References clang::clangd::Deadline::infinity().

Referenced by clang::clangd::BackgroundQueue::blockUntilIdleForTest(), clang::clangd::ClangdServer::blockUntilIdleForTest(), and clang::clangd::Deadline::operator==().

## ◆ toCodeAction()

CodeAction clang::clangd::toCodeAction | ( | const Fix & | F,
|  | const URIForFile & | File
| ) |  |

Convert from Fix to LSP CodeAction.

Definition at line 320 of file Diagnostics.cpp.

Referenced by toLSPDiags().

## ◆ toHalfOpenFileRange()

llvm::Optional< SourceRange > clang::clangd::toHalfOpenFileRange | ( | const SourceManager & | Mgr,
|  | const LangOptions & | LangOpts,
|  | SourceRange | R
| ) |  |

Turns a token range into a half-open range and checks its correctness.

The resulting range will have only valid source location on both sides, both of which are file locations.

File locations always point to a particular offset in a file, i.e. they never refer to a location inside a macro expansion. Turning locations from macro expansions into file locations is ambiguous - one can use SourceManager::{getExpansion|getFile|getSpelling}Loc. This function calls SourceManager::getFileLoc on both ends of `R` to do the conversion.

User input (e.g. cursor position) is expressed as a file location, so this function can be viewed as a way to normalize the ranges used in the clang AST so that they are comparable with ranges coming from the user input.

Definition at line 538 of file SourceCode.cpp.

## ◆ toHeaderFile()

llvm::Expected< HeaderFile > clang::clangd::toHeaderFile | ( | llvm::StringRef | Header,
|  | llvm::StringRef | HintPath
| ) |  |

Creates a `HeaderFile` from `Header` which can be either a URI or a literal include.

Definition at line 77 of file Headers.cpp.

## ◆ toJSON() [1/34]

llvm::json::Value clang::clangd::toJSON | ( | const FuzzyFindRequest & | Request | ) |

Definition at line 48 of file Index.cpp.

Referenced by operator<<(), and clang::clangd::IncludeFixer::unresolvedNameRecorder().

## ◆ toJSON() [2/34]

llvm::json::Value clang::clangd::toJSON | ( | const URIForFile & | U | ) |

Serialize/deserialize `URIForFile` to/from a string URI.

Definition at line 77 of file Protocol.cpp.

## ◆ toJSON() [3/34]

llvm::json::Value clang::clangd::toJSON | ( | const TextDocumentIdentifier & | R | ) |

Definition at line 83 of file Protocol.cpp.

## ◆ toJSON() [4/34]

llvm::json::Value clang::clangd::toJSON | ( | const Position & | P | ) |

Definition at line 97 of file Protocol.cpp.

## ◆ toJSON() [5/34]

llvm::json::Value clang::clangd::toJSON | ( | const Range & | P | ) |

Definition at line 113 of file Protocol.cpp.

## ◆ toJSON() [6/34]

llvm::json::Value clang::clangd::toJSON | ( | const Location & | P | ) |

Definition at line 124 of file Protocol.cpp.

## ◆ toJSON() [7/34]

llvm::json::Value clang::clangd::toJSON | ( | const TextEdit & | P | ) |

Definition at line 146 of file Protocol.cpp.

## ◆ toJSON() [8/34]

llvm::json::Value clang::clangd::toJSON | ( | const MessageType & | R | ) |

Definition at line 373 of file Protocol.cpp.

## ◆ toJSON() [9/34]

llvm::json::Value clang::clangd::toJSON | ( | const ShowMessageParams & | R | ) |

Definition at line 377 of file Protocol.cpp.

## ◆ toJSON() [10/34]

llvm::json::Value clang::clangd::toJSON | ( | const DiagnosticRelatedInformation & | DRI | ) |

Definition at line 449 of file Protocol.cpp.

## ◆ toJSON() [11/34]

llvm::json::Value clang::clangd::toJSON | ( | const Diagnostic & | D | ) |

Definition at line 456 of file Protocol.cpp.

## ◆ toJSON() [12/34]

llvm::json::Value clang::clangd::toJSON | ( | const SymbolInformation & | P | ) |

Definition at line 544 of file Protocol.cpp.

## ◆ toJSON() [13/34]

llvm::json::Value clang::clangd::toJSON | ( | const SymbolDetails & | P | ) |

Definition at line 564 of file Protocol.cpp.

## ◆ toJSON() [14/34]

llvm::json::Value clang::clangd::toJSON | ( | const Command & | C | ) |

Definition at line 603 of file Protocol.cpp.

## ◆ toJSON() [15/34]

llvm::json::Value clang::clangd::toJSON | ( | const CodeAction & | CA | ) |

Definition at line 616 of file Protocol.cpp.

## ◆ toJSON() [16/34]

llvm::json::Value clang::clangd::toJSON | ( | const DocumentSymbol & | S | ) |

Definition at line 633 of file Protocol.cpp.

## ◆ toJSON() [17/34]

llvm::json::Value clang::clangd::toJSON | ( | const WorkspaceEdit & | WE | ) |

Definition at line 649 of file Protocol.cpp.

## ◆ toJSON() [18/34]

llvm::json::Value clang::clangd::toJSON | ( | const TweakArgs & | A | ) |

Definition at line 664 of file Protocol.cpp.

## ◆ toJSON() [19/34]

llvm::json::Value clang::clangd::toJSON | ( | const ApplyWorkspaceEditParams & | Params | ) |

Definition at line 669 of file Protocol.cpp.

## ◆ toJSON() [20/34]

llvm::json::Value clang::clangd::toJSON | ( | const MarkupContent & | MC | ) |

Definition at line 742 of file Protocol.cpp.

## ◆ toJSON() [21/34]

llvm::json::Value clang::clangd::toJSON | ( | const Hover & | H | ) |

Definition at line 752 of file Protocol.cpp.

## ◆ toJSON() [22/34]

llvm::json::Value clang::clangd::toJSON | ( | const CompletionItem & | CI | ) |

Definition at line 806 of file Protocol.cpp.

## ◆ toJSON() [23/34]

llvm::json::Value clang::clangd::toJSON | ( | const CompletionList & | L | ) |

Definition at line 843 of file Protocol.cpp.

## ◆ toJSON() [24/34]

llvm::json::Value clang::clangd::toJSON | ( | const ParameterInformation & | PI | ) |

Definition at line 850 of file Protocol.cpp.

## ◆ toJSON() [25/34]

llvm::json::Value clang::clangd::toJSON | ( | const SignatureInformation & | SI | ) |

Definition at line 864 of file Protocol.cpp.

## ◆ toJSON() [26/34]

llvm::json::Value clang::clangd::toJSON | ( | const SignatureHelp & | SH | ) |

Definition at line 881 of file Protocol.cpp.

## ◆ toJSON() [27/34]

llvm::json::Value clang::clangd::toJSON | ( | const DocumentHighlight & | DH | ) |

Definition at line 899 of file Protocol.cpp.

## ◆ toJSON() [28/34]

llvm::json::Value clang::clangd::toJSON | ( | const FileStatus & | FStatus | ) |

Definition at line 906 of file Protocol.cpp.

## ◆ toJSON() [29/34]

llvm::json::Value clang::clangd::toJSON | ( | const TypeHierarchyItem & | I | ) |

Definition at line 979 of file Protocol.cpp.

## ◆ toJSON() [30/34]

llvm::json::Value clang::clangd::toJSON | ( | const OffsetEncoding & | OE | ) |

Definition at line 1044 of file Protocol.cpp.

## ◆ toJSON() [31/34]

llvm::json::Value clang::clangd::toJSON | ( | const SemanticHighlightingInformation & | Highlighting | ) |

Definition at line 1065 of file Protocol.cpp.

## ◆ toJSON() [32/34]

llvm::json::Value clang::clangd::toJSON | ( | const SemanticHighlightingParams & | Highlighting | ) |

Definition at line 1071 of file Protocol.cpp.

## ◆ toJSON() [33/34]

llvm::json::Value clang::clangd::toJSON | ( | const SelectionRange & | Out | ) |

Definition at line 1084 of file Protocol.cpp.

## ◆ toJSON() [34/34]

llvm::json::Value clang::clangd::toJSON | ( | const DocumentLink & | DocumentLink | ) |

Definition at line 1097 of file Protocol.cpp.

## ◆ toLSPDiags()

void clang::clangd::toLSPDiags | ( | const Diag & | D,
|  | const URIForFile & | File,
|  | const ClangdDiagnosticOptions & | Opts,
|  | llvm::function_ref< void(clangd::Diagnostic, llvm::ArrayRef< Fix >)> | OutFn
| ) |  |

Conversion to LSP diagnostics.

Formats the error message of each diagnostic to include all its notes. Notes inside main file are also provided as separate diagnostics with their corresponding fixits. Notes outside main file do not have a corresponding LSP diagnostic, but can still be included as part of their main diagnostic's message.

Definition at line 330 of file Diagnostics.cpp.

References clang::clangd::URIForFile::canonicalize(), clang::clangd::DiagBase::Category, clang::clangd::Diagnostic::category, clang::clangd::Diag::Clang, clang::clangd::Diag::ClangTidy, clang::clangd::Diagnostic::code, clang::clangd::Diagnostic::codeActions, clang::clangd::ClangdDiagnosticOptions::EmbedFixesInDiagnostics, clang::clangd::ClangdDiagnosticOptions::EmitRelatedLocations, clang::clangd::URIForFile::file(), clang::clangd::Diag::Fixes, getSeverity(), clang::clangd::DiagBase::InsideMainFile, clang::clangd::DiagnosticRelatedInformation::location, clang::clangd::DiagnosticRelatedInformation::message, clang::clangd::Diagnostic::message, clang::clangd::Diag::Name, clang::clangd::Diag::Notes, clang::clangd::DiagBase::Range, clang::clangd::Location::range, clang::clangd::Diagnostic::range, clang::clangd::Diagnostic::relatedInformation, clang::clangd::ClangdDiagnosticOptions::SendDiagnosticCategory, clang::clangd::DiagBase::Severity, clang::clangd::Diagnostic::severity, clang::clangd::Diag::Source, clang::clangd::Diagnostic::source, toCodeAction(), clang::clangd::Diag::Unknown, clang::clangd::Location::uri, and vlog().

## ◆ toLSPRange()

static clangd::Range clang::clangd::toLSPRange | ( | llvm::StringRef | Code,
|  | Annotations::Range | R
| ) |  |
| static

Definition at line 30 of file Annotations.cpp.

References clang::clangd::Range::end, offsetToPosition(), and clang::clangd::Range::start.

Referenced by clang::clangd::Annotations::range(), and clang::clangd::Annotations::ranges().

## ◆ toSemanticHighlightingInformation()

std::vector< SemanticHighlightingInformation > clang::clangd::toSemanticHighlightingInformation | ( | llvm::ArrayRef< LineHighlightings > | Tokens | ) |

Convert to LSP's semantic highlighting information.

Definition at line 474 of file SemanticHighlighting.cpp.

## ◆ toSourceCode()

llvm::StringRef clang::clangd::toSourceCode | ( | const SourceManager & | SM,
|  | SourceRange | R
| ) |  |

Returns the source code covered by the source range.

EXPECTS: isValidFileRange(R) == true.

Definition at line 560 of file SourceCode.cpp.

## ◆ toString()

static const char* clang::clangd::toString | ( | OffsetEncoding | OE | ) |
| static

Definition at line 1031 of file Protocol.cpp.

References UnsupportedEncoding, UTF16, UTF32, and UTF8.

## ◆ toTextEdit()

TextEdit clang::clangd::toTextEdit | ( | const FixItHint & | FixIt,
|  | const SourceManager & | M,
|  | const LangOptions & | L
| ) |  |

Definition at line 661 of file SourceCode.cpp.

## ◆ toTextKind()

static llvm::StringRef clang::clangd::toTextKind | ( | MarkupKind | Kind | ) |
| static

Definition at line 711 of file Protocol.cpp.

References Markdown, and PlainText.

## ◆ toTextMateScope()

llvm::StringRef clang::clangd::toTextMateScope | ( | HighlightingKind | Kind | ) |

Converts a HighlightingKind to a corresponding TextMate scope (https://manual.macromates.com/en/language_grammars).

Definition at line 502 of file SemanticHighlighting.cpp.

References Class, DependentName, DependentType, Enum, EnumConstant, Field, Function, InactiveCode, LocalVariable, Macro, Method, Namespace, Parameter, Primitive, StaticField, StaticMethod, TemplateParameter, Typedef, and Variable.

## ◆ toTokenRange()

static SourceRange clang::clangd::toTokenRange | ( | CharSourceRange | Range,
|  | const SourceManager & | SM,
|  | const LangOptions & | LangOpts
| ) |  |
| static

Definition at line 429 of file SourceCode.cpp.

## ◆ toYAML() [1/4]

std::string clang::clangd::toYAML | ( | const Symbol & | S | ) |

Definition at line 388 of file YAMLSerialization.cpp.

## ◆ toYAML() [2/4]

std::string clang::clangd::toYAML | ( | const std::pair< SymbolID, ArrayRef< Ref >> & |  | ) |

## ◆ toYAML() [3/4]

std::string clang::clangd::toYAML | ( | const Relation & | R | ) |

Definition at line 410 of file YAMLSerialization.cpp.

## ◆ toYAML() [4/4]

std::string clang::clangd::toYAML | ( | const std::pair< SymbolID, llvm::ArrayRef< Ref >> & | Data | ) |

Definition at line 399 of file YAMLSerialization.cpp.

References Refs.

## ◆ transformCursorPosition()

unsigned clang::clangd::transformCursorPosition | ( | unsigned | Offset,
|  | const std::vector< tooling::Replacement > & | Replacements
| ) |  |

Determine the new cursor position after applying `Replacements`.

Analogue of tooling::Replacements::getShiftedCodePosition().

Definition at line 352 of file Format.cpp.

## ◆ tweakSelection()

static llvm::Expected<Tweak::Selection> clang::clangd::tweakSelection | ( | const Range & | Sel,
|  | const InputsAndAST & | AST
| ) |  |
| static

Definition at line 378 of file ClangdServer.cpp.

Referenced by clang::clangd::ClangdServer::applyTweak(), and clang::clangd::ClangdServer::enumerateTweaks().

## ◆ typeParents()

std::vector< const CXXRecordDecl * > clang::clangd::typeParents | ( | const CXXRecordDecl * | CXXRD | ) |

Given a record type declaration, find its base (parent) types.

Definition at line 730 of file XRefs.cpp.

## ◆ unionTokenRange()

static SourceRange clang::clangd::unionTokenRange | ( | SourceRange | R1,
|  | SourceRange | R2,
|  | const SourceManager & | SM,
|  | const LangOptions & | LangOpts
| ) |  |
| static

Definition at line 438 of file SourceCode.cpp.

## ◆ uriProximity()

static std::pair<float, unsigned> clang::clangd::uriProximity | ( | llvm::StringRef | SymbolURI,
|  | URIDistance * | D
| ) |  |
| static

Definition at line 319 of file Quality.cpp.

References clang::clangd::URIDistance::distance(), and clang::tidy::bugprone::f().

Referenced by clang::clangd::SymbolRelevanceSignals::evaluate().

## ◆ var()

Symbol clang::clangd::var | ( | llvm::StringRef | Name | ) |

Definition at line 68 of file TestIndex.cpp.

References sym().

## ◆ visibleNamespaces()

std::vector< std::string > clang::clangd::visibleNamespaces | ( | llvm::StringRef | Code,
|  | const format::FormatStyle & | Style
| ) |  |

Heuristically determine namespaces visible at a point, without parsing Code.

This considers using-directives and enclosing namespace-declarations that are visible (and not obfuscated) in the file itself (not headers). Code should be truncated at the point of interest.

The returned vector is always non-empty.

- The first element is the namespace that encloses the point: a declaration near the point would be within this namespace.
- The elements are the namespaces in scope at the point: an unqualified lookup would search within these namespaces.

Using directives are resolved against all enclosing scopes, but no other namespace directives.

example: using namespace a; namespace foo { using namespace b;

visibleNamespaces are {"foo::", "", "a::", "b::", "foo::b::"}, not "a::b::".

Definition at line 901 of file SourceCode.cpp.

## ◆ visitStrings()

template<typename Callback >

void clang::clangd::visitStrings | ( | Symbol & | S,
|  | const Callback & | CB
| ) |  |

Invokes Callback with each StringRef& contained in the Symbol.

Useful for deduplicating backing strings.

Definition at line 147 of file Symbol.h.

References clang::clangd::Symbol::CanonicalDeclaration, clang::clangd::Symbol::CompletionSnippetSuffix, clang::clangd::Symbol::Definition, clang::clangd::Symbol::Documentation, clang::clangd::SymbolLocation::FileURI, clang::clangd::Symbol::IncludeHeaders, clang::clangd::Symbol::Name, quality(), clang::clangd::Symbol::ReturnType, clang::clangd::Symbol::Scope, clang::clangd::Symbol::Signature, clang::clangd::Symbol::TemplateSpecializationArgs, and clang::clangd::Symbol::Type.

Referenced by own().

## ◆ vlog()

template<typename... Ts>

void clang::clangd::vlog | ( | const char * | Fmt,
|  | Ts &&... | Vals
| ) |  |

Definition at line 67 of file Logger.h.

References clang::clangd::detail::log(), and clang::clangd::Logger::Verbose.

Referenced by buildPreamble(), getMappedRanges(), toLSPDiags(), and clang::clangd::IncludeFixer::unresolvedNameRecorder().

## ◆ wait() [1/2]

template<typename Func >

LLVM_NODISCARD bool clang::clangd::wait | ( | std::unique_lock< std::mutex > & | Lock,
|  | std::condition_variable & | CV,
|  | Deadline | D,
|  | Func | F
| ) |  |

Waits on a condition variable until F() is true or D expires.

Definition at line 92 of file Threading.h.

## ◆ wait() [2/2]

void clang::clangd::wait | ( | std::unique_lock< std::mutex > & | Lock,
|  | std::condition_variable & | CV,
|  | Deadline | D
| ) |  |

Wait once on CV for the specified duration.

Definition at line 107 of file Threading.cpp.

References clang::clangd::Deadline::infinity(), clang::clangd::Deadline::time(), and clang::clangd::Deadline::zero().

Referenced by clang::clangd::BackgroundQueue::blockUntilIdleForTest(), clang::clangd::AsyncTaskRunner::wait(), and clang::clangd::AsyncTaskRunner::~AsyncTaskRunner().

## ◆ wordMatching()

static llvm::Optional<llvm::StringRef> clang::clangd::wordMatching | ( | llvm::StringRef | Name,
|  | const llvm::StringSet<> * | ContextWords
| ) |  |
| static

Definition at line 339 of file Quality.cpp.

Referenced by clang::clangd::SymbolRelevanceSignals::evaluate().

## ◆ writeCodeToFixMessage()

static void clang::clangd::writeCodeToFixMessage | ( | llvm::raw_ostream & | OS,
|  | llvm::StringRef | Code
| ) |  |
| static

Sanitizes a piece for presenting it in a synthesized fix message.

Ensures the result is not too large and does not contain newlines.

Definition at line 481 of file Diagnostics.cpp.

## ◆ writeYAML()

void clang::clangd::writeYAML | ( | const IndexFileOut & | O,
|  | llvm::raw_ostream & | OS
| ) |  |

Definition at line 335 of file YAMLSerialization.cpp.

Referenced by operator<<().

## ◆ X()

static URISchemeRegistry::Add<TestScheme> clang::clangd::X | ( | TestScheme::Scheme | ,
|  | "Test schema" |
| ) |  |
| static

Referenced by clang::clangd::TestScheme::uriFromAbsolutePath().

## ◆ xpcToJson()

llvm::json::Value clang::clangd::xpcToJson | ( | const xpc_object_t & | XPCObject | ) |

Definition at line 26 of file Conversion.cpp.

## Variable Documentation

## ◆ AwfulScore

constexpr int clang::clangd::AwfulScore = -(1 << 13)
| static

Definition at line 72 of file FuzzyMatch.cpp.

Referenced by calculateRoles(), and clang::clangd::FuzzyMatcher::FuzzyMatcher().

## ◆ CharRoles

constexpr uint8_t clang::clangd::CharRoles[]
| static

Initial value:
= {
0x00, 0xaa, 0xaa, 0xff,
0x00, 0x55, 0xaa, 0xff,
0x00, 0x55, 0x59, 0xff,
0x00, 0xaa, 0xaa, 0xff,
}

Definition at line 141 of file FuzzyMatch.cpp.

Referenced by calculateRoles().

## ◆ CharTypes

constexpr uint8_t clang::clangd::CharTypes[]
| static

Initial value:
= {
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0xff, 0xff, 0xff, 0xff,
0x55, 0x55, 0xf5, 0xff,
0xab, 0xaa, 0xaa, 0xaa,
0xaa, 0xaa, 0xea, 0xff,
0x57, 0x55, 0x55, 0x55,
0x55, 0x55, 0xd5, 0x3f,
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
}

Definition at line 114 of file FuzzyMatch.cpp.

Referenced by calculateRoles().

## ◆ CompletionItemKindMax

constexpr auto clang::clangd::CompletionItemKindMax

Initial value:
=
static_cast<size_t>(CompletionItemKind::TypeParameter)

Definition at line 291 of file Protocol.h.

## ◆ CompletionItemKindMin

constexpr auto clang::clangd::CompletionItemKindMin

Initial value:
=
static_cast<size_t>(CompletionItemKind::Text)
Text
std::string Text
Definition: HTMLGenerator.cpp:80

Definition at line 289 of file Protocol.h.

Referenced by adjustKindToCapability().

## ◆ FlagKey

Key<std::shared_ptr<std::atomic<bool> > > clang::clangd::FlagKey
| static

Definition at line 16 of file Cancellation.cpp.

## ◆ kCurrentOffsetEncoding

Key< OffsetEncoding > clang::clangd::kCurrentOffsetEncoding

Definition at line 124 of file SourceCode.cpp.

## ◆ kFileBeingProcessed

clang::clangd::Key<std::string> clang::clangd::kFileBeingProcessed
| static

Definition at line 75 of file TUScheduler.cpp.

## ◆ MaxSuffixComponents

constexpr int clang::clangd::MaxSuffixComponents = 3

The maximum number of path components in a key from StdSuffixHeaderMapping.

Used to minimize the number of lookups in suffix path mappings.

Definition at line 29 of file CanonicalIncludes.cpp.

Referenced by clang::clangd::CanonicalIncludes::addSystemHeadersMapping().

## ◆ PerfectBonus

constexpr int clang::clangd::PerfectBonus = 4
| static

Definition at line 74 of file FuzzyMatch.cpp.

## ◆ PreventStarvation

std::atomic<bool> clang::clangd::PreventStarvation = {false}
| static

Definition at line 14 of file BackgroundQueue.cpp.

## ◆ ShutdownRequested

std::atomic<bool> clang::clangd::ShutdownRequested = {false}
| static

Definition at line 26 of file Shutdown.cpp.

Referenced by shutdownRequested().

## ◆ SymbolKindMax

constexpr auto clang::clangd::SymbolKindMax = static_cast<size_t>(SymbolKind::TypeParameter)

Definition at line 330 of file Protocol.h.

## ◆ SymbolKindMin

constexpr auto clang::clangd::SymbolKindMin = static_cast<size_t>(SymbolKind::File)

Definition at line 329 of file Protocol.h.

Referenced by adjustKindToCapability().

## ◆ UnittestSchemeAnchorDest [1/2]

int LLVM_ATTRIBUTE_UNUSED clang::clangd::UnittestSchemeAnchorDest
| static

Initial value:
=
UnittestSchemeAnchorSource
clang::clangd::UnittestSchemeAnchorSource
volatile int UnittestSchemeAnchorSource
Definition: TestFS.cpp:132

Definition at line 19 of file URITests.cpp.

## ◆ UnittestSchemeAnchorDest [2/2]

int LLVM_ATTRIBUTE_UNUSED clang::clangd::UnittestSchemeAnchorDest
| static

Initial value:
=
UnittestSchemeAnchorSource
clang::clangd::UnittestSchemeAnchorSource
volatile int UnittestSchemeAnchorSource
Definition: TestFS.cpp:132

Definition at line 36 of file QualityTests.cpp.

## ◆ UnittestSchemeAnchorSource

volatile int clang::clangd::UnittestSchemeAnchorSource = 0

Definition at line 132 of file TestFS.cpp.