clang-tools 20.0.0git
Classes | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
clang::clangd::config::Fragment Struct Reference

A chunk of configuration obtained from a config file, LSP, or elsewhere. More...

#include <ConfigFragment.h>

Classes

struct  CompileFlagsBlock
 Conditions in the CompileFlags block affect how a file is parsed. More...
 
struct  CompletionBlock
 Describes code completion preferences. More...
 
struct  DiagnosticsBlock
 Controls behavior of diagnostics (errors and warnings). More...
 
struct  HoverBlock
 Describes hover preferences. More...
 
struct  IfBlock
 Conditions in the If block restrict when a Fragment applies. More...
 
struct  IndexBlock
 Controls how clangd understands code outside the current file. More...
 
struct  InlayHintsBlock
 Configures labels shown inline with the code. More...
 
struct  SemanticTokensBlock
 Configures semantic tokens that are produced by clangd. More...
 
struct  SourceInfo
 These fields are not part of the user-specified configuration, but instead are populated by the parser to describe the configuration source. More...
 
struct  StyleBlock
 

Public Member Functions

CompiledFragment compile (DiagnosticCallback) &&
 Analyzes and consumes this fragment, possibly yielding more diagnostics.
 

Static Public Member Functions

static std::vector< FragmentparseYAML (llvm::StringRef YAML, llvm::StringRef BufferName, DiagnosticCallback)
 Parses fragments from a YAML file (one from each — delimited document).
 

Public Attributes

SourceInfo Source
 
IfBlock If
 
CompileFlagsBlock CompileFlags
 
IndexBlock Index
 
DiagnosticsBlock Diagnostics
 
StyleBlock Style
 
CompletionBlock Completion
 
HoverBlock Hover
 
InlayHintsBlock InlayHints
 
SemanticTokensBlock SemanticTokens
 

Detailed Description

A chunk of configuration obtained from a config file, LSP, or elsewhere.

Definition at line 62 of file ConfigFragment.h.

Member Function Documentation

◆ compile()

CompiledFragment clang::clangd::config::Fragment::compile ( DiagnosticCallback  D) &&

Analyzes and consumes this fragment, possibly yielding more diagnostics.

This always produces a usable result (errors are recovered).

Typically, providers will compile a Fragment once when it's first loaded, caching the result for reuse. Like a compiled program, this is good for performance and also encourages errors to be reported early and only once.

The returned function is a cheap-copyable wrapper of refcounted internals.

Definition at line 709 of file ConfigCompile.cpp.

References C, ConfigFile(), SPAN_ATTACH, and clang::clangd::vlog().

◆ parseYAML()

std::vector< Fragment > clang::clangd::config::Fragment::parseYAML ( llvm::StringRef  YAML,
llvm::StringRef  BufferName,
DiagnosticCallback  Diags 
)
static

Parses fragments from a YAML file (one from each — delimited document).

Documents that contained fatal errors are omitted from the results. BufferName is used for the SourceMgr and diagnostics.

Definition at line 457 of file ConfigYAML.cpp.

References clang::clangd::config::Fragment::SourceInfo::Location, clang::clangd::config::Fragment::SourceInfo::Manager, Node, Source, and clang::clangd::YAML.

Referenced by clang::clangd::config::FileConfigCache::get().

Member Data Documentation

◆ CompileFlags

CompileFlagsBlock clang::clangd::config::Fragment::CompileFlags

Definition at line 173 of file ConfigFragment.h.

◆ Completion

CompletionBlock clang::clangd::config::Fragment::Completion

Definition at line 312 of file ConfigFragment.h.

◆ Diagnostics

DiagnosticsBlock clang::clangd::config::Fragment::Diagnostics

Definition at line 294 of file ConfigFragment.h.

◆ Hover

HoverBlock clang::clangd::config::Fragment::Hover

Definition at line 319 of file ConfigFragment.h.

◆ If

IfBlock clang::clangd::config::Fragment::If

Definition at line 122 of file ConfigFragment.h.

◆ Index

IndexBlock clang::clangd::config::Fragment::Index

Definition at line 206 of file ConfigFragment.h.

◆ InlayHints

InlayHintsBlock clang::clangd::config::Fragment::InlayHints

Definition at line 337 of file ConfigFragment.h.

◆ SemanticTokens

SemanticTokensBlock clang::clangd::config::Fragment::SemanticTokens

Definition at line 346 of file ConfigFragment.h.

◆ Source

SourceInfo clang::clangd::config::Fragment::Source

Definition at line 99 of file ConfigFragment.h.

Referenced by clang::clangd::config::FileConfigCache::get(), and parseYAML().

◆ Style

StyleBlock clang::clangd::config::Fragment::Style

Definition at line 304 of file ConfigFragment.h.


The documentation for this struct was generated from the following files: