1 //===---- CodeCompleteOptions.h - Code Completion Options -------*- C++ -*-===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 10 #ifndef LLVM_CLANG_SEMA_CODECOMPLETEOPTIONS_H 11 #define LLVM_CLANG_SEMA_CODECOMPLETEOPTIONS_H 12 13 namespace clang { 14 15 /// Options controlling the behavior of code completion. 16 class CodeCompleteOptions { 17 public: 18 /// Show macros in code completion results. 19 unsigned IncludeMacros : 1; 20 21 /// Show code patterns in code completion results. 22 unsigned IncludeCodePatterns : 1; 23 24 /// Show top-level decls in code completion results. 25 unsigned IncludeGlobals : 1; 26 27 /// Show decls in namespace (including the global namespace) in code 28 /// completion results. If this is 0, `IncludeGlobals` will be ignored. 29 /// 30 /// Currently, this only works when completing qualified IDs (i.e. 31 /// `Sema::CodeCompleteQualifiedId`). 32 /// FIXME: consider supporting more completion cases with this option. 33 unsigned IncludeNamespaceLevelDecls : 1; 34 35 /// Show brief documentation comments in code completion results. 36 unsigned IncludeBriefComments : 1; 37 38 /// Hint whether to load data from the external AST to provide full results. 39 /// If false, namespace-level declarations and macros from the preamble may be 40 /// omitted. 41 unsigned LoadExternal : 1; 42 43 /// Include results after corrections (small fix-its), e.g. change '.' to '->' 44 /// on member access, etc. 45 unsigned IncludeFixIts : 1; 46 CodeCompleteOptions()47 CodeCompleteOptions() 48 : IncludeMacros(0), IncludeCodePatterns(0), IncludeGlobals(1), 49 IncludeNamespaceLevelDecls(1), IncludeBriefComments(0), 50 LoadExternal(1), IncludeFixIts(0) {} 51 }; 52 53 } // namespace clang 54 55 #endif 56 57