forked from qt-creator/qt-creator
Merge remote-tracking branch 'origin/4.6'
Change-Id: I49e8b8442e2b5edffbea19cb2bba97443ebc3d2a
This commit is contained in:
@@ -151,7 +151,7 @@ void BackendReceiver::reset()
|
||||
qDeleteAll(m_assistProcessorsTable.begin(), m_assistProcessorsTable.end());
|
||||
m_assistProcessorsTable.clear();
|
||||
|
||||
// Clean up futures for references
|
||||
// Clean up futures for references; TODO: Remove duplication
|
||||
for (ReferencesEntry &entry : m_referencesTable) {
|
||||
entry.futureInterface.cancel();
|
||||
entry.futureInterface.reportFinished();
|
||||
@@ -162,6 +162,11 @@ void BackendReceiver::reset()
|
||||
futureInterface.reportFinished();
|
||||
}
|
||||
m_followTable.clear();
|
||||
for (QFutureInterface<CppTools::ToolTipInfo> &futureInterface : m_toolTipsTable) {
|
||||
futureInterface.cancel();
|
||||
futureInterface.reportFinished();
|
||||
}
|
||||
m_toolTipsTable.clear();
|
||||
}
|
||||
|
||||
void BackendReceiver::alive()
|
||||
|
||||
@@ -46,7 +46,7 @@ class ClangCompletionAssistProcessor : public CppTools::CppCompletionAssistProce
|
||||
|
||||
public:
|
||||
ClangCompletionAssistProcessor();
|
||||
~ClangCompletionAssistProcessor();
|
||||
~ClangCompletionAssistProcessor() override;
|
||||
|
||||
TextEditor::IAssistProposal *perform(const TextEditor::AssistInterface *interface) override;
|
||||
|
||||
|
||||
@@ -101,10 +101,8 @@ ClangEditorDocumentProcessor::~ClangEditorDocumentProcessor()
|
||||
m_parserWatcher.cancel();
|
||||
m_parserWatcher.waitForFinished();
|
||||
|
||||
if (m_projectPart) {
|
||||
m_communicator.unregisterTranslationUnitsForEditor(
|
||||
{ClangBackEnd::FileContainer(filePath(), m_projectPart->id())});
|
||||
}
|
||||
if (m_projectPart)
|
||||
unregisterTranslationUnitForEditor();
|
||||
}
|
||||
|
||||
void ClangEditorDocumentProcessor::runImpl(
|
||||
@@ -384,11 +382,6 @@ QFuture<CppTools::ToolTipInfo> ClangEditorDocumentProcessor::toolTipInfo(const Q
|
||||
static_cast<quint32>(column));
|
||||
}
|
||||
|
||||
ClangBackEnd::FileContainer ClangEditorDocumentProcessor::fileContainerWithArguments() const
|
||||
{
|
||||
return fileContainerWithArguments(m_projectPart.data());
|
||||
}
|
||||
|
||||
void ClangEditorDocumentProcessor::clearDiagnosticsWithFixIts()
|
||||
{
|
||||
m_diagnosticManager.clearDiagnosticsWithFixIts();
|
||||
@@ -442,7 +435,6 @@ void ClangEditorDocumentProcessor::registerTranslationUnitForEditor(CppTools::Pr
|
||||
if (m_projectPart) {
|
||||
if (projectPart->id() == m_projectPart->id())
|
||||
return;
|
||||
m_communicator.unregisterTranslationUnitsForEditor({fileContainerWithArguments()});
|
||||
}
|
||||
|
||||
m_communicator.registerTranslationUnitsForEditor(
|
||||
@@ -450,6 +442,13 @@ void ClangEditorDocumentProcessor::registerTranslationUnitForEditor(CppTools::Pr
|
||||
ClangCodeModel::Utils::setLastSentDocumentRevision(filePath(), revision());
|
||||
}
|
||||
|
||||
void ClangEditorDocumentProcessor::unregisterTranslationUnitForEditor()
|
||||
{
|
||||
QTC_ASSERT(m_projectPart, return);
|
||||
m_communicator.unregisterTranslationUnitsForEditor(
|
||||
{ClangBackEnd::FileContainer(filePath(), m_projectPart->id())});
|
||||
}
|
||||
|
||||
void ClangEditorDocumentProcessor::updateTranslationUnitIfProjectPartExists()
|
||||
{
|
||||
if (m_projectPart) {
|
||||
@@ -626,17 +625,6 @@ static QStringList fileArguments(const QString &filePath, CppTools::ProjectPart
|
||||
+ precompiledHeaderOptions(filePath, projectPart);
|
||||
}
|
||||
|
||||
ClangBackEnd::FileContainer
|
||||
ClangEditorDocumentProcessor::fileContainerWithArguments(CppTools::ProjectPart *projectPart) const
|
||||
{
|
||||
const auto projectPartId = projectPart
|
||||
? Utf8String::fromString(projectPart->id())
|
||||
: Utf8String();
|
||||
const QStringList theFileArguments = fileArguments(filePath(), projectPart);
|
||||
|
||||
return {filePath(), projectPartId, Utf8StringVector(theFileArguments), revision()};
|
||||
}
|
||||
|
||||
ClangBackEnd::FileContainer
|
||||
ClangEditorDocumentProcessor::fileContainerWithArgumentsAndDocumentContent(
|
||||
CppTools::ProjectPart *projectPart) const
|
||||
|
||||
@@ -52,7 +52,7 @@ class ClangEditorDocumentProcessor : public CppTools::BaseEditorDocumentProcesso
|
||||
public:
|
||||
ClangEditorDocumentProcessor(BackendCommunicator &communicator,
|
||||
TextEditor::TextDocument *document);
|
||||
~ClangEditorDocumentProcessor();
|
||||
~ClangEditorDocumentProcessor() override;
|
||||
|
||||
// BaseEditorDocumentProcessor interface
|
||||
void runImpl(const CppTools::BaseEditorDocumentParser::UpdateParams &updateParams) override;
|
||||
@@ -92,7 +92,7 @@ public:
|
||||
int line,
|
||||
int column) override;
|
||||
|
||||
ClangBackEnd::FileContainer fileContainerWithArguments() const;
|
||||
void unregisterTranslationUnitForEditor();
|
||||
|
||||
void clearDiagnosticsWithFixIts();
|
||||
|
||||
@@ -110,7 +110,6 @@ private:
|
||||
HeaderErrorDiagnosticWidgetCreator creatorForHeaderErrorDiagnosticWidget(
|
||||
const ClangBackEnd::DiagnosticContainer &firstHeaderErrorDiagnostic);
|
||||
ClangBackEnd::FileContainer simpleFileContainer(const QByteArray &codecName = QByteArray()) const;
|
||||
ClangBackEnd::FileContainer fileContainerWithArguments(CppTools::ProjectPart *projectPart) const;
|
||||
ClangBackEnd::FileContainer fileContainerWithArgumentsAndDocumentContent(
|
||||
CppTools::ProjectPart *projectPart) const;
|
||||
ClangBackEnd::FileContainer fileContainerWithDocumentContent(const QString &projectpartId) const;
|
||||
|
||||
@@ -102,17 +102,16 @@ static QFuture<CppTools::ToolTipInfo> editorDocumentHandlesToolTipInfo(
|
||||
|
||||
ClangHoverHandler::ClangHoverHandler()
|
||||
{
|
||||
setIsAsyncHandler(true);
|
||||
}
|
||||
|
||||
ClangHoverHandler::~ClangHoverHandler()
|
||||
{
|
||||
cancelAsyncCheck();
|
||||
abort();
|
||||
}
|
||||
|
||||
void ClangHoverHandler::identifyMatchAsync(TextEditorWidget *editorWidget,
|
||||
int pos,
|
||||
BaseHoverHandler::ReportPriority report)
|
||||
void ClangHoverHandler::identifyMatch(TextEditorWidget *editorWidget,
|
||||
int pos,
|
||||
BaseHoverHandler::ReportPriority report)
|
||||
{
|
||||
// Reset
|
||||
m_futureWatcher.reset();
|
||||
@@ -143,10 +142,12 @@ void ClangHoverHandler::identifyMatchAsync(TextEditorWidget *editorWidget,
|
||||
report(Priority_None); // Ops, something went wrong.
|
||||
}
|
||||
|
||||
void ClangHoverHandler::cancelAsyncCheck()
|
||||
void ClangHoverHandler::abort()
|
||||
{
|
||||
if (m_futureWatcher)
|
||||
if (m_futureWatcher) {
|
||||
m_futureWatcher->cancel();
|
||||
m_futureWatcher.reset();
|
||||
}
|
||||
}
|
||||
|
||||
#define RETURN_TEXT_FOR_CASE(enumValue) case TextEditor::HelpItem::enumValue: return #enumValue
|
||||
|
||||
@@ -40,14 +40,14 @@ public:
|
||||
ClangHoverHandler();
|
||||
~ClangHoverHandler() override;
|
||||
|
||||
void identifyMatchAsync(TextEditor::TextEditorWidget *editorWidget,
|
||||
int pos,
|
||||
ReportPriority report) override;
|
||||
void identifyMatch(TextEditor::TextEditorWidget *editorWidget,
|
||||
int pos,
|
||||
ReportPriority report) override;
|
||||
void decorateToolTip() override;
|
||||
void operateTooltip(TextEditor::TextEditorWidget *editorWidget, const QPoint &point) override;
|
||||
|
||||
private:
|
||||
void cancelAsyncCheck() override;
|
||||
void abort() override;
|
||||
void processToolTipInfo(const CppTools::ToolTipInfo &info);
|
||||
|
||||
private:
|
||||
|
||||
@@ -376,7 +376,7 @@ void ModelManagerSupportClang::unregisterTranslationUnitsWithProjectParts(
|
||||
{
|
||||
const auto processors = clangProcessorsWithProjectParts(projectPartIds);
|
||||
foreach (ClangEditorDocumentProcessor *processor, processors) {
|
||||
m_communicator.unregisterTranslationUnitsForEditor({processor->fileContainerWithArguments()});
|
||||
processor->unregisterTranslationUnitForEditor();
|
||||
processor->clearProjectPart();
|
||||
processor->run();
|
||||
}
|
||||
|
||||
@@ -58,7 +58,7 @@ class ModelManagerSupportClang:
|
||||
|
||||
public:
|
||||
ModelManagerSupportClang();
|
||||
~ModelManagerSupportClang();
|
||||
~ModelManagerSupportClang() override;
|
||||
|
||||
CppTools::CppCompletionAssistProvider *completionAssistProvider() override;
|
||||
TextEditor::BaseHoverHandler *createHoverHandler() override;
|
||||
|
||||
Reference in New Issue
Block a user