clang-tools  14.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>

Collaboration diagram for clang::clangd::config::Fragment:
Collaboration graph
[legend]

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  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  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. More...
 

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). More...
 

Public Attributes

SourceInfo Source
 
IfBlock If
 
CompileFlagsBlock CompileFlags
 
IndexBlock Index
 
DiagnosticsBlock Diagnostics
 
StyleBlock Style
 
CompletionBlock Completion
 

Detailed Description

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

Definition at line 64 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 524 of file ConfigCompile.cpp.

References ConfigFile(), and SM.

◆ 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 357 of file ConfigYAML.cpp.

References Ctx, Diags, SM, and clang::clangd::YAML.

Member Data Documentation

◆ CompileFlags

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

Definition at line 165 of file ConfigFragment.h.

◆ Completion

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

Definition at line 268 of file ConfigFragment.h.

◆ Diagnostics

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

Definition at line 250 of file ConfigFragment.h.

◆ If

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

Definition at line 124 of file ConfigFragment.h.

◆ Index

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

Definition at line 195 of file ConfigFragment.h.

◆ Source

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

Definition at line 101 of file ConfigFragment.h.

◆ Style

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

Definition at line 260 of file ConfigFragment.h.


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