clang-tools 20.0.0git
Public Member Functions | Public Attributes | List of all members
clang::clangd::ClangdServer::Options Struct Reference

#include <ClangdServer.h>

Inheritance diagram for clang::clangd::ClangdServer::Options:
Inheritance graph
[legend]

Public Member Functions

 operator TUScheduler::Options () const
 

Public Attributes

unsigned AsyncThreadsCount = getDefaultAsyncThreadsCount()
 To process requests asynchronously, ClangdServer spawns worker threads.
 
ASTRetentionPolicy RetentionPolicy
 AST caching policy. The default is to keep up to 3 ASTs in memory.
 
bool StorePreamblesInMemory = true
 Cached preambles are potentially large. If false, store them on disk.
 
bool EnableOutgoingCalls = true
 Call hierarchy's outgoing calls feature requires additional index serving structures which increase memory usage.
 
clangd::PreambleThrottlerPreambleThrottler = nullptr
 This throttler controls which preambles may be built at a given time.
 
ModulesBuilderModulesManager = nullptr
 Manages to build module files.
 
bool BuildDynamicSymbolIndex = false
 If true, ClangdServer builds a dynamic in-memory index for symbols in opened files and uses the index to augment code completion results.
 
bool BackgroundIndex = false
 If true, ClangdServer automatically indexes files in the current project on background threads.
 
llvm::ThreadPriority BackgroundIndexPriority = llvm::ThreadPriority::Low
 
SymbolIndexStaticIndex = nullptr
 If set, use this index to augment code completion results.
 
std::function< Context(PathRef)> ContextProvider
 If set, queried to derive a processing context for some work.
 
TidyProviderRef ClangTidyProvider
 The Options provider to use when running clang-tidy.
 
std::optional< std::string > WorkspaceRoot
 Clangd's workspace root.
 
std::optional< std::string > ResourceDir
 The resource directory is used to find internal headers, overriding defaults and -resource-dir compiler flag).
 
DebouncePolicy UpdateDebounce
 Time to wait after a new file version before computing diagnostics.
 
bool ImplicitCancellation = true
 Cancel certain requests if the file changes before they begin running.
 
std::vector< std::string > QueryDriverGlobs
 Clangd will execute compiler drivers matching one of these globs to fetch system include path.
 
bool LineFoldingOnly = false
 
FeatureModuleSetFeatureModules = nullptr
 
bool UseDirtyHeaders = false
 If true, use the dirty buffer contents when building Preambles.
 
bool PreambleParseForwardingFunctions = false
 
bool ImportInsertions = false
 Whether include fixer insertions for Objective-C code should use #import instead of #include.
 
bool PublishInactiveRegions = false
 Whether to collect and publish information about inactive preprocessor regions in the document.
 

Detailed Description

Definition at line 101 of file ClangdServer.h.

Member Function Documentation

◆ operator TUScheduler::Options()

clang::clangd::ClangdServer::Options::operator TUScheduler::Options ( ) const
explicit

Definition at line 203 of file ClangdServer.cpp.

Member Data Documentation

◆ AsyncThreadsCount

unsigned clang::clangd::ClangdServer::Options::AsyncThreadsCount = getDefaultAsyncThreadsCount()

To process requests asynchronously, ClangdServer spawns worker threads.

If this is zero, no threads are spawned. All work is done on the calling thread, and callbacks are invoked before "async" functions return.

Definition at line 105 of file ClangdServer.h.

◆ BackgroundIndex

bool clang::clangd::ClangdServer::Options::BackgroundIndex = false

If true, ClangdServer automatically indexes files in the current project on background threads.

The index is stored in the project root.

Definition at line 129 of file ClangdServer.h.

◆ BackgroundIndexPriority

llvm::ThreadPriority clang::clangd::ClangdServer::Options::BackgroundIndexPriority = llvm::ThreadPriority::Low

Definition at line 130 of file ClangdServer.h.

◆ BuildDynamicSymbolIndex

bool clang::clangd::ClangdServer::Options::BuildDynamicSymbolIndex = false

If true, ClangdServer builds a dynamic in-memory index for symbols in opened files and uses the index to augment code completion results.

Definition at line 126 of file ClangdServer.h.

◆ ClangTidyProvider

TidyProviderRef clang::clangd::ClangdServer::Options::ClangTidyProvider

The Options provider to use when running clang-tidy.

If null, clang-tidy checks will be disabled.

Definition at line 148 of file ClangdServer.h.

◆ ContextProvider

std::function<Context(PathRef)> clang::clangd::ClangdServer::Options::ContextProvider

If set, queried to derive a processing context for some work.

Usually used to inject Config (see createConfiguredContextProvider).

When the provider is called, the active context will be that inherited from the request (e.g. addDocument()), or from the ClangdServer constructor if there is no such request (e.g. background indexing).

The path is an absolute path of the file being processed. If there is no particular file (e.g. project loading) then it is empty.

Definition at line 144 of file ClangdServer.h.

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

◆ EnableOutgoingCalls

bool clang::clangd::ClangdServer::Options::EnableOutgoingCalls = true

Call hierarchy's outgoing calls feature requires additional index serving structures which increase memory usage.

If false, these are not created and the feature is not enabled.

Definition at line 116 of file ClangdServer.h.

◆ FeatureModules

FeatureModuleSet* clang::clangd::ClangdServer::Options::FeatureModules = nullptr

Definition at line 182 of file ClangdServer.h.

◆ ImplicitCancellation

bool clang::clangd::ClangdServer::Options::ImplicitCancellation = true

Cancel certain requests if the file changes before they begin running.

This is useful for "transient" actions like enumerateTweaks that were likely implicitly generated, and avoids redundant work if clients forget to cancel. Clients that always cancel stale requests should clear this.

Definition at line 173 of file ClangdServer.h.

◆ ImportInsertions

bool clang::clangd::ClangdServer::Options::ImportInsertions = false

Whether include fixer insertions for Objective-C code should use #import instead of #include.

Definition at line 191 of file ClangdServer.h.

◆ LineFoldingOnly

bool clang::clangd::ClangdServer::Options::LineFoldingOnly = false

Definition at line 180 of file ClangdServer.h.

◆ ModulesManager

ModulesBuilder* clang::clangd::ClangdServer::Options::ModulesManager = nullptr

Manages to build module files.

Definition at line 122 of file ClangdServer.h.

◆ PreambleParseForwardingFunctions

bool clang::clangd::ClangdServer::Options::PreambleParseForwardingFunctions = false

Definition at line 187 of file ClangdServer.h.

◆ PreambleThrottler

clangd::PreambleThrottler* clang::clangd::ClangdServer::Options::PreambleThrottler = nullptr

This throttler controls which preambles may be built at a given time.

Definition at line 119 of file ClangdServer.h.

◆ PublishInactiveRegions

bool clang::clangd::ClangdServer::Options::PublishInactiveRegions = false

Whether to collect and publish information about inactive preprocessor regions in the document.

Definition at line 195 of file ClangdServer.h.

◆ QueryDriverGlobs

std::vector<std::string> clang::clangd::ClangdServer::Options::QueryDriverGlobs

Clangd will execute compiler drivers matching one of these globs to fetch system include path.

Definition at line 177 of file ClangdServer.h.

◆ ResourceDir

std::optional<std::string> clang::clangd::ClangdServer::Options::ResourceDir

The resource directory is used to find internal headers, overriding defaults and -resource-dir compiler flag).

If std::nullopt, ClangdServer calls CompilerInvocation::GetResourcePath() to obtain the standard resource directory.

Definition at line 160 of file ClangdServer.h.

◆ RetentionPolicy

ASTRetentionPolicy clang::clangd::ClangdServer::Options::RetentionPolicy

AST caching policy. The default is to keep up to 3 ASTs in memory.

Definition at line 108 of file ClangdServer.h.

◆ StaticIndex

SymbolIndex* clang::clangd::ClangdServer::Options::StaticIndex = nullptr

If set, use this index to augment code completion results.

Definition at line 133 of file ClangdServer.h.

◆ StorePreamblesInMemory

bool clang::clangd::ClangdServer::Options::StorePreamblesInMemory = true

Cached preambles are potentially large. If false, store them on disk.

Definition at line 111 of file ClangdServer.h.

◆ UpdateDebounce

DebouncePolicy clang::clangd::ClangdServer::Options::UpdateDebounce
Initial value:
= DebouncePolicy{
std::chrono::milliseconds(50),
std::chrono::milliseconds(500),
1,
}

Time to wait after a new file version before computing diagnostics.

Definition at line 163 of file ClangdServer.h.

◆ UseDirtyHeaders

bool clang::clangd::ClangdServer::Options::UseDirtyHeaders = false

If true, use the dirty buffer contents when building Preambles.

Definition at line 184 of file ClangdServer.h.

◆ WorkspaceRoot

std::optional<std::string> clang::clangd::ClangdServer::Options::WorkspaceRoot

Clangd's workspace root.

Relevant for "workspace" operations not bound to a particular file. FIXME: If not set, should use the current working directory.

Definition at line 153 of file ClangdServer.h.


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