1 /*
2     SPDX-FileCopyrightText: 2008 David Nolden <david.nolden.kdevelop@art-master.de>
3 
4     SPDX-License-Identifier: LGPL-2.0-or-later
5 */
6 
7 #ifndef KDEVPLATFORM_ICOMPLETIONSETTINGS_H
8 #define KDEVPLATFORM_ICOMPLETIONSETTINGS_H
9 
10 #include <QObject>
11 #include "interfacesexport.h"
12 
13 namespace KDevelop {
14 
15 class KDEVPLATFORMINTERFACES_EXPORT ICompletionSettings : public QObject
16 {
17     Q_OBJECT
18 
19 public:
20     ~ICompletionSettings() override;
21 
22     enum CompletionLevel {
23         Minimal,
24         MinimalWhenAutomatic,
25         AlwaysFull,
26         LAST_LEVEL
27     };
28 
29     enum ProblemInlineNotesLevel {
30         NoProblemsInlineNotesLevel,
31         ErrorsProblemInlineNotesLevel,
32         WarningsAndErrorsProblemInlineNotesLevel,
33         AllProblemsInlineNotesLevel
34     };
35 
36     virtual int minFilesForSimplifiedParsing() const = 0;
37 
38     virtual CompletionLevel completionLevel() const = 0;
39 
40     virtual bool automaticCompletionEnabled() const = 0;
41 
42     virtual int localColorizationLevel() const = 0;
43     virtual int globalColorizationLevel() const = 0;
44 
45     virtual bool highlightSemanticProblems() const = 0;
46     virtual bool highlightProblematicLines() const = 0;
47     virtual ProblemInlineNotesLevel problemInlineNotesLevel() const = 0;
48     virtual bool boldDeclarations() const = 0;
49 
50     virtual bool showMultiLineSelectionInformation() const = 0;
51 
52     virtual QStringList todoMarkerWords() const = 0;
53 
54 Q_SIGNALS:
55     void settingsChanged(ICompletionSettings*);
56 };
57 
58 }
59 
60 #endif
61