8#ifndef LLVM_CLANG_TOOLS_EXTRA_CLANGD_COMPILECOMMANDS_H
9#define LLVM_CLANG_TOOLS_EXTRA_CLANGD_COMPILECOMMANDS_H
13#include "llvm/ADT/StringMap.h"
14#include "llvm/ADT/StringRef.h"
15#include "llvm/Support/CommandLine.h"
51 llvm::StringRef TargetFile)
const;
83 void strip(llvm::StringRef Arg);
91 unsigned char Modes = 0;
92 uint16_t Priority = 0;
93 uint16_t ExactArgs = 0;
94 uint16_t PrefixArgs = 0;
96 static llvm::ArrayRef<Rule> rulesFor(llvm::StringRef Arg);
97 const Rule *matchingRule(llvm::StringRef Arg,
unsigned Mode,
98 unsigned &ArgCount)
const;
99 llvm::SmallVector<Rule> Rules;
100 std::deque<std::string> Storage;
void process(std::vector< std::string > &Args) const
ArgStripper & operator=(const ArgStripper &)=delete
ArgStripper(const ArgStripper &)=delete
ArgStripper(ArgStripper &&)=default
ArgStripper & operator=(ArgStripper &&)=default
void strip(llvm::StringRef Arg)
Memoize is a cache to store and reuse computation results based on a key.
std::string printArgv(llvm::ArrayRef< llvm::StringRef > Args)
llvm::unique_function< void(tooling::CompileCommand &, llvm::StringRef) const > SystemIncludeExtractorFn
Extracts system include search path from drivers matching QueryDriverGlobs and adds them to the compi...
===– Representation.cpp - ClangDoc Representation --------—*- C++ -*-===//
std::optional< std::string > ResourceDir
static CommandMangler detect()
SystemIncludeExtractorFn SystemIncludeExtractor
std::optional< std::string > ClangPath
std::optional< std::string > Sysroot
static CommandMangler forTests()
void operator()(tooling::CompileCommand &Cmd, llvm::StringRef TargetFile) const