clang-tools  8.0.0
Namespaces | Enumerations | Functions
ClangdMain.cpp File Reference
#include "Features.inc"
#include "ClangdLSPServer.h"
#include "Path.h"
#include "Trace.h"
#include "Transport.h"
#include "index/Serialization.h"
#include "clang/Basic/Version.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/FileSystem.h"
#include "llvm/Support/Path.h"
#include "llvm/Support/Program.h"
#include "llvm/Support/Signals.h"
#include "llvm/Support/raw_ostream.h"
#include <cstdlib>
#include <iostream>
#include <memory>
#include <string>
#include <thread>
Include dependency graph for ClangdMain.cpp:

Go to the source code of this file.

Namespaces

 clang
 ===– Representation.cpp - ClangDoc Representation --------—*- C++ -*-===//
 
 clang::clangd
 

Enumerations

enum  clang::clangd::CompletionStyleFlag { clang::clangd::Detailed, clang::clangd::Bundled }
 
enum  clang::clangd::PCHStorageFlag { clang::clangd::Disk, clang::clangd::Memory }
 
enum  clang::clangd::CompileArgsFrom { clang::clangd::LSPCompileArgs, clang::clangd::FilesystemCompileArgs }
 
enum  ErrorResultCode : int { ErrorResultCode::NoShutdownRequest = 1, ErrorResultCode::CantRunAsXPCService = 2 }
 

Functions

static llvm::cl::opt< bool > clang::clangd::UseDex ("use-dex-index", llvm::cl::desc("Use experimental Dex dynamic index."), llvm::cl::init(false), llvm::cl::Hidden)
 
static llvm::cl::opt< Pathclang::clangd::CompileCommandsDir ("compile-commands-dir", llvm::cl::desc("Specify a path to look for compile_commands.json. If path " "is invalid, clangd will look in the current directory and " "parent paths of each source file."))
 
static llvm::cl::opt< unsigned > clang::clangd::WorkerThreadsCount ("j", llvm::cl::desc("Number of async workers used by clangd"), llvm::cl::init(getDefaultAsyncThreadsCount()))
 
static llvm::cl::opt< CompletionStyleFlagclang::clangd::CompletionStyle ("completion-style", llvm::cl::desc("Granularity of code completion suggestions"), llvm::cl::values(clEnumValN(Detailed, "detailed", "One completion item for each semantically distinct " "completion, with full type information."), clEnumValN(Bundled, "bundled", "Similar completion items (e.g. function overloads) are " "combined. Type information shown where possible.")), llvm::cl::init(Detailed))
 
static llvm::cl::opt< bool > clang::clangd::IncludeIneligibleResults ("include-ineligible-results", llvm::cl::desc("Include ineligible completion results (e.g. private members)"), llvm::cl::init(CodeCompleteOptions().IncludeIneligibleResults), llvm::cl::Hidden)
 
static llvm::cl::opt< JSONStreamStyleclang::clangd::InputStyle ("input-style", llvm::cl::desc("Input JSON stream encoding"), llvm::cl::values(clEnumValN(JSONStreamStyle::Standard, "standard", "usual LSP protocol"), clEnumValN(JSONStreamStyle::Delimited, "delimited", "messages delimited by --- lines, with # comment support")), llvm::cl::init(JSONStreamStyle::Standard))
 
static llvm::cl::opt< bool > clang::clangd::PrettyPrint ("pretty", llvm::cl::desc("Pretty-print JSON output"), llvm::cl::init(false))
 
static llvm::cl::opt< Logger::Levelclang::clangd::LogLevel ("log", llvm::cl::desc("Verbosity of log messages written to stderr"), llvm::cl::values(clEnumValN(Logger::Error, "error", "Error messages only"), clEnumValN(Logger::Info, "info", "High level execution tracing"), clEnumValN(Logger::Debug, "verbose", "Low level details")), llvm::cl::init(Logger::Info))
 
static llvm::cl::opt< bool > clang::clangd::Test ("lit-test", llvm::cl::desc("Abbreviation for -input-style=delimited -pretty " "-run-synchronously -enable-test-scheme. " "Intended to simplify lit tests."), llvm::cl::init(false), llvm::cl::Hidden)
 
static llvm::cl::opt< bool > clang::clangd::EnableTestScheme ("enable-test-uri-scheme", llvm::cl::desc("Enable 'test:' URI scheme. Only use in lit tests."), llvm::cl::init(false), llvm::cl::Hidden)
 
static llvm::cl::opt< PCHStorageFlagclang::clangd::PCHStorage ("pch-storage", llvm::cl::desc("Storing PCHs in memory increases memory usages, but may " "improve performance"), llvm::cl::values(clEnumValN(PCHStorageFlag::Disk, "disk", "store PCHs on disk"), clEnumValN(PCHStorageFlag::Memory, "memory", "store PCHs in memory")), llvm::cl::init(PCHStorageFlag::Disk))
 
static llvm::cl::opt< int > clang::clangd::LimitResults ("limit-results", llvm::cl::desc("Limit the number of results returned by clangd. " "0 means no limit."), llvm::cl::init(100))
 
static llvm::cl::opt< bool > clang::clangd::RunSynchronously ("run-synchronously", llvm::cl::desc("Parse on main thread. If set, -j is ignored"), llvm::cl::init(false), llvm::cl::Hidden)
 
static llvm::cl::opt< Pathclang::clangd::ResourceDir ("resource-dir", llvm::cl::desc("Directory for system clang headers"), llvm::cl::init(""), llvm::cl::Hidden)
 
static llvm::cl::opt< Pathclang::clangd::InputMirrorFile ("input-mirror-file", llvm::cl::desc("Mirror all LSP input to the specified file. Useful for debugging."), llvm::cl::init(""), llvm::cl::Hidden)
 
static llvm::cl::opt< bool > clang::clangd::EnableIndex ("index", llvm::cl::desc("Enable index-based features. By default, clangd maintains an index " "built from symbols in opened files. Global index support needs to " "enabled separatedly."), llvm::cl::init(true), llvm::cl::Hidden)
 
static llvm::cl::opt< bool > clang::clangd::AllScopesCompletion ("all-scopes-completion", llvm::cl::desc("If set to true, code completion will include index symbols that are " "not defined in the scopes (e.g. " "namespaces) visible from the code completion point. Such completions " "can insert scope qualifiers."), llvm::cl::init(true))
 
static llvm::cl::opt< bool > clang::clangd::ShowOrigins ("debug-origin", llvm::cl::desc("Show origins of completion items"), llvm::cl::init(CodeCompleteOptions().ShowOrigins), llvm::cl::Hidden)
 
static llvm::cl::opt< bool > clang::clangd::HeaderInsertionDecorators ("header-insertion-decorators", llvm::cl::desc("Prepend a circular dot or space before the completion " "label, depending on whether " "an include line will be inserted or not."), llvm::cl::init(true))
 
static llvm::cl::opt< Pathclang::clangd::IndexFile ("index-file", llvm::cl::desc("Index file to build the static index. The file must have been created " "by a compatible clangd-index.\ "WARNING:This option is experimental only, and will be removed " "eventually. Don 't rely on it."), llvm::cl::init(""), llvm::cl::Hidden)
 
static llvm::cl::opt< bool > clang::clangd::EnableBackgroundIndex ("background-index", llvm::cl::desc("Index project code in the background and persist index on disk. " "Experimental"), llvm::cl::init(false), llvm::cl::Hidden)
 
static llvm::cl::opt< int > clang::clangd::BackgroundIndexRebuildPeriod ("background-index-rebuild-period", llvm::cl::desc("If set to non-zero, the background index rebuilds the symbol index " "periodically every X milliseconds; otherwise, the " "symbol index will be updated for each indexed file."), llvm::cl::init(5000), llvm::cl::Hidden)
 
static llvm::cl::opt< CompileArgsFromclang::clangd::CompileArgsFrom ("compile_args_from", llvm::cl::desc("The source of compile commands"), llvm::cl::values(clEnumValN(LSPCompileArgs, "lsp", "All compile commands come from LSP and " "'compile_commands.json' files are ignored"), clEnumValN(FilesystemCompileArgs, "filesystem", "All compile commands come from the " "'compile_commands.json' files")), llvm::cl::init(FilesystemCompileArgs), llvm::cl::Hidden)
 
static llvm::cl::opt< bool > clang::clangd::EnableFunctionArgSnippets ("function-arg-placeholders", llvm::cl::desc("When disabled, completions contain only parentheses for " "function calls. When enabled, completions also contain " "placeholders for method parameters."), llvm::cl::init(CodeCompleteOptions().EnableFunctionArgSnippets))
 
int main (int argc, char *argv[])
 

Enumeration Type Documentation

◆ ErrorResultCode

enum ErrorResultCode : int
strong
Enumerator
NoShutdownRequest 
CantRunAsXPCService 

Definition at line 257 of file ClangdMain.cpp.

Function Documentation

◆ main()

int main ( int  argc,
char *  argv[] 
)