Differential D1047 Diff 2606 languages/plugins/custom-definesandincludes/definesandincludesmanager.cpp
Changeset View
Changeset View
Standalone View
Standalone View
languages/plugins/custom-definesandincludes/definesandincludesmanager.cpp
Show First 20 Lines • Show All 68 Lines • ▼ Show 20 Line(s) | 68 | if (targetDirectory == itemPath || targetDirectory.isParentOf(itemPath)) { | |||
---|---|---|---|---|---|
69 | ret.includes += entry.includes; | 69 | ret.includes += entry.includes; | ||
70 | 70 | | |||
71 | for (auto it = entry.defines.constBegin(); it != entry.defines.constEnd(); it++) { | 71 | for (auto it = entry.defines.constBegin(); it != entry.defines.constEnd(); it++) { | ||
72 | if (!ret.defines.contains(it.key())) { | 72 | if (!ret.defines.contains(it.key())) { | ||
73 | ret.defines[it.key()] = it.value(); | 73 | ret.defines[it.key()] = it.value(); | ||
74 | } | 74 | } | ||
75 | } | 75 | } | ||
76 | 76 | | |||
77 | if (ret.parserArguments.isEmpty() || targetDirectory.segments().size() > closestPath.segments().size()) { | 77 | if (targetDirectory.segments().size() > closestPath.segments().size()) { | ||
78 | ret.parserArguments = entry.parserArguments; | 78 | ret.parserArguments = entry.parserArguments; | ||
79 | closestPath = targetDirectory; | 79 | closestPath = targetDirectory; | ||
80 | } | 80 | } | ||
81 | } | 81 | } | ||
82 | } | 82 | } | ||
83 | ret.includes.removeDuplicates(); | 83 | ret.includes.removeDuplicates(); | ||
84 | 84 | | |||
85 | Q_ASSERT(!ret.parserArguments.isEmpty()); | 85 | Q_ASSERT(!ret.parserArguments.cppArguments.isEmpty()); | ||
86 | Q_ASSERT(!ret.parserArguments.cArguments.isEmpty()); | ||||
86 | 87 | | |||
87 | return ret; | 88 | return ret; | ||
88 | } | 89 | } | ||
89 | 90 | | |||
90 | void merge(Defines* target, const Defines& source) | 91 | void merge(Defines* target, const Defines& source) | ||
91 | { | 92 | { | ||
92 | if (target->isEmpty()) { | 93 | if (target->isEmpty()) { | ||
93 | *target = source; | 94 | *target = source; | ||
▲ Show 20 Lines • Show All 177 Lines • ▼ Show 20 Line(s) | 271 | if (m_backgroundProviders.contains(provider)) { | |||
271 | return; | 272 | return; | ||
272 | } | 273 | } | ||
273 | 274 | | |||
274 | m_backgroundProviders.push_back(provider); | 275 | m_backgroundProviders.push_back(provider); | ||
275 | } | 276 | } | ||
276 | 277 | | |||
277 | QString DefinesAndIncludesManager::parserArguments(KDevelop::ProjectBaseItem* item) const | 278 | QString DefinesAndIncludesManager::parserArguments(KDevelop::ProjectBaseItem* item) const | ||
278 | { | 279 | { | ||
279 | if(!item){ | 280 | Q_ASSERT(item); | ||
280 | return m_settings->defaultParserArguments(); | | |||
281 | } | | |||
282 | 281 | | |||
283 | Q_ASSERT(QThread::currentThread() == qApp->thread()); | 282 | Q_ASSERT(QThread::currentThread() == qApp->thread()); | ||
284 | 283 | | |||
285 | auto cfg = item->project()->projectConfiguration().data(); | 284 | auto cfg = item->project()->projectConfiguration().data(); | ||
286 | return findConfigForItem(m_settings->readPaths(cfg), item).parserArguments; | 285 | const auto arguments = findConfigForItem(m_settings->readPaths(cfg), item).parserArguments; | ||
286 | auto languageType = Utils::languageType(item->path(), arguments.parseAmbiguousAsCPP); | ||||
kfunk: Nitpick: lt -> languageType | |||||
287 | | ||||
288 | return languageType == Utils::C ? arguments.cArguments : arguments.cppArguments; | ||||
289 | } | ||||
290 | | ||||
291 | QString DefinesAndIncludesManager::parserArguments(const QString& path) const | ||||
292 | { | ||||
kfunk: I've seen this code snippet before :)
Please share code | |||||
293 | const auto args = m_settings->defaultParserArguments(); | ||||
mwolff: wrap literals with QLatin1String, use .compare with Qt::CaseInsensitive | |||||
294 | auto languageType = Utils::languageType(Path(path)); | ||||
kfunk: Nitpick: lt -> languageType | |||||
295 | return languageType == Utils::C ? args.cArguments : args.cppArguments; | ||||
287 | } | 296 | } | ||
288 | 297 | | |||
289 | int DefinesAndIncludesManager::perProjectConfigPages() const | 298 | int DefinesAndIncludesManager::perProjectConfigPages() const | ||
290 | { | 299 | { | ||
291 | return 1; | 300 | return 1; | ||
292 | } | 301 | } | ||
293 | 302 | | |||
294 | ConfigPage* DefinesAndIncludesManager::perProjectConfigPage(int number, const ProjectConfigOptions& options, QWidget* parent) | 303 | ConfigPage* DefinesAndIncludesManager::perProjectConfigPage(int number, const ProjectConfigOptions& options, QWidget* parent) | ||
295 | { | 304 | { | ||
296 | if (number == 0) { | 305 | if (number == 0) { | ||
auto args = m_settings->defaultParserArguments(); mwolff: auto args = m_settings->defaultParserArguments();
return lt == Utils::C ? args.cArguments… | |||||
297 | return new DefinesAndIncludesConfigPage(this, options, parent); | 306 | return new DefinesAndIncludesConfigPage(this, options, parent); | ||
298 | } | 307 | } | ||
299 | return nullptr; | 308 | return nullptr; | ||
300 | } | 309 | } | ||
301 | 310 | | |||
302 | KDevelop::ConfigPage* DefinesAndIncludesManager::configPage(int number, QWidget* parent) | 311 | KDevelop::ConfigPage* DefinesAndIncludesManager::configPage(int number, QWidget* parent) | ||
303 | { | 312 | { | ||
304 | return number == 0 ? new CompilersWidget(parent) : nullptr; | 313 | return number == 0 ? new CompilersWidget(parent) : nullptr; | ||
305 | } | 314 | } | ||
306 | 315 | | |||
307 | int DefinesAndIncludesManager::configPages() const | 316 | int DefinesAndIncludesManager::configPages() const | ||
308 | { | 317 | { | ||
309 | return 1; | 318 | return 1; | ||
310 | } | 319 | } | ||
311 | 320 | | |||
312 | #include "definesandincludesmanager.moc" | 321 | #include "definesandincludesmanager.moc" |
Nitpick: lt -> languageType