1 /*
2 SPDX-FileCopyrightText: 2008 David Nolden <david.nolden.kdevelop@art-master.de>
3 SPDX-FileCopyrightText: 2013 Vlas Puhov <vlas.puhov@mail.ru>
4
5 SPDX-License-Identifier: LGPL-2.0-or-later
6 */
7
8 #include "completionsettings.h"
9 #include "languageconfig.h"
10 #include <KShell>
11 #include <KSharedConfig>
12
13 namespace KDevelop
14 {
15
completionLevelToString(ICompletionSettings::CompletionLevel l)16 static QString completionLevelToString(ICompletionSettings::CompletionLevel l)
17 {
18 if (l < 0 || l >= ICompletionSettings::LAST_LEVEL) {
19 return QString();
20 }
21
22 const static QString levels[ICompletionSettings::LAST_LEVEL] = {QStringLiteral("Minimal"), QStringLiteral("MinimalWhenAutomatic"), QStringLiteral("AlwaysFull")};
23 return levels[l];
24 }
25
self()26 CompletionSettings& CompletionSettings::self()
27 {
28 static CompletionSettings settings;
29 return settings;
30 }
31
todoMarkerWords() const32 QStringList CompletionSettings::todoMarkerWords() const
33 {
34 const QString markers = m_languageGroup.readEntry("todoMarkerWords", m_todoMarkerWords);
35 return KShell::splitArgs(markers);
36 }
37
minFilesForSimplifiedParsing() const38 int CompletionSettings::minFilesForSimplifiedParsing() const
39 {
40 return m_languageGroup.readEntry("minFilesForSimplifiedParsing", m_minFilesForSimplifiedParsing);
41 }
42
showMultiLineSelectionInformation() const43 bool CompletionSettings::showMultiLineSelectionInformation() const
44 {
45 return m_languageGroup.readEntry("showMultiLineSelectionInformation", m_showMultiLineInformation);
46 }
47
highlightProblematicLines() const48 bool CompletionSettings::highlightProblematicLines() const
49 {
50 return m_languageGroup.readEntry("highlightProblematicLines", m_highlightProblematicLines);
51 }
52
highlightSemanticProblems() const53 bool CompletionSettings::highlightSemanticProblems() const
54 {
55 return m_languageGroup.readEntry("highlightSemanticProblems", m_highlightSemanticProblems);
56 }
57
problemInlineNotesLevel() const58 ICompletionSettings::ProblemInlineNotesLevel CompletionSettings::problemInlineNotesLevel() const
59 {
60 return LanguageConfig::problemInlineNotesLevel();
61 }
62
boldDeclarations() const63 bool CompletionSettings::boldDeclarations() const
64 {
65 return m_languageGroup.readEntry("boldDeclarations", m_boldDeclarations);
66 }
67
globalColorizationLevel() const68 int CompletionSettings::globalColorizationLevel() const
69 {
70 return m_languageGroup.readEntry("globalColorization", m_globalColorizationLevel);
71 }
72
localColorizationLevel() const73 int CompletionSettings::localColorizationLevel() const
74 {
75 return m_languageGroup.readEntry("localColorization", m_localColorizationLevel);
76 }
77
automaticCompletionEnabled() const78 bool CompletionSettings::automaticCompletionEnabled() const
79 {
80 return m_languageGroup.readEntry("Automatic Invocation", m_automatic);
81 }
82
completionLevel() const83 ICompletionSettings::CompletionLevel CompletionSettings::completionLevel() const
84 {
85 const QString level = m_languageGroup.readEntry("completionDetail", completionLevelToString(m_level));
86
87 for (int i = 0; i < ICompletionSettings::LAST_LEVEL; i++) {
88 if (completionLevelToString(static_cast<CompletionLevel>(i)) == level) {
89 return static_cast<CompletionLevel>(i);
90 }
91 }
92 return m_level;
93 }
94
CompletionSettings()95 CompletionSettings::CompletionSettings()
96 : m_todoMarkerWords(QStringLiteral("TODO FIXME"))
97 , m_languageGroup(KSharedConfig::openConfig(), "Language Support"){}
98 }
99