Files
qt-creator/src/plugins/cmakeprojectmanager/cmakefilecompletionassist.cpp
hjk 4e0c4b0f23 CMake: Rename cmakekitinformation.{h,cpp} to cmakekitaspect.{h,cpp}
Follow up after renaming the contained classes.

Change-Id: I9393c367abdd4eac487e17676c98a357ff33c98c
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2023-08-22 05:56:39 +00:00

61 lines
1.7 KiB
C++

// Copyright (C) 2016 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "cmakefilecompletionassist.h"
#include "cmakekitaspect.h"
#include "cmakeprojectconstants.h"
#include "cmaketool.h"
#include <projectexplorer/project.h>
#include <projectexplorer/projectmanager.h>
#include <projectexplorer/target.h>
#include <texteditor/codeassist/assistinterface.h>
#include <QFileInfo>
using namespace TextEditor;
using namespace ProjectExplorer;
namespace CMakeProjectManager::Internal {
class CMakeFileCompletionAssist : public KeywordsCompletionAssistProcessor
{
public:
CMakeFileCompletionAssist();
IAssistProposal *performAsync() final;
};
CMakeFileCompletionAssist::CMakeFileCompletionAssist() :
KeywordsCompletionAssistProcessor(Keywords())
{
setSnippetGroup(Constants::CMAKE_SNIPPETS_GROUP_ID);
setDynamicCompletionFunction(&TextEditor::pathComplete);
}
IAssistProposal *CMakeFileCompletionAssist::performAsync()
{
Keywords kw;
const Utils::FilePath &filePath = interface()->filePath();
if (!filePath.isEmpty() && filePath.toFileInfo().isFile()) {
Project *p = ProjectManager::projectForFile(filePath);
if (p && p->activeTarget()) {
CMakeTool *cmake = CMakeKitAspect::cmakeTool(p->activeTarget()->kit());
if (cmake && cmake->isValid())
kw = cmake->keywords();
}
}
setKeywords(kw);
return KeywordsCompletionAssistProcessor::performAsync();
}
IAssistProcessor *CMakeFileCompletionAssistProvider::createProcessor(const AssistInterface *) const
{
return new CMakeFileCompletionAssist;
}
} // CMakeProjectManager::Internal