• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //===---- CodeCompleteOptions.h - Code Completion Options -------*- 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_SEMA_CODECOMPLETEOPTIONS_H
10 #define LLVM_CLANG_SEMA_CODECOMPLETEOPTIONS_H
11 
12 namespace clang {
13 
14 /// Options controlling the behavior of code completion.
15 class CodeCompleteOptions {
16 public:
17   /// Show macros in code completion results.
18   unsigned IncludeMacros : 1;
19 
20   /// Show code patterns in code completion results.
21   unsigned IncludeCodePatterns : 1;
22 
23   /// Show top-level decls in code completion results.
24   unsigned IncludeGlobals : 1;
25 
26   /// Show decls in namespace (including the global namespace) in code
27   /// completion results. If this is 0, `IncludeGlobals` will be ignored.
28   ///
29   /// Currently, this only works when completing qualified IDs (i.e.
30   /// `Sema::CodeCompleteQualifiedId`).
31   /// FIXME: consider supporting more completion cases with this option.
32   unsigned IncludeNamespaceLevelDecls : 1;
33 
34   /// Show brief documentation comments in code completion results.
35   unsigned IncludeBriefComments : 1;
36 
37   /// Hint whether to load data from the external AST to provide full results.
38   /// If false, namespace-level declarations and macros from the preamble may be
39   /// omitted.
40   unsigned LoadExternal : 1;
41 
42   /// Include results after corrections (small fix-its), e.g. change '.' to '->'
43   /// on member access, etc.
44   unsigned IncludeFixIts : 1;
45 
CodeCompleteOptions()46   CodeCompleteOptions()
47       : IncludeMacros(0), IncludeCodePatterns(0), IncludeGlobals(1),
48         IncludeNamespaceLevelDecls(1), IncludeBriefComments(0),
49         LoadExternal(1), IncludeFixIts(0) {}
50 };
51 
52 } // namespace clang
53 
54 #endif
55 
56