IndexingOptions.h revision 360784
1//===--- IndexingOptions.h - Options for indexing ---------------*- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
9#ifndef LLVM_CLANG_INDEX_INDEXINGOPTIONS_H
10#define LLVM_CLANG_INDEX_INDEXINGOPTIONS_H
11
12#include "clang/Frontend/FrontendOptions.h"
13#include <memory>
14#include <string>
15
16namespace clang {
17namespace index {
18
19struct IndexingOptions {
20  enum class SystemSymbolFilterKind {
21    None,
22    DeclarationsOnly,
23    All,
24  };
25
26  SystemSymbolFilterKind SystemSymbolFilter =
27      SystemSymbolFilterKind::DeclarationsOnly;
28  bool IndexFunctionLocals = false;
29  bool IndexImplicitInstantiation = false;
30  // Whether to index macro definitions in the Preprocesor when preprocessor
31  // callback is not available (e.g. after parsing has finished). Note that
32  // macro references are not available in Proprocessor.
33  bool IndexMacrosInPreprocessor = false;
34  // Has no effect if IndexFunctionLocals are false.
35  bool IndexParametersInDeclarations = false;
36  bool IndexTemplateParameters = false;
37};
38
39} // namespace index
40} // namespace clang
41
42#endif // LLVM_CLANG_INDEX_INDEXINGOPTIONS_H
43