diff options
Diffstat (limited to 'include/clang/Index/IndexingAction.h')
-rw-r--r-- | include/clang/Index/IndexingAction.h | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/include/clang/Index/IndexingAction.h b/include/clang/Index/IndexingAction.h new file mode 100644 index 0000000000000..e2e63dc6357d2 --- /dev/null +++ b/include/clang/Index/IndexingAction.h @@ -0,0 +1,48 @@ +//===--- IndexingAction.h - Frontend index action -------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_CLANG_INDEX_INDEXINGACTION_H +#define LLVM_CLANG_INDEX_INDEXINGACTION_H + +#include "clang/Basic/LLVM.h" +#include <memory> + +namespace clang { + class ASTUnit; + class FrontendAction; + +namespace index { + class IndexDataConsumer; + +struct IndexingOptions { + enum class SystemSymbolFilterKind { + None, + DeclarationsOnly, + All, + }; + + SystemSymbolFilterKind SystemSymbolFilter + = SystemSymbolFilterKind::DeclarationsOnly; + bool IndexFunctionLocals = false; +}; + +/// \param WrappedAction another frontend action to wrap over or null. +std::unique_ptr<FrontendAction> +createIndexingAction(std::shared_ptr<IndexDataConsumer> DataConsumer, + IndexingOptions Opts, + std::unique_ptr<FrontendAction> WrappedAction); + +void indexASTUnit(ASTUnit &Unit, + std::shared_ptr<IndexDataConsumer> DataConsumer, + IndexingOptions Opts); + +} // namespace index +} // namespace clang + +#endif |