summaryrefslogtreecommitdiffstats
path: root/languages/cpp/cppcodecompletionconfig.h
diff options
context:
space:
mode:
Diffstat (limited to 'languages/cpp/cppcodecompletionconfig.h')
-rw-r--r--languages/cpp/cppcodecompletionconfig.h310
1 files changed, 310 insertions, 0 deletions
diff --git a/languages/cpp/cppcodecompletionconfig.h b/languages/cpp/cppcodecompletionconfig.h
new file mode 100644
index 00000000..13b23ccf
--- /dev/null
+++ b/languages/cpp/cppcodecompletionconfig.h
@@ -0,0 +1,310 @@
+//
+//
+// C++ Interface: $MODULE$
+//
+// Description:
+//
+//
+// Author: Roberto Raggi <robertol@kdevelop.org>, (C) 2003
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef CPPCODECOMPLETIONCONFIG_H
+#define CPPCODECOMPLETIONCONFIG_H
+
+#include <qobject.h>
+
+class CppSupportPart;
+class QDomDocument;
+
+
+/**
+@author Roberto Raggi
+*/
+class CppCodeCompletionConfig : public QObject
+{
+ Q_OBJECT
+public:
+ CppCodeCompletionConfig( CppSupportPart* part, QDomDocument* dom );
+ virtual ~CppCodeCompletionConfig();
+
+// bool includeGlobalFunctions() const
+// {
+// return m_includeGlobalFunctions;
+// }
+//
+// void setIncludeGlobalFunctions( bool b );
+//
+// bool includeTypes() const
+// {
+// return m_includeTypes;
+// }
+//
+// void setIncludeTypes( bool b );
+//
+// bool includeEnums() const
+// {
+// return m_includeEnums;
+// }
+//
+// void setIncludeEnums( bool b );
+//
+// bool includeTypedefs() const
+// {
+// return m_includeTypedefs;
+// }
+//
+// void setIncludeTypedefs( bool b );
+
+ enum CompletionBoxItemOrder {
+ ByAccessLevel,
+ ByClass,
+ ByAlphabet
+ };
+
+ ///Whether the completion-cache should be kept alive as long as the context does not change
+ bool usePermanentCaching() const {
+ return m_usePermanentCaching;
+ }
+
+ void setUsePermanentCaching(bool b) {
+ m_usePermanentCaching = b;
+ }
+
+ ///Whether higher namespaces(like the global one) should be included while computing the
+ ///completion-list when using automatic code-completion. Should get an option in the interface(slows down the completion).
+ bool alwaysIncludeNamespaces() const {
+ return m_alwaysIncludeNamespaces;
+ }
+
+ void setAlwaysIncludeNamespaces(bool b) {
+ m_alwaysIncludeNamespaces = b;
+ }
+
+ ///Whether all included headers should be processed by the preprocessor(makes macros work across header-files)
+ void setPreProcessAllHeaders(bool b) {
+ m_preProcessAllHeaders = b;
+ }
+
+ ///Whether headers that were found and were not yet parsed in their active state should be parsed into the code-model
+ void setParseMissingHeaders(bool b) {
+ m_parseMissingHeaders = b;
+ }
+
+ ///Additional include-paths defined by the user
+ void setCustomIncludePaths(QString str) {
+ m_includePaths = str;
+ }
+
+ ///Whether we should try to automatically find out the used include-path from Makefiles etc.
+ void setResolveIncludePaths(bool b) {
+ m_resolveIncludePaths = b;
+ }
+
+ ///Whether higher namespaces(like the global one) should be included while computing the
+ ///completion-list when using automatic code-completion. Should get an option in the interface(slows down the completion).
+
+ ///Whether all included headers should be processed by the preprocessor(makes macros work across header-files)
+ bool preProcessAllHeaders() const {
+ return m_preProcessAllHeaders;
+ }
+
+ ///Whether headers that were found and were not yet parsed in their active state should be parsed into the code-model
+ bool parseMissingHeaders() const {
+ return m_parseMissingHeaders;
+ }
+
+ ///Additional include-paths defined by the user
+ QString customIncludePaths() const {
+ return m_includePaths;
+ }
+
+ ///Whether we should try to automatically find out the used include-path from Makefiles etc.
+ bool resolveIncludePaths() const {
+ return m_resolveIncludePaths;
+ }
+
+ bool alwaysParseInBackground() const {
+ return m_alwaysParseInBackground;
+ }
+
+ void setAlwaysParseInBackground(bool b) {
+ m_alwaysParseInBackground = b;
+ }
+
+ bool showNamespaceAppearances() const;
+
+ bool showOnlyAccessibleItems() const {
+ ///not yet used
+ return m_showOnlyAccessibleItems;
+ }
+
+ CompletionBoxItemOrder completionBoxItemOrder() const {
+ ///not yet used
+ return m_completionBoxItemOrder;
+ }
+
+ bool showEvaluationContextMenu() const {
+ ///used
+ return m_showEvaluationContextMenu;
+ }
+
+ bool showCommentWithArgumentHint() const {
+ ///used
+ return m_showCommentWithArgumentHint;
+ }
+
+ bool statusBarTypeEvaluation() const {
+ ///used
+ return m_statusBarTypeEvaluation;
+ }
+
+ QString namespaceAliases() const {
+ ///used
+ return m_namespaceAliases;
+ }
+
+ bool processPrimaryTypes() const { ///The "do complete return-type-evaluation" entry. However it should be renamed, because it also covers Variable-types and typedefs!
+ ///used
+ return m_processPrimaryTypes;
+ }
+
+ bool processFunctionArguments() const { ///The "do complete argument-type-evaluation" entry
+ ///used
+ return m_processFunctionArguments;
+ }
+
+
+ void setShowOnlyAccessibleItems( bool b ) {
+ ///not yet used
+ m_showOnlyAccessibleItems = b;
+ }
+
+ void setCompletionBoxItemOrder( CompletionBoxItemOrder b ) {
+ ///not yet used
+ m_completionBoxItemOrder = b;
+ }
+
+ void setShowEvaluationContextMenu( bool b ) {
+ ///used
+ m_showEvaluationContextMenu = b;
+ }
+
+ void setShowCommentWithArgumentHint( bool b ) {
+ ///used
+ m_showCommentWithArgumentHint = b;
+ }
+
+ void setStatusBarTypeEvaluation( bool b ) {
+ ///used
+ m_statusBarTypeEvaluation = b;
+ }
+
+ void setNamespaceAliases( QString n ) {
+ ///used
+ m_namespaceAliases = n;
+ }
+
+ void setProcessPrimaryTypes( bool b ) { ///The "do complete return-type-evaluation" entry. However it should be renamed, because it also covers Variable-types and typedefs!
+ ///used
+ m_processPrimaryTypes = b;
+ }
+
+ void setProcessFunctionArguments( bool b ) { ///The "do complete argument-type-evaluation" entry
+ ///used
+ m_processFunctionArguments = b;
+ }
+
+ bool automaticCodeCompletion() const {
+ return m_automaticCodeCompletion;
+ }
+
+
+ void setAutomaticCodeCompletion( bool b );
+
+ bool automaticArgumentsHint() const
+ {
+ ///used
+ return m_automaticArgumentsHint;
+ }
+
+ void setAutomaticArgumentsHint( bool b );
+
+ bool automaticHeaderCompletion() const
+ {
+ ///used
+ return m_automaticHeaderCompletion;
+ }
+
+ void setAutomaticHeaderCompletion( bool b );
+
+ int codeCompletionDelay() const
+ {
+ ///used
+ return m_codeCompletionDelay;
+ }
+
+ void setCodeCompletionDelay( int delay );
+
+ int argumentsHintDelay() const
+ {
+ ///used
+ return m_argumentsHintDelay;
+ }
+
+ void setArgumentsHintDelay( int delay );
+
+ int headerCompletionDelay() const
+ {
+ ///used
+ return m_headerCompletionDelay;
+ }
+
+ void setHeaderCompletionDelay( int delay );
+
+public slots:
+ void store();
+
+signals:
+ void stored();
+
+private:
+ void init();
+
+private:
+ CppSupportPart* m_part;
+ QDomDocument* m_dom;
+/* bool m_includeGlobalFunctions;
+ bool m_includeTypes;
+ bool m_includeEnums;
+ bool m_includeTypedefs;*/
+ bool m_automaticCodeCompletion;
+ bool m_automaticArgumentsHint;
+ bool m_automaticHeaderCompletion;
+ int m_codeCompletionDelay;
+ int m_argumentsHintDelay;
+ int m_headerCompletionDelay;
+
+ bool m_preProcessAllHeaders;
+ bool m_parseMissingHeaders;
+ bool m_resolveIncludePaths;
+ bool m_alwaysIncludeNamespaces;
+ bool m_alwaysParseInBackground;
+ bool m_usePermanentCaching;
+ QString m_includePaths;
+
+ bool m_showOnlyAccessibleItems;
+ CompletionBoxItemOrder m_completionBoxItemOrder;
+ bool m_showEvaluationContextMenu;
+ bool m_showCommentWithArgumentHint;
+ bool m_statusBarTypeEvaluation;
+ QString m_namespaceAliases;
+ bool m_processPrimaryTypes;
+ bool m_processFunctionArguments;
+
+ static QString defaultPath;
+};
+
+#endif
+// kate: indent-mode csands; tab-width 4;