Files
qt-creator/src/plugins/cppeditor/cppmodelmanagersupport.h
Christian Kandeler bfecefabc0 CppEditor: Let users check for unused functions in (sub-)projects
Note that especially in C++, there can be a lot of false positives,
especially in template-heavy code bases. We filter out the most notorious
offenders, namely:
    - templates themselves
    - constructors and destructors
    - *begin() and *end()
    - qHash()
    - main()
Since the code model does not know about symbol visibility, the
functionality is quite useless for libraries, unless you want to check
your test coverage.
The procedure is rather slow, but that shouldn't matter so much, as it's
something you'll only run "once in a while".

Fixes: QTCREATORBUG-6772
Change-Id: If00a537b760a9b0babdda6c848133715c3240155
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2022-11-24 09:27:03 +00:00

61 lines
2.1 KiB
C++

// Copyright (C) 2016 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0
#pragma once
#include "cppeditor_global.h"
#include "cursorineditor.h"
#include <utils/link.h>
#include <QSharedPointer>
#include <QString>
#include <memory>
namespace Core { class SearchResult; }
namespace TextEditor {
class TextDocument;
class BaseHoverHandler;
} // namespace TextEditor
namespace CppEditor {
class BaseEditorDocumentProcessor;
class CppCompletionAssistProvider;
class ProjectPart;
class RefactoringEngineInterface;
class CPPEDITOR_EXPORT ModelManagerSupport
{
public:
using Ptr = QSharedPointer<ModelManagerSupport>;
public:
virtual ~ModelManagerSupport() = 0;
virtual BaseEditorDocumentProcessor *createEditorDocumentProcessor(
TextEditor::TextDocument *baseTextDocument) = 0;
virtual bool usesClangd(const TextEditor::TextDocument *) const { return false; }
virtual void followSymbol(const CursorInEditor &data,
const Utils::LinkHandler &processLinkCallback,
bool resolveTarget, bool inNextSplit) = 0;
virtual void followSymbolToType(const CursorInEditor &data,
const Utils::LinkHandler &processLinkCallback,
bool inNextSplit) = 0;
virtual void switchDeclDef(const CursorInEditor &data,
const Utils::LinkHandler &processLinkCallback) = 0;
virtual void startLocalRenaming(const CursorInEditor &data,
const ProjectPart *projectPart,
RenameCallback &&renameSymbolsCallback) = 0;
virtual void globalRename(const CursorInEditor &data, const QString &replacement) = 0;
virtual void findUsages(const CursorInEditor &data) const = 0;
virtual void switchHeaderSource(const Utils::FilePath &filePath, bool inNextSplit) = 0;
virtual void checkUnused(const Utils::Link &link, Core::SearchResult *search,
const Utils::LinkHandler &callback) = 0;
};
} // CppEditor namespace