forked from qt-creator/qt-creator
Clang: Extract a function
Change-Id: I3041e019c2c65d9d988d31c47823e29955cd1c51 Reviewed-by: Marco Bubke <marco.bubke@theqtcompany.com>
This commit is contained in:
@@ -645,26 +645,31 @@ void ClangCompletionAssistProcessor::addCompletionItem(const QString &text,
|
|||||||
m_completions.append(item);
|
m_completions.append(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ClangCompletionAssistProcessor::UnsavedFileContentInfo
|
||||||
|
ClangCompletionAssistProcessor::unsavedFileContent(const QByteArray &customFileContent) const
|
||||||
|
{
|
||||||
|
const bool hasCustomModification = !customFileContent.isEmpty();
|
||||||
|
|
||||||
|
UnsavedFileContentInfo info;
|
||||||
|
info.isDocumentModified = hasCustomModification || m_interface->textDocument()->isModified();
|
||||||
|
info.unsavedContent = hasCustomModification
|
||||||
|
? customFileContent
|
||||||
|
: m_interface->textDocument()->toPlainText().toUtf8();
|
||||||
|
return info;
|
||||||
|
}
|
||||||
|
|
||||||
void ClangCompletionAssistProcessor::sendFileContent(const QString &projectPartId,
|
void ClangCompletionAssistProcessor::sendFileContent(const QString &projectPartId,
|
||||||
const QByteArray &customFileContent)
|
const QByteArray &customFileContent)
|
||||||
{
|
{
|
||||||
const QTextDocument *textDocument = m_interface->textDocument();
|
|
||||||
const bool hasCustomModification = !customFileContent.isEmpty();
|
|
||||||
const bool documentIsModified = hasCustomModification || textDocument->isModified();
|
|
||||||
// TODO: Revert custom modification after the completions
|
// TODO: Revert custom modification after the completions
|
||||||
QByteArray unsavedContent;
|
const UnsavedFileContentInfo info = unsavedFileContent(customFileContent);
|
||||||
if (documentIsModified) {
|
|
||||||
unsavedContent = hasCustomModification
|
|
||||||
? customFileContent
|
|
||||||
: m_interface->textDocument()->toPlainText().toUtf8();
|
|
||||||
}
|
|
||||||
|
|
||||||
IpcCommunicator &ipcCommunicator = m_interface->ipcCommunicator();
|
IpcCommunicator &ipcCommunicator = m_interface->ipcCommunicator();
|
||||||
ipcCommunicator.registerFilesForCodeCompletion(
|
ipcCommunicator.registerFilesForCodeCompletion(
|
||||||
{ClangBackEnd::FileContainer(m_interface->fileName(),
|
{ClangBackEnd::FileContainer(m_interface->fileName(),
|
||||||
projectPartId,
|
projectPartId,
|
||||||
Utf8String::fromByteArray(unsavedContent),
|
Utf8String::fromByteArray(info.unsavedContent),
|
||||||
documentIsModified)});
|
info.isDocumentModified)});
|
||||||
}
|
}
|
||||||
|
|
||||||
void ClangCompletionAssistProcessor::sendCompletionRequest(int position,
|
void ClangCompletionAssistProcessor::sendCompletionRequest(int position,
|
||||||
|
|||||||
@@ -81,6 +81,12 @@ private:
|
|||||||
int order = 0,
|
int order = 0,
|
||||||
const QVariant &data = QVariant());
|
const QVariant &data = QVariant());
|
||||||
|
|
||||||
|
struct UnsavedFileContentInfo {
|
||||||
|
QByteArray unsavedContent;
|
||||||
|
bool isDocumentModified = false;
|
||||||
|
};
|
||||||
|
UnsavedFileContentInfo unsavedFileContent(const QByteArray &customFileContent) const;
|
||||||
|
|
||||||
void sendFileContent(const QString &projectPartId, const QByteArray &customFileContent);
|
void sendFileContent(const QString &projectPartId, const QByteArray &customFileContent);
|
||||||
void sendCompletionRequest(int position, const QByteArray &customFileContent);
|
void sendCompletionRequest(int position, const QByteArray &customFileContent);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user