forked from qt-creator/qt-creator
ClangSupport: Use simpler structures in some cases
The patch is mostly mechanical, but contains also a few spurious changes from values references for some local variables, foreach -> ranged for etc that I coulnd't resist. Change-Id: I58f0bd972546895eb318607cbfbd7ac35caf3f23 Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
This commit is contained in:
@@ -53,7 +53,7 @@ bool ClangAssistProposalItem::prematurelyApplies(const QChar &typedCharacter) co
|
||||
applies = QString::fromLatin1("(,").contains(typedCharacter);
|
||||
else if (m_completionOperator == T_STRING_LITERAL || m_completionOperator == T_ANGLE_STRING_LITERAL)
|
||||
applies = (typedCharacter == QLatin1Char('/')) && text().endsWith(QLatin1Char('/'));
|
||||
else if (codeCompletion().completionKind() == CodeCompletion::ObjCMessageCompletionKind)
|
||||
else if (codeCompletion().completionKind == CodeCompletion::ObjCMessageCompletionKind)
|
||||
applies = QString::fromLatin1(";.,").contains(typedCharacter);
|
||||
else
|
||||
applies = QString::fromLatin1(";.,:(").contains(typedCharacter);
|
||||
@@ -130,31 +130,31 @@ void ClangAssistProposalItem::apply(TextEditor::TextDocumentManipulatorInterface
|
||||
extraCharacters += QLatin1Char(')');
|
||||
if (m_typedCharacter == QLatin1Char('(')) // Eat the opening parenthesis
|
||||
m_typedCharacter = QChar();
|
||||
} else if (ccr.completionKind() == CodeCompletion::KeywordCompletionKind) {
|
||||
} else if (ccr.completionKind == CodeCompletion::KeywordCompletionKind) {
|
||||
CompletionChunksToTextConverter converter;
|
||||
converter.setupForKeywords();
|
||||
|
||||
converter.parseChunks(ccr.chunks());
|
||||
converter.parseChunks(ccr.chunks);
|
||||
|
||||
textToBeInserted = converter.text();
|
||||
if (converter.hasPlaceholderPositions())
|
||||
cursorOffset = converter.placeholderPositions().at(0) - converter.text().size();
|
||||
} else if (ccr.completionKind() == CodeCompletion::NamespaceCompletionKind) {
|
||||
} else if (ccr.completionKind == CodeCompletion::NamespaceCompletionKind) {
|
||||
CompletionChunksToTextConverter converter;
|
||||
|
||||
converter.parseChunks(ccr.chunks()); // Appends "::" after name space name
|
||||
converter.parseChunks(ccr.chunks); // Appends "::" after name space name
|
||||
|
||||
textToBeInserted = converter.text();
|
||||
} else if (!ccr.text().isEmpty()) {
|
||||
} else if (!ccr.text.isEmpty()) {
|
||||
const TextEditor::CompletionSettings &completionSettings =
|
||||
TextEditor::TextEditorSettings::instance()->completionSettings();
|
||||
const bool autoInsertBrackets = completionSettings.m_autoInsertBrackets;
|
||||
|
||||
if (autoInsertBrackets &&
|
||||
(ccr.completionKind() == CodeCompletion::FunctionCompletionKind
|
||||
|| ccr.completionKind() == CodeCompletion::DestructorCompletionKind
|
||||
|| ccr.completionKind() == CodeCompletion::SignalCompletionKind
|
||||
|| ccr.completionKind() == CodeCompletion::SlotCompletionKind)) {
|
||||
(ccr.completionKind == CodeCompletion::FunctionCompletionKind
|
||||
|| ccr.completionKind == CodeCompletion::DestructorCompletionKind
|
||||
|| ccr.completionKind == CodeCompletion::SignalCompletionKind
|
||||
|| ccr.completionKind == CodeCompletion::SlotCompletionKind)) {
|
||||
// When the user typed the opening parenthesis, he'll likely also type the closing one,
|
||||
// in which case it would be annoying if we put the cursor after the already automatically
|
||||
// inserted closing parenthesis.
|
||||
@@ -195,7 +195,7 @@ void ClangAssistProposalItem::apply(TextEditor::TextDocumentManipulatorInterface
|
||||
}
|
||||
|
||||
// If the function takes no arguments, automatically place the closing parenthesis
|
||||
if (!hasOverloadsWithParameters() && !ccr.hasParameters() && skipClosingParenthesis) {
|
||||
if (!hasOverloadsWithParameters() && !ccr.hasParameters && skipClosingParenthesis) {
|
||||
extraCharacters += QLatin1Char(')');
|
||||
if (endWithSemicolon) {
|
||||
extraCharacters += semicolon;
|
||||
@@ -257,7 +257,7 @@ void ClangAssistProposalItem::apply(TextEditor::TextDocumentManipulatorInterface
|
||||
if (setAutoCompleteSkipPos)
|
||||
manipulator.setAutoCompleteSkipPosition(manipulator.currentPosition());
|
||||
|
||||
if (ccr.completionKind() == CodeCompletion::KeywordCompletionKind)
|
||||
if (ccr.completionKind == CodeCompletion::KeywordCompletionKind)
|
||||
manipulator.autoIndent(basePosition, textToBeInserted.size());
|
||||
}
|
||||
}
|
||||
@@ -278,7 +278,7 @@ QIcon ClangAssistProposalItem::icon() const
|
||||
static const char SNIPPET_ICON_PATH[] = ":/texteditor/images/snippet.png";
|
||||
static const QIcon snippetIcon = QIcon(QLatin1String(SNIPPET_ICON_PATH));
|
||||
|
||||
switch (m_codeCompletion.completionKind()) {
|
||||
switch (m_codeCompletion.completionKind) {
|
||||
case CodeCompletion::ClassCompletionKind:
|
||||
case CodeCompletion::TemplateClassCompletionKind:
|
||||
case CodeCompletion::TypeAliasCompletionKind:
|
||||
@@ -292,7 +292,7 @@ QIcon ClangAssistProposalItem::icon() const
|
||||
case CodeCompletion::FunctionCompletionKind:
|
||||
case CodeCompletion::TemplateFunctionCompletionKind:
|
||||
case CodeCompletion::ObjCMessageCompletionKind:
|
||||
switch (m_codeCompletion.availability()) {
|
||||
switch (m_codeCompletion.availability) {
|
||||
case CodeCompletion::Available:
|
||||
case CodeCompletion::Deprecated:
|
||||
return Icons::iconForType(Icons::FuncPublicIconType);
|
||||
@@ -302,7 +302,7 @@ QIcon ClangAssistProposalItem::icon() const
|
||||
case CodeCompletion::SignalCompletionKind:
|
||||
return Icons::iconForType(Icons::SignalIconType);
|
||||
case CodeCompletion::SlotCompletionKind:
|
||||
switch (m_codeCompletion.availability()) {
|
||||
switch (m_codeCompletion.availability) {
|
||||
case CodeCompletion::Available:
|
||||
case CodeCompletion::Deprecated:
|
||||
return Icons::iconForType(Icons::SlotPublicIconType);
|
||||
@@ -316,7 +316,7 @@ QIcon ClangAssistProposalItem::icon() const
|
||||
case CodeCompletion::PreProcessorCompletionKind:
|
||||
return Icons::iconForType(Icons::MacroIconType);
|
||||
case CodeCompletion::VariableCompletionKind:
|
||||
switch (m_codeCompletion.availability()) {
|
||||
switch (m_codeCompletion.availability) {
|
||||
case CodeCompletion::Available:
|
||||
case CodeCompletion::Deprecated:
|
||||
return Icons::iconForType(Icons::VarPublicIconType);
|
||||
@@ -339,10 +339,10 @@ QIcon ClangAssistProposalItem::icon() const
|
||||
QString ClangAssistProposalItem::detail() const
|
||||
{
|
||||
QString detail = CompletionChunksToTextConverter::convertToToolTipWithHtml(
|
||||
m_codeCompletion.chunks(), m_codeCompletion.completionKind());
|
||||
m_codeCompletion.chunks, m_codeCompletion.completionKind);
|
||||
|
||||
if (!m_codeCompletion.briefComment().isEmpty())
|
||||
detail += QStringLiteral("\n\n") + m_codeCompletion.briefComment().toString();
|
||||
if (!m_codeCompletion.briefComment.isEmpty())
|
||||
detail += QStringLiteral("\n\n") + m_codeCompletion.briefComment.toString();
|
||||
|
||||
return detail;
|
||||
}
|
||||
|
||||
@@ -351,10 +351,10 @@ static void setLastSentDocumentRevision(const QString &filePath, uint revision)
|
||||
|
||||
void BackendCommunicator::updateTranslationUnitWithRevisionCheck(const FileContainer &fileContainer)
|
||||
{
|
||||
if (documentHasChanged(fileContainer.filePath(), fileContainer.documentRevision())) {
|
||||
if (documentHasChanged(fileContainer.filePath, fileContainer.documentRevision)) {
|
||||
updateTranslationUnitsForEditor({fileContainer});
|
||||
setLastSentDocumentRevision(fileContainer.filePath(),
|
||||
fileContainer.documentRevision());
|
||||
setLastSentDocumentRevision(fileContainer.filePath,
|
||||
fileContainer.documentRevision);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -373,7 +373,7 @@ QFuture<CppTools::CursorInfo> BackendCommunicator::requestReferences(
|
||||
const RequestReferencesMessage message(fileContainer, line, column);
|
||||
m_sender->requestReferences(message);
|
||||
|
||||
return m_receiver.addExpectedReferencesMessage(message.ticketNumber(), localUses);
|
||||
return m_receiver.addExpectedReferencesMessage(message.ticketNumber, localUses);
|
||||
}
|
||||
|
||||
QFuture<CppTools::CursorInfo> BackendCommunicator::requestLocalReferences(
|
||||
@@ -384,7 +384,7 @@ QFuture<CppTools::CursorInfo> BackendCommunicator::requestLocalReferences(
|
||||
const RequestReferencesMessage message(fileContainer, line, column, true);
|
||||
m_sender->requestReferences(message);
|
||||
|
||||
return m_receiver.addExpectedReferencesMessage(message.ticketNumber());
|
||||
return m_receiver.addExpectedReferencesMessage(message.ticketNumber);
|
||||
}
|
||||
|
||||
QFuture<CppTools::ToolTipInfo> BackendCommunicator::requestToolTip(
|
||||
@@ -393,7 +393,7 @@ QFuture<CppTools::ToolTipInfo> BackendCommunicator::requestToolTip(
|
||||
const RequestToolTipMessage message(fileContainer, line, column);
|
||||
m_sender->requestToolTip(message);
|
||||
|
||||
return m_receiver.addExpectedToolTipMessage(message.ticketNumber());
|
||||
return m_receiver.addExpectedToolTipMessage(message.ticketNumber);
|
||||
}
|
||||
|
||||
QFuture<CppTools::SymbolInfo> BackendCommunicator::requestFollowSymbol(
|
||||
@@ -406,7 +406,7 @@ QFuture<CppTools::SymbolInfo> BackendCommunicator::requestFollowSymbol(
|
||||
column);
|
||||
m_sender->requestFollowSymbol(message);
|
||||
|
||||
return m_receiver.addExpectedRequestFollowSymbolMessage(message.ticketNumber());
|
||||
return m_receiver.addExpectedRequestFollowSymbolMessage(message.ticketNumber);
|
||||
}
|
||||
|
||||
void BackendCommunicator::updateTranslationUnitWithRevisionCheck(Core::IDocument *document)
|
||||
@@ -574,7 +574,7 @@ void BackendCommunicator::completeCode(ClangCompletionAssistProcessor *assistPro
|
||||
const CompleteCodeMessage message(filePath, line, column, projectFilePath, funcNameStartLine,
|
||||
funcNameStartColumn);
|
||||
m_sender->completeCode(message);
|
||||
m_receiver.addExpectedCodeCompletedMessage(message.ticketNumber(), assistProcessor);
|
||||
m_receiver.addExpectedCodeCompletedMessage(message.ticketNumber, assistProcessor);
|
||||
}
|
||||
|
||||
} // namespace Internal
|
||||
|
||||
@@ -182,56 +182,56 @@ void BackendReceiver::echo(const EchoMessage &message)
|
||||
|
||||
void BackendReceiver::codeCompleted(const CodeCompletedMessage &message)
|
||||
{
|
||||
qCDebugIpc() << "CodeCompletedMessage with" << message.codeCompletions().size()
|
||||
qCDebugIpc() << "CodeCompletedMessage with" << message.codeCompletions.size()
|
||||
<< "items";
|
||||
|
||||
const quint64 ticket = message.ticketNumber();
|
||||
const quint64 ticket = message.ticketNumber;
|
||||
QScopedPointer<ClangCompletionAssistProcessor> processor(m_assistProcessorsTable.take(ticket));
|
||||
if (processor) {
|
||||
processor->handleAvailableCompletions(message.codeCompletions(),
|
||||
message.neededCorrection());
|
||||
processor->handleAvailableCompletions(message.codeCompletions,
|
||||
message.neededCorrection);
|
||||
}
|
||||
}
|
||||
|
||||
void BackendReceiver::documentAnnotationsChanged(const DocumentAnnotationsChangedMessage &message)
|
||||
{
|
||||
qCDebugIpc() << "DocumentAnnotationsChangedMessage with"
|
||||
<< message.diagnostics().size() << "diagnostics"
|
||||
<< message.tokenInfos().size() << "highlighting marks"
|
||||
<< message.skippedPreprocessorRanges().size() << "skipped preprocessor ranges";
|
||||
<< message.diagnostics.size() << "diagnostics"
|
||||
<< message.tokenInfos.size() << "highlighting marks"
|
||||
<< message.skippedPreprocessorRanges.size() << "skipped preprocessor ranges";
|
||||
|
||||
auto processor = ClangEditorDocumentProcessor::get(message.fileContainer().filePath());
|
||||
auto processor = ClangEditorDocumentProcessor::get(message.fileContainer.filePath);
|
||||
|
||||
if (!processor)
|
||||
return;
|
||||
|
||||
const QString projectPartId = message.fileContainer().projectPartId();
|
||||
const QString filePath = message.fileContainer().filePath();
|
||||
const QString projectPartId = message.fileContainer.projectPartId;
|
||||
const QString filePath = message.fileContainer.filePath;
|
||||
const QString documentProjectPartId = CppTools::CppToolsBridge::projectPartIdForFile(filePath);
|
||||
if (projectPartId != documentProjectPartId)
|
||||
return;
|
||||
|
||||
const quint32 documentRevision = message.fileContainer().documentRevision();
|
||||
if (message.onlyTokenInfos()) {
|
||||
processor->updateTokenInfos(message.tokenInfos(), documentRevision);
|
||||
const quint32 documentRevision = message.fileContainer.documentRevision;
|
||||
if (message.onlyTokenInfos) {
|
||||
processor->updateTokenInfos(message.tokenInfos, documentRevision);
|
||||
return;
|
||||
}
|
||||
processor->updateCodeWarnings(message.diagnostics(),
|
||||
message.firstHeaderErrorDiagnostic(),
|
||||
processor->updateCodeWarnings(message.diagnostics,
|
||||
message.firstHeaderErrorDiagnostic,
|
||||
documentRevision);
|
||||
processor->updateHighlighting(message.tokenInfos(),
|
||||
message.skippedPreprocessorRanges(),
|
||||
processor->updateHighlighting(message.tokenInfos,
|
||||
message.skippedPreprocessorRanges,
|
||||
documentRevision);
|
||||
}
|
||||
|
||||
static
|
||||
CppTools::CursorInfo::Range toCursorInfoRange(const SourceRangeContainer &sourceRange)
|
||||
{
|
||||
const SourceLocationContainer start = sourceRange.start();
|
||||
const SourceLocationContainer end = sourceRange.end();
|
||||
const unsigned length = end.column() - start.column();
|
||||
const SourceLocationContainer &start = sourceRange.start;
|
||||
const SourceLocationContainer &end = sourceRange.end;
|
||||
const unsigned length = end.column - start.column;
|
||||
|
||||
return CppTools::CursorInfo::Range(start.line(), start.column(), length);
|
||||
return CppTools::CursorInfo::Range(start.line, start.column, length);
|
||||
}
|
||||
|
||||
static
|
||||
@@ -239,9 +239,9 @@ CppTools::CursorInfo toCursorInfo(const CppTools::SemanticInfo::LocalUseMap &loc
|
||||
const ReferencesMessage &message)
|
||||
{
|
||||
CppTools::CursorInfo result;
|
||||
const QVector<SourceRangeContainer> references = message.references();
|
||||
const QVector<SourceRangeContainer> &references = message.references;
|
||||
|
||||
result.areUseRangesForLocalVariable = message.isLocalVariable();
|
||||
result.areUseRangesForLocalVariable = message.isLocalVariable;
|
||||
for (const SourceRangeContainer &reference : references)
|
||||
result.useRanges.append(toCursorInfoRange(reference));
|
||||
|
||||
@@ -255,15 +255,15 @@ static
|
||||
CppTools::SymbolInfo toSymbolInfo(const FollowSymbolMessage &message)
|
||||
{
|
||||
CppTools::SymbolInfo result;
|
||||
const SourceRangeContainer &range = message.sourceRange();
|
||||
const SourceRangeContainer &range = message.sourceRange;
|
||||
|
||||
const SourceLocationContainer start = range.start();
|
||||
const SourceLocationContainer end = range.end();
|
||||
result.startLine = static_cast<int>(start.line());
|
||||
result.startColumn = static_cast<int>(start.column());
|
||||
result.endLine = static_cast<int>(end.line());
|
||||
result.endColumn = static_cast<int>(end.column());
|
||||
result.fileName = start.filePath();
|
||||
const SourceLocationContainer &start = range.start;
|
||||
const SourceLocationContainer &end = range.end;
|
||||
result.startLine = static_cast<int>(start.line);
|
||||
result.startColumn = static_cast<int>(start.column);
|
||||
result.endLine = static_cast<int>(end.line);
|
||||
result.endColumn = static_cast<int>(end.column);
|
||||
result.fileName = start.filePath;
|
||||
|
||||
return result;
|
||||
}
|
||||
@@ -271,9 +271,9 @@ CppTools::SymbolInfo toSymbolInfo(const FollowSymbolMessage &message)
|
||||
void BackendReceiver::references(const ReferencesMessage &message)
|
||||
{
|
||||
qCDebugIpc() << "ReferencesMessage with"
|
||||
<< message.references().size() << "references";
|
||||
<< message.references.size() << "references";
|
||||
|
||||
const quint64 ticket = message.ticketNumber();
|
||||
const quint64 ticket = message.ticketNumber;
|
||||
const ReferencesEntry entry = m_referencesTable.take(ticket);
|
||||
QFutureInterface<CppTools::CursorInfo> futureInterface = entry.futureInterface;
|
||||
QTC_CHECK(futureInterface != QFutureInterface<CppTools::CursorInfo>());
|
||||
@@ -322,25 +322,25 @@ static CppTools::ToolTipInfo toToolTipInfo(const ToolTipMessage &message)
|
||||
{
|
||||
CppTools::ToolTipInfo info;
|
||||
|
||||
const ToolTipInfo backendInfo = message.toolTipInfo();
|
||||
const ToolTipInfo &backendInfo = message.toolTipInfo;
|
||||
|
||||
info.text = backendInfo.text();
|
||||
info.briefComment = backendInfo.briefComment();
|
||||
info.text = backendInfo.text;
|
||||
info.briefComment = backendInfo.briefComment;
|
||||
|
||||
info.qDocIdCandidates = toStringList(backendInfo.qdocIdCandidates());
|
||||
info.qDocMark = backendInfo.qdocMark();
|
||||
info.qDocCategory = toHelpItemCategory(backendInfo.qdocCategory());
|
||||
info.qDocIdCandidates = toStringList(backendInfo.qdocIdCandidates);
|
||||
info.qDocMark = backendInfo.qdocMark;
|
||||
info.qDocCategory = toHelpItemCategory(backendInfo.qdocCategory);
|
||||
|
||||
info.sizeInBytes = backendInfo.sizeInBytes();
|
||||
info.sizeInBytes = backendInfo.sizeInBytes;
|
||||
|
||||
return info;
|
||||
}
|
||||
|
||||
void BackendReceiver::tooltip(const ToolTipMessage &message)
|
||||
{
|
||||
qCDebugIpc() << "ToolTipMessage" << message.toolTipInfo().text();
|
||||
qCDebugIpc() << "ToolTipMessage" << message.toolTipInfo.text;
|
||||
|
||||
const quint64 ticket = message.ticketNumber();
|
||||
const quint64 ticket = message.ticketNumber;
|
||||
QFutureInterface<CppTools::ToolTipInfo> futureInterface = m_toolTipsTable.take(ticket);
|
||||
QTC_CHECK(futureInterface != QFutureInterface<CppTools::ToolTipInfo>());
|
||||
|
||||
@@ -354,9 +354,9 @@ void BackendReceiver::tooltip(const ToolTipMessage &message)
|
||||
void BackendReceiver::followSymbol(const ClangBackEnd::FollowSymbolMessage &message)
|
||||
{
|
||||
qCDebugIpc() << "FollowSymbolMessage with"
|
||||
<< message.sourceRange() << "range";
|
||||
<< message.sourceRange << "range";
|
||||
|
||||
const quint64 ticket = message.ticketNumber();
|
||||
const quint64 ticket = message.ticketNumber;
|
||||
QFutureInterface<CppTools::SymbolInfo> futureInterface = m_followTable.take(ticket);
|
||||
QTC_CHECK(futureInterface != QFutureInterface<CppTools::SymbolInfo>());
|
||||
|
||||
|
||||
@@ -74,30 +74,30 @@ QList<AssistProposalItemInterface *> toAssistProposalItems(const CodeCompletions
|
||||
bool slotCompletion = false; // TODO
|
||||
|
||||
QHash<QString, ClangAssistProposalItem *> items;
|
||||
foreach (const CodeCompletion &codeCompletion, completions) {
|
||||
if (codeCompletion.text().isEmpty()) // TODO: Make isValid()?
|
||||
for (const CodeCompletion &codeCompletion : completions) {
|
||||
if (codeCompletion.text.isEmpty()) // TODO: Make isValid()?
|
||||
continue;
|
||||
if (signalCompletion && codeCompletion.completionKind() != CodeCompletion::SignalCompletionKind)
|
||||
if (signalCompletion && codeCompletion.completionKind != CodeCompletion::SignalCompletionKind)
|
||||
continue;
|
||||
if (slotCompletion && codeCompletion.completionKind() != CodeCompletion::SlotCompletionKind)
|
||||
if (slotCompletion && codeCompletion.completionKind != CodeCompletion::SlotCompletionKind)
|
||||
continue;
|
||||
|
||||
QString name;
|
||||
if (codeCompletion.completionKind() == CodeCompletion::KeywordCompletionKind)
|
||||
name = CompletionChunksToTextConverter::convertToName(codeCompletion.chunks());
|
||||
if (codeCompletion.completionKind == CodeCompletion::KeywordCompletionKind)
|
||||
name = CompletionChunksToTextConverter::convertToName(codeCompletion.chunks);
|
||||
else
|
||||
name = codeCompletion.text().toString();
|
||||
name = codeCompletion.text.toString();
|
||||
|
||||
ClangAssistProposalItem *item = items.value(name, 0);
|
||||
if (item) {
|
||||
if (codeCompletion.hasParameters())
|
||||
if (codeCompletion.hasParameters)
|
||||
item->setHasOverloadsWithParameters(true);
|
||||
} else {
|
||||
item = new ClangAssistProposalItem;
|
||||
items.insert(name, item);
|
||||
|
||||
item->setText(name);
|
||||
item->setOrder(int(codeCompletion.priority()));
|
||||
item->setOrder(int(codeCompletion.priority));
|
||||
item->setCodeCompletion(codeCompletion);
|
||||
}
|
||||
}
|
||||
@@ -139,7 +139,7 @@ IAssistProposal *ClangCompletionAssistProcessor::perform(const AssistInterface *
|
||||
static CodeCompletions filterFunctionSignatures(const CodeCompletions &completions)
|
||||
{
|
||||
return ::Utils::filtered(completions, [](const CodeCompletion &completion) {
|
||||
return completion.completionKind() == CodeCompletion::FunctionOverloadCompletionKind;
|
||||
return completion.completionKind == CodeCompletion::FunctionOverloadCompletionKind;
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -174,8 +174,8 @@ void CompletionChunksToTextConverter::parse(
|
||||
{
|
||||
using ClangBackEnd::CodeCompletionChunk;
|
||||
|
||||
switch (codeCompletionChunk.kind()) {
|
||||
case CodeCompletionChunk::ResultType: parseResultType(codeCompletionChunk.text()); break;
|
||||
switch (codeCompletionChunk.kind) {
|
||||
case CodeCompletionChunk::ResultType: parseResultType(codeCompletionChunk.text); break;
|
||||
// Do not rely on CurrentParameter because it might be wrong for
|
||||
// invalid code. Instead, handle it as PlaceHolder.
|
||||
case CodeCompletionChunk::CurrentParameter:
|
||||
@@ -183,7 +183,7 @@ void CompletionChunksToTextConverter::parse(
|
||||
parsePlaceHolder(codeCompletionChunk); break;
|
||||
case CodeCompletionChunk::LeftParen: parseLeftParen(codeCompletionChunk); break;
|
||||
case CodeCompletionChunk::LeftBrace: parseLeftBrace(codeCompletionChunk); break;
|
||||
default: parseText(codeCompletionChunk.text()); break;
|
||||
default: parseText(codeCompletionChunk.text); break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -205,7 +205,7 @@ void CompletionChunksToTextConverter::parseResultType(const Utf8String &resultTy
|
||||
void CompletionChunksToTextConverter::parseText(const Utf8String &text)
|
||||
{
|
||||
if (canAddSpace()
|
||||
&& m_previousCodeCompletionChunk.kind() == ClangBackEnd::CodeCompletionChunk::RightBrace) {
|
||||
&& m_previousCodeCompletionChunk.kind == ClangBackEnd::CodeCompletionChunk::RightBrace) {
|
||||
m_text += QChar(QChar::Space);
|
||||
}
|
||||
|
||||
@@ -217,9 +217,9 @@ void CompletionChunksToTextConverter::wrapInCursiveTagIfOptional(
|
||||
{
|
||||
if (m_addOptional) {
|
||||
if (m_emphasizeOptional && m_textFormat == TextFormat::Html) {
|
||||
if (!m_previousCodeCompletionChunk.isOptional() && codeCompletionChunk.isOptional())
|
||||
if (!m_previousCodeCompletionChunk.isOptional && codeCompletionChunk.isOptional)
|
||||
m_text += QStringLiteral("<i>");
|
||||
else if (m_previousCodeCompletionChunk.isOptional() && !codeCompletionChunk.isOptional())
|
||||
else if (m_previousCodeCompletionChunk.isOptional && !codeCompletionChunk.isOptional)
|
||||
m_text += QStringLiteral("</i>");
|
||||
}
|
||||
}
|
||||
@@ -229,7 +229,7 @@ void CompletionChunksToTextConverter::parsePlaceHolder(
|
||||
const ClangBackEnd::CodeCompletionChunk &codeCompletionChunk)
|
||||
{
|
||||
if (m_addPlaceHolderText) {
|
||||
appendText(inDesiredTextFormat(codeCompletionChunk.text()),
|
||||
appendText(inDesiredTextFormat(codeCompletionChunk.text),
|
||||
emphasizeCurrentPlaceHolder());
|
||||
}
|
||||
|
||||
@@ -242,7 +242,7 @@ void CompletionChunksToTextConverter::parseLeftParen(
|
||||
{
|
||||
if (canAddSpace())
|
||||
m_text += QChar(QChar::Space);
|
||||
m_text += codeCompletionChunk.text().toString();
|
||||
m_text += codeCompletionChunk.text.toString();
|
||||
}
|
||||
|
||||
void CompletionChunksToTextConverter::parseLeftBrace(
|
||||
@@ -251,7 +251,7 @@ void CompletionChunksToTextConverter::parseLeftBrace(
|
||||
if (canAddSpace())
|
||||
m_text += QChar(QChar::Space);
|
||||
|
||||
m_text += codeCompletionChunk.text().toString();
|
||||
m_text += codeCompletionChunk.text.toString();
|
||||
}
|
||||
|
||||
void CompletionChunksToTextConverter::addExtraVerticalSpaceBetweenBraces()
|
||||
@@ -266,15 +266,15 @@ void CompletionChunksToTextConverter::addExtraVerticalSpaceBetweenBraces(
|
||||
using ClangBackEnd::CodeCompletionChunk;
|
||||
|
||||
const auto leftBraceCompare = [] (const CodeCompletionChunk &chunk) {
|
||||
return chunk.kind() == CodeCompletionChunk::LeftBrace;
|
||||
return chunk.kind == CodeCompletionChunk::LeftBrace;
|
||||
};
|
||||
|
||||
const auto rightBraceCompare = [] (const CodeCompletionChunk &chunk) {
|
||||
return chunk.kind() == CodeCompletionChunk::RightBrace;
|
||||
return chunk.kind == CodeCompletionChunk::RightBrace;
|
||||
};
|
||||
|
||||
const auto verticalSpaceCompare = [] (const CodeCompletionChunk &chunk) {
|
||||
return chunk.kind() == CodeCompletionChunk::VerticalSpace;
|
||||
return chunk.kind == CodeCompletionChunk::VerticalSpace;
|
||||
};
|
||||
|
||||
auto leftBrace = std::find_if(begin, m_codeCompletionChunks.end(), leftBraceCompare);
|
||||
@@ -337,15 +337,15 @@ void CompletionChunksToTextConverter::appendText(const QString &text, bool boldF
|
||||
bool CompletionChunksToTextConverter::canAddSpace() const
|
||||
{
|
||||
return m_addSpaces
|
||||
&& m_previousCodeCompletionChunk.kind() != ClangBackEnd::CodeCompletionChunk::HorizontalSpace
|
||||
&& m_previousCodeCompletionChunk.kind() != ClangBackEnd::CodeCompletionChunk::RightAngle
|
||||
&& m_previousCodeCompletionChunk.kind != ClangBackEnd::CodeCompletionChunk::HorizontalSpace
|
||||
&& m_previousCodeCompletionChunk.kind != ClangBackEnd::CodeCompletionChunk::RightAngle
|
||||
&& m_codeCompletionKind != ClangBackEnd::CodeCompletion::FunctionCompletionKind;
|
||||
}
|
||||
|
||||
bool CompletionChunksToTextConverter::isNotOptionalOrAddOptionals(
|
||||
const ClangBackEnd::CodeCompletionChunk &codeCompletionChunk) const
|
||||
{
|
||||
return !codeCompletionChunk.isOptional() || m_addOptional;
|
||||
return !codeCompletionChunk.isOptional || m_addOptional;
|
||||
}
|
||||
|
||||
} // namespace Internal
|
||||
|
||||
@@ -81,13 +81,12 @@ static QString addTypeToVariableName(const QString &name, const ClangBackEnd::Ex
|
||||
static Core::LocatorFilterEntry makeEntry(Core::ILocatorFilter *filter,
|
||||
const ClangBackEnd::TokenInfoContainer &info)
|
||||
{
|
||||
const ClangBackEnd::ExtraInfo &extraInfo = info.extraInfo();
|
||||
const ClangBackEnd::ExtraInfo &extraInfo = info.extraInfo;
|
||||
QString displayName = extraInfo.token;
|
||||
::Utils::LineColumn lineColumn(static_cast<int>(info.line()),
|
||||
static_cast<int>(info.column()));
|
||||
::Utils::LineColumn lineColumn(static_cast<int>(info.line), static_cast<int>(info.column));
|
||||
Core::LocatorFilterEntry entry(filter, displayName, qVariantFromValue(lineColumn));
|
||||
QString extra;
|
||||
ClangBackEnd::HighlightingType mainType = info.types().mainHighlightingType;
|
||||
ClangBackEnd::HighlightingType mainType = info.types.mainHighlightingType;
|
||||
if (mainType == ClangBackEnd::HighlightingType::VirtualFunction
|
||||
|| mainType == ClangBackEnd::HighlightingType::Function) {
|
||||
displayName = addResultTypeToFunctionSignature(displayName, extraInfo);
|
||||
@@ -129,11 +128,11 @@ QList<Core::LocatorFilterEntry> ClangCurrentDocumentFilter::matchesFor(
|
||||
const QVector<TokInfoContainer> &infos = processor->tokenInfos();
|
||||
|
||||
for (const TokInfoContainer &info : infos) {
|
||||
if (!info.extraInfo().declaration)
|
||||
if (!info.extraInfo.declaration)
|
||||
continue;
|
||||
if (info.types().mainHighlightingType == ClangBackEnd::HighlightingType::LocalVariable)
|
||||
if (info.types.mainHighlightingType == ClangBackEnd::HighlightingType::LocalVariable)
|
||||
continue;
|
||||
QRegularExpressionMatch match = regexp.match(info.extraInfo().token);
|
||||
QRegularExpressionMatch match = regexp.match(info.extraInfo.token);
|
||||
if (match.hasMatch())
|
||||
goodEntries.push_back(makeEntry(this, info));
|
||||
}
|
||||
|
||||
@@ -53,7 +53,7 @@ bool isBlackListedHeaderDiagnostic(const ClangBackEnd::DiagnosticContainer &diag
|
||||
Utf8StringLiteral("warning: #include_next in primary source file")
|
||||
};
|
||||
|
||||
return isHeaderFile && blackList.contains(diagnostic.text());
|
||||
return isHeaderFile && blackList.contains(diagnostic.text);
|
||||
}
|
||||
|
||||
bool isBlackListedQtDiagnostic(const ClangBackEnd::DiagnosticContainer &diagnostic)
|
||||
@@ -68,7 +68,7 @@ bool isBlackListedQtDiagnostic(const ClangBackEnd::DiagnosticContainer &diagnost
|
||||
"'qt_metacall' overrides a member function but is not marked 'override'"),
|
||||
};
|
||||
|
||||
return blackList.contains(diagnostic.text());
|
||||
return blackList.contains(diagnostic.text);
|
||||
}
|
||||
|
||||
template <class Condition>
|
||||
@@ -111,10 +111,10 @@ void ClangDiagnosticFilter::filterDocumentRelatedWarnings(
|
||||
|
||||
const auto isLocalWarning = [this, isHeaderFile]
|
||||
(const ClangBackEnd::DiagnosticContainer &diagnostic) {
|
||||
return isWarningOrNote(diagnostic.severity())
|
||||
return isWarningOrNote(diagnostic.severity)
|
||||
&& !isBlackListedHeaderDiagnostic(diagnostic, isHeaderFile)
|
||||
&& !isBlackListedQtDiagnostic(diagnostic)
|
||||
&& diagnostic.location().filePath() == m_filePath;
|
||||
&& diagnostic.location.filePath == m_filePath;
|
||||
};
|
||||
|
||||
m_warningDiagnostics = filterDiagnostics(diagnostics, isLocalWarning);
|
||||
@@ -124,8 +124,8 @@ void ClangDiagnosticFilter::filterDocumentRelatedErrors(
|
||||
const QVector<ClangBackEnd::DiagnosticContainer> &diagnostics)
|
||||
{
|
||||
const auto isLocalWarning = [this] (const ClangBackEnd::DiagnosticContainer &diagnostic) {
|
||||
return !isWarningOrNote(diagnostic.severity())
|
||||
&& diagnostic.location().filePath() == m_filePath;
|
||||
return !isWarningOrNote(diagnostic.severity)
|
||||
&& diagnostic.location.filePath == m_filePath;
|
||||
};
|
||||
|
||||
m_errorDiagnostics = filterDiagnostics(diagnostics, isLocalWarning);
|
||||
@@ -134,7 +134,7 @@ void ClangDiagnosticFilter::filterDocumentRelatedErrors(
|
||||
void ClangDiagnosticFilter::filterFixits()
|
||||
{
|
||||
const auto hasFixIts = [] (const ClangBackEnd::DiagnosticContainer &diagnostic) {
|
||||
return diagnostic.fixIts().size() > 0;
|
||||
return diagnostic.fixIts.size() > 0;
|
||||
};
|
||||
|
||||
m_fixItdiagnostics.clear();
|
||||
@@ -142,9 +142,9 @@ void ClangDiagnosticFilter::filterFixits()
|
||||
filterDiagnostics(m_errorDiagnostics, hasFixIts, m_fixItdiagnostics);
|
||||
|
||||
for (const auto &warningDiagnostic : m_warningDiagnostics)
|
||||
filterDiagnostics(warningDiagnostic.children(), hasFixIts, m_fixItdiagnostics);
|
||||
filterDiagnostics(warningDiagnostic.children, hasFixIts, m_fixItdiagnostics);
|
||||
for (const auto &warningDiagnostic : m_errorDiagnostics)
|
||||
filterDiagnostics(warningDiagnostic.children(), hasFixIts, m_fixItdiagnostics);
|
||||
filterDiagnostics(warningDiagnostic.children, hasFixIts, m_fixItdiagnostics);
|
||||
}
|
||||
|
||||
ClangDiagnosticFilter::ClangDiagnosticFilter(const QString &filePath)
|
||||
|
||||
@@ -63,11 +63,11 @@ int positionInText(QTextDocument *textDocument,
|
||||
const ClangBackEnd::SourceLocationContainer &sourceLocationContainer)
|
||||
{
|
||||
auto textBlock = textDocument->findBlockByNumber(
|
||||
static_cast<int>(sourceLocationContainer.line()) - 1);
|
||||
static_cast<int>(sourceLocationContainer.line) - 1);
|
||||
// 'sourceLocationContainer' already has the CppEditor column converted from
|
||||
// the utf8 byte offset from the beginning of the line provided by clang.
|
||||
// - 1 is required for 0-based columns.
|
||||
const int column = static_cast<int>(sourceLocationContainer.column()) - 1;
|
||||
const int column = static_cast<int>(sourceLocationContainer.column) - 1;
|
||||
return textBlock.position() + column;
|
||||
}
|
||||
|
||||
@@ -76,10 +76,10 @@ void addRangeSelections(const ClangBackEnd::DiagnosticContainer &diagnostic,
|
||||
const QTextCharFormat &contextFormat,
|
||||
QList<QTextEdit::ExtraSelection> &extraSelections)
|
||||
{
|
||||
for (auto &&range : diagnostic.ranges()) {
|
||||
for (auto &&range : diagnostic.ranges) {
|
||||
QTextCursor cursor(textDocument);
|
||||
cursor.setPosition(positionInText(textDocument, range.start()));
|
||||
cursor.setPosition(positionInText(textDocument, range.end()), QTextCursor::KeepAnchor);
|
||||
cursor.setPosition(positionInText(textDocument, range.start));
|
||||
cursor.setPosition(positionInText(textDocument, range.end), QTextCursor::KeepAnchor);
|
||||
|
||||
auto extraSelection = createExtraSelections(contextFormat, cursor);
|
||||
|
||||
@@ -141,7 +141,7 @@ void addSelections(const QVector<ClangBackEnd::DiagnosticContainer> &diagnostics
|
||||
QList<QTextEdit::ExtraSelection> &extraSelections)
|
||||
{
|
||||
for (auto &&diagnostic : diagnostics) {
|
||||
auto cursor = createSelectionCursor(textDocument, diagnostic.location());
|
||||
auto cursor = createSelectionCursor(textDocument, diagnostic.location);
|
||||
auto extraSelection = createExtraSelections(mainFormat, cursor);
|
||||
|
||||
addRangeSelections(diagnostic, textDocument, contextFormat, extraSelections);
|
||||
@@ -201,7 +201,7 @@ bool isDiagnosticAtLocation(const ClangBackEnd::DiagnosticContainer &diagnostic,
|
||||
{
|
||||
using namespace ClangCodeModel::Internal;
|
||||
|
||||
const ClangBackEnd::SourceLocationContainer &location = diagnostic.location();
|
||||
const ClangBackEnd::SourceLocationContainer &location = diagnostic.location;
|
||||
const QTextCursor cursor = createSelectionCursor(textDocument, location);
|
||||
const ClangBackEnd::SourceRangeContainer cursorRange = toSourceRange(cursor);
|
||||
|
||||
@@ -430,11 +430,11 @@ void ClangDiagnosticManager::addFixItAvailableMarker(
|
||||
QSet<int> &lineNumbersWithFixItMarker)
|
||||
{
|
||||
for (auto &&diagnostic : diagnostics) {
|
||||
for (auto &&fixit : diagnostic.fixIts()) {
|
||||
const ClangBackEnd::SourceLocationContainer location = fixit.range().start();
|
||||
const int line = int(location.line());
|
||||
for (auto &&fixit : diagnostic.fixIts) {
|
||||
const ClangBackEnd::SourceLocationContainer &location = fixit.range.start;
|
||||
const int line = int(location.line);
|
||||
|
||||
if (location.filePath() == filePath() && !lineNumbersWithFixItMarker.contains(line)) {
|
||||
if (location.filePath == filePath() && !lineNumbersWithFixItMarker.contains(line)) {
|
||||
const TextEditor::RefactorMarker marker
|
||||
= createFixItAvailableMarker(m_textDocument->document(), line);
|
||||
|
||||
@@ -443,7 +443,7 @@ void ClangDiagnosticManager::addFixItAvailableMarker(
|
||||
}
|
||||
}
|
||||
|
||||
addFixItAvailableMarker(diagnostic.children(), lineNumbersWithFixItMarker);
|
||||
addFixItAvailableMarker(diagnostic.children, lineNumbersWithFixItMarker);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -48,7 +48,7 @@ const char LINK_ACTION_APPLY_FIX[] = "#applyFix";
|
||||
QString fileNamePrefix(const QString &mainFilePath,
|
||||
const ClangBackEnd::SourceLocationContainer &location)
|
||||
{
|
||||
const QString filePath = location.filePath().toString();
|
||||
const QString filePath = location.filePath.toString();
|
||||
if (filePath != mainFilePath)
|
||||
return QFileInfo(filePath).fileName() + QLatin1Char(':');
|
||||
|
||||
@@ -57,23 +57,23 @@ QString fileNamePrefix(const QString &mainFilePath,
|
||||
|
||||
QString locationToString(const ClangBackEnd::SourceLocationContainer &location)
|
||||
{
|
||||
return QString::number(location.line())
|
||||
return QString::number(location.line)
|
||||
+ QStringLiteral(":")
|
||||
+ QString::number(location.column());
|
||||
+ QString::number(location.column);
|
||||
}
|
||||
|
||||
void openEditorAt(const ClangBackEnd::DiagnosticContainer &diagnostic)
|
||||
{
|
||||
const ClangBackEnd::SourceLocationContainer location = diagnostic.location();
|
||||
const ClangBackEnd::SourceLocationContainer &location = diagnostic.location;
|
||||
|
||||
Core::EditorManager::openEditorAt(location.filePath().toString(),
|
||||
int(location.line()),
|
||||
int(location.column() - 1));
|
||||
Core::EditorManager::openEditorAt(location.filePath.toString(),
|
||||
int(location.line),
|
||||
int(location.column - 1));
|
||||
}
|
||||
|
||||
void applyFixit(const ClangBackEnd::DiagnosticContainer &diagnostic)
|
||||
{
|
||||
ClangCodeModel::ClangFixItOperation operation(Utf8String(), diagnostic.fixIts());
|
||||
ClangCodeModel::ClangFixItOperation operation(Utf8String(), diagnostic.fixIts);
|
||||
|
||||
operation.perform();
|
||||
}
|
||||
@@ -161,7 +161,7 @@ private:
|
||||
{
|
||||
m_mainFilePath = m_displayHints.showFileNameInMainDiagnostic
|
||||
? Utf8String()
|
||||
: diagnostic.location().filePath();
|
||||
: diagnostic.location.filePath;
|
||||
|
||||
QString text;
|
||||
|
||||
@@ -181,7 +181,7 @@ private:
|
||||
" <td align='left'><b>%1</b></td>"
|
||||
" <td align='right'> <font color='gray'>%2</font></td>"
|
||||
" </tr>")
|
||||
.arg(diagnostic.category(), diagnostic.enableOption());
|
||||
.arg(diagnostic.category, diagnostic.enableOption);
|
||||
|
||||
return text;
|
||||
}
|
||||
@@ -189,8 +189,8 @@ private:
|
||||
QString diagnosticText(const ClangBackEnd::DiagnosticContainer &diagnostic)
|
||||
{
|
||||
const bool hasFixit = m_displayHints.enableClickableFixits
|
||||
&& !diagnostic.fixIts().isEmpty();
|
||||
const QString diagnosticText = diagnostic.text().toString().toHtmlEscaped();
|
||||
&& !diagnostic.fixIts.isEmpty();
|
||||
const QString diagnosticText = diagnostic.text.toString().toHtmlEscaped();
|
||||
const QString text = QString::fromLatin1("%1: %2")
|
||||
.arg(clickableLocation(diagnostic, m_mainFilePath),
|
||||
clickableFixIt(diagnostic, diagnosticText, hasFixit));
|
||||
@@ -213,7 +213,7 @@ private:
|
||||
|
||||
QString diagnosticRowsForChildren(const ClangBackEnd::DiagnosticContainer &diagnostic)
|
||||
{
|
||||
const QVector<ClangBackEnd::DiagnosticContainer> children = diagnostic.children();
|
||||
const QVector<ClangBackEnd::DiagnosticContainer> &children = diagnostic.children;
|
||||
QString text;
|
||||
|
||||
if (children.size() <= 10) {
|
||||
@@ -242,7 +242,7 @@ private:
|
||||
QString clickableLocation(const ClangBackEnd::DiagnosticContainer &diagnostic,
|
||||
const QString &mainFilePath)
|
||||
{
|
||||
const ClangBackEnd::SourceLocationContainer location = diagnostic.location();
|
||||
const ClangBackEnd::SourceLocationContainer &location = diagnostic.location;
|
||||
|
||||
const QString filePrefix = fileNamePrefix(mainFilePath, location);
|
||||
const QString lineColumn = locationToString(location);
|
||||
|
||||
@@ -208,17 +208,17 @@ namespace {
|
||||
int positionInText(QTextDocument *textDocument,
|
||||
const ClangBackEnd::SourceLocationContainer &sourceLocationContainer)
|
||||
{
|
||||
auto textBlock = textDocument->findBlockByNumber(int(sourceLocationContainer.line()) - 1);
|
||||
auto textBlock = textDocument->findBlockByNumber(int(sourceLocationContainer.line) - 1);
|
||||
|
||||
return textBlock.position() + int(sourceLocationContainer.column()) - 1;
|
||||
return textBlock.position() + int(sourceLocationContainer.column) - 1;
|
||||
}
|
||||
|
||||
TextEditor::BlockRange
|
||||
toTextEditorBlock(QTextDocument *textDocument,
|
||||
const ClangBackEnd::SourceRangeContainer &sourceRangeContainer)
|
||||
{
|
||||
return TextEditor::BlockRange(positionInText(textDocument, sourceRangeContainer.start()),
|
||||
positionInText(textDocument, sourceRangeContainer.end()));
|
||||
return TextEditor::BlockRange(positionInText(textDocument, sourceRangeContainer.start),
|
||||
positionInText(textDocument, sourceRangeContainer.end));
|
||||
}
|
||||
|
||||
QList<TextEditor::BlockRange>
|
||||
@@ -631,7 +631,7 @@ CppTools::BaseEditorDocumentProcessor::HeaderErrorDiagnosticWidgetCreator
|
||||
ClangEditorDocumentProcessor::creatorForHeaderErrorDiagnosticWidget(
|
||||
const ClangBackEnd::DiagnosticContainer &firstHeaderErrorDiagnostic)
|
||||
{
|
||||
if (firstHeaderErrorDiagnostic.text().isEmpty())
|
||||
if (firstHeaderErrorDiagnostic.text.isEmpty())
|
||||
return CppTools::BaseEditorDocumentProcessor::HeaderErrorDiagnosticWidgetCreator();
|
||||
|
||||
return [firstHeaderErrorDiagnostic]() {
|
||||
|
||||
@@ -60,8 +60,8 @@ static FileToFixits fixitsPerFile(const QVector<ClangBackEnd::FixItContainer> &f
|
||||
FileToFixits mapping;
|
||||
|
||||
for (const auto &fixItContainer : fixItContainers) {
|
||||
const QString rangeStartFilePath = fixItContainer.range().start().filePath().toString();
|
||||
const QString rangeEndFilePath = fixItContainer.range().end().filePath().toString();
|
||||
const QString rangeStartFilePath = fixItContainer.range.start.filePath.toString();
|
||||
const QString rangeEndFilePath = fixItContainer.range.end.filePath.toString();
|
||||
QTC_CHECK(rangeStartFilePath == rangeEndFilePath);
|
||||
mapping[rangeStartFilePath].append(fixItContainer);
|
||||
}
|
||||
@@ -109,12 +109,12 @@ Utils::ChangeSet ClangFixItOperation::toChangeSet(
|
||||
Utils::ChangeSet changeSet;
|
||||
|
||||
for (const auto &fixItContainer : fixItContainers) {
|
||||
const auto range = fixItContainer.range();
|
||||
const auto start = range.start();
|
||||
const auto end = range.end();
|
||||
changeSet.replace(refactoringFile.position(start.line(), start.column()),
|
||||
refactoringFile.position(end.line(), end.column()),
|
||||
fixItContainer.text());
|
||||
const auto &range = fixItContainer.range;
|
||||
const auto &start = range.start;
|
||||
const auto &end = range.end;
|
||||
changeSet.replace(refactoringFile.position(start.line, start.column),
|
||||
refactoringFile.position(end.line, end.column),
|
||||
fixItContainer.text);
|
||||
}
|
||||
|
||||
return changeSet;
|
||||
|
||||
@@ -82,8 +82,8 @@ bool hasFixItAt(const QVector<ClangBackEnd::FixItContainer> &fixits,
|
||||
int line)
|
||||
{
|
||||
const auto isFixitForLocation = [filePath, line] (const ClangBackEnd::FixItContainer &fixit) {
|
||||
const ClangBackEnd::SourceLocationContainer location = fixit.range().start();
|
||||
return location.filePath() == filePath && location.line() == uint(line);
|
||||
const ClangBackEnd::SourceLocationContainer &location = fixit.range.start;
|
||||
return location.filePath == filePath && location.line == uint(line);
|
||||
};
|
||||
|
||||
return Utils::anyOf(fixits, isFixitForLocation);
|
||||
@@ -125,11 +125,11 @@ void ClangFixItOperationsExtractor::extractFromDiagnostic(
|
||||
const QString &filePath,
|
||||
int line)
|
||||
{
|
||||
const QVector<ClangBackEnd::FixItContainer> fixIts = diagnosticContainer.fixIts();
|
||||
const QVector<ClangBackEnd::FixItContainer> &fixIts = diagnosticContainer.fixIts;
|
||||
if (hasFixItAt(fixIts, filePath, line)) {
|
||||
appendFixitOperation(diagnosticContainer.text().toString(), fixIts);
|
||||
appendFixitOperation(diagnosticContainer.text.toString(), fixIts);
|
||||
|
||||
foreach (const auto &child, diagnosticContainer.children())
|
||||
for (const auto &child : diagnosticContainer.children)
|
||||
extractFromDiagnostic(child, filePath, line);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,11 +45,11 @@ static bool findMark(const QVector<ClangBackEnd::TokenInfoContainer> &marks,
|
||||
{
|
||||
mark = Utils::findOrDefault(marks,
|
||||
[line, column](const ClangBackEnd::TokenInfoContainer &curMark) {
|
||||
if (curMark.line() != line)
|
||||
if (curMark.line != line)
|
||||
return false;
|
||||
if (curMark.column() == column)
|
||||
if (curMark.column == column)
|
||||
return true;
|
||||
if (curMark.column() < column && curMark.column() + curMark.length() > column)
|
||||
if (curMark.column < column && curMark.column + curMark.length > column)
|
||||
return true;
|
||||
return false;
|
||||
});
|
||||
@@ -61,8 +61,8 @@ static bool findMark(const QVector<ClangBackEnd::TokenInfoContainer> &marks,
|
||||
static int getMarkPos(QTextCursor cursor, const ClangBackEnd::TokenInfoContainer &mark)
|
||||
{
|
||||
cursor.setPosition(0);
|
||||
cursor.movePosition(QTextCursor::NextBlock, QTextCursor::MoveAnchor, mark.line() - 1);
|
||||
cursor.movePosition(QTextCursor::NextCharacter, QTextCursor::MoveAnchor, mark.column() - 1);
|
||||
cursor.movePosition(QTextCursor::NextBlock, QTextCursor::MoveAnchor, mark.line - 1);
|
||||
cursor.movePosition(QTextCursor::NextCharacter, QTextCursor::MoveAnchor, mark.column - 1);
|
||||
return cursor.position();
|
||||
}
|
||||
|
||||
@@ -80,15 +80,15 @@ static Utils::Link linkAtCursor(QTextCursor cursor, const QString &filePath, uin
|
||||
cursor.movePosition(QTextCursor::EndOfWord, QTextCursor::KeepAnchor);
|
||||
const QString tokenStr = cursor.selectedText();
|
||||
|
||||
Link token(filePath, mark.line(), mark.column());
|
||||
Link token(filePath, mark.line, mark.column);
|
||||
token.linkTextStart = getMarkPos(cursor, mark);
|
||||
token.linkTextEnd = token.linkTextStart + mark.length();
|
||||
if (mark.extraInfo().includeDirectivePath) {
|
||||
token.linkTextEnd = token.linkTextStart + mark.length;
|
||||
if (mark.extraInfo.includeDirectivePath) {
|
||||
if (tokenStr != "include" && tokenStr != "#" && tokenStr != "<")
|
||||
return token;
|
||||
return Link();
|
||||
}
|
||||
if (mark.extraInfo().identifier || tokenStr == "operator")
|
||||
if (mark.extraInfo.identifier || tokenStr == "operator")
|
||||
return token;
|
||||
return Link();
|
||||
}
|
||||
|
||||
@@ -51,11 +51,11 @@ int ClangFunctionHintModel::size() const
|
||||
|
||||
QString ClangFunctionHintModel::text(int index) const
|
||||
{
|
||||
const ClangBackEnd::CodeCompletionChunks chunks = m_functionSymbols.at(index).chunks();
|
||||
const ClangBackEnd::CodeCompletionChunks &chunks = m_functionSymbols.at(index).chunks;
|
||||
const QString signatureWithEmphasizedCurrentParameter
|
||||
= CompletionChunksToTextConverter::convertToFunctionSignatureWithHtml(
|
||||
chunks,
|
||||
m_functionSymbols.at(index).completionKind(),
|
||||
m_functionSymbols.at(index).completionKind,
|
||||
m_currentArgument + 1);
|
||||
|
||||
return signatureWithEmphasizedCurrentParameter;
|
||||
@@ -64,8 +64,8 @@ QString ClangFunctionHintModel::text(int index) const
|
||||
QString ClangFunctionHintModel::id(int index) const
|
||||
{
|
||||
QString chunks;
|
||||
for (const ClangBackEnd::CodeCompletionChunk &chunk : m_functionSymbols.at(index).chunks())
|
||||
chunks += chunk.text();
|
||||
for (const ClangBackEnd::CodeCompletionChunk &chunk : m_functionSymbols.at(index).chunks)
|
||||
chunks += chunk.text;
|
||||
|
||||
return chunks;
|
||||
}
|
||||
|
||||
@@ -130,11 +130,11 @@ TextEditor::TextStyles toTextStyles(ClangBackEnd::HighlightingTypes types)
|
||||
TextEditor::HighlightingResult toHighlightingResult(
|
||||
const ClangBackEnd::TokenInfoContainer &tokenInfo)
|
||||
{
|
||||
const auto textStyles = toTextStyles(tokenInfo.types());
|
||||
const auto textStyles = toTextStyles(tokenInfo.types);
|
||||
|
||||
return TextEditor::HighlightingResult(tokenInfo.line(),
|
||||
tokenInfo.column(),
|
||||
tokenInfo.length(),
|
||||
return TextEditor::HighlightingResult(tokenInfo.line,
|
||||
tokenInfo.column,
|
||||
tokenInfo.length,
|
||||
textStyles);
|
||||
}
|
||||
|
||||
@@ -194,7 +194,7 @@ void HighlightingResultReporter::run_internal()
|
||||
using ClangBackEnd::HighlightingType;
|
||||
|
||||
for (const auto &tokenInfo : m_tokenInfos) {
|
||||
const HighlightingType mainType = tokenInfo.types().mainHighlightingType;
|
||||
const HighlightingType mainType = tokenInfo.types.mainHighlightingType;
|
||||
if (mainType == HighlightingType::StringLiteral)
|
||||
continue;
|
||||
|
||||
|
||||
@@ -30,24 +30,24 @@
|
||||
namespace ClangCodeModel {
|
||||
namespace Internal {
|
||||
|
||||
bool isWithinRange(const ClangBackEnd::SourceRangeContainer &range,
|
||||
uint line,
|
||||
uint column)
|
||||
static bool isWithinRange(const ClangBackEnd::SourceRangeContainer &range,
|
||||
uint line,
|
||||
uint column)
|
||||
{
|
||||
const ClangBackEnd::SourceLocationContainer startLocation = range.start();
|
||||
const ClangBackEnd::SourceLocationContainer endLocation = range.end();
|
||||
const ClangBackEnd::SourceLocationContainer &startLocation = range.start;
|
||||
const ClangBackEnd::SourceLocationContainer &endLocation = range.end;
|
||||
|
||||
return startLocation.line() <= line
|
||||
&& startLocation.column() <= column
|
||||
&& line <= endLocation.line()
|
||||
&& column <= endLocation.column();
|
||||
return startLocation.line <= line
|
||||
&& startLocation.column <= column
|
||||
&& line <= endLocation.line
|
||||
&& column <= endLocation.column;
|
||||
}
|
||||
|
||||
bool isWithinOneRange(const QVector<ClangBackEnd::SourceRangeContainer> &ranges,
|
||||
uint line,
|
||||
uint column)
|
||||
static bool isWithinOneRange(const QVector<ClangBackEnd::SourceRangeContainer> &ranges,
|
||||
uint line,
|
||||
uint column)
|
||||
{
|
||||
foreach (const ClangBackEnd::SourceRangeContainer &range, ranges) {
|
||||
for (const ClangBackEnd::SourceRangeContainer &range : ranges) {
|
||||
if (isWithinRange(range, line, column))
|
||||
return true;
|
||||
}
|
||||
@@ -60,15 +60,15 @@ bool isDiagnosticRelatedToLocation(const ClangBackEnd::DiagnosticContainer &diag
|
||||
uint line,
|
||||
uint column)
|
||||
{
|
||||
const ClangBackEnd::SourceLocationContainer location = diagnostic.location();
|
||||
const ClangBackEnd::SourceLocationContainer &location = diagnostic.location;
|
||||
|
||||
if (location.line() == line && location.column() == column)
|
||||
if (location.line == line && location.column == column)
|
||||
return true;
|
||||
|
||||
if (isWithinOneRange(additionalRanges, line, column))
|
||||
return true;
|
||||
|
||||
if (isWithinOneRange(diagnostic.ranges(), line, column))
|
||||
if (isWithinOneRange(diagnostic.ranges, line, column))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
|
||||
@@ -44,11 +44,11 @@ static bool contains(const ClangBackEnd::SourceRangeContainer &range,
|
||||
unsigned line,
|
||||
unsigned column)
|
||||
{
|
||||
if (line < range.start().line() || line > range.end().line())
|
||||
if (line < range.start.line || line > range.end.line)
|
||||
return false;
|
||||
if (line == range.start().line() && column < range.start().column())
|
||||
if (line == range.start.line && column < range.start.column)
|
||||
return false;
|
||||
if (line == range.end().line() && column > range.end().column())
|
||||
if (line == range.end.line && column > range.end.column)
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
@@ -56,7 +56,7 @@ static bool contains(const ClangBackEnd::SourceRangeContainer &range,
|
||||
static bool contains(const ClangBackEnd::SourceRangeContainer &range,
|
||||
const ClangBackEnd::SourceLocationContainer &location)
|
||||
{
|
||||
return contains(range, location.line(), location.column());
|
||||
return contains(range, location.line, location.column);
|
||||
}
|
||||
|
||||
void buildTree(TokenContainers::const_iterator containersBegin,
|
||||
@@ -64,29 +64,29 @@ void buildTree(TokenContainers::const_iterator containersBegin,
|
||||
TokenTreeItem *parent, bool isRoot = false)
|
||||
{
|
||||
for (auto it = containersBegin; it != containersEnd;) {
|
||||
if (!it->extraInfo().declaration) {
|
||||
if (!it->extraInfo.declaration) {
|
||||
++it;
|
||||
continue;
|
||||
}
|
||||
if (it->types().mainHighlightingType == ClangBackEnd::HighlightingType::LocalVariable) {
|
||||
if (it->types.mainHighlightingType == ClangBackEnd::HighlightingType::LocalVariable) {
|
||||
++it;
|
||||
continue;
|
||||
}
|
||||
|
||||
auto *item = new TokenTreeItem(*it);
|
||||
parent->appendChild(item);
|
||||
const auto &range = it->extraInfo().cursorRange;
|
||||
const auto &range = it->extraInfo.cursorRange;
|
||||
|
||||
++it;
|
||||
auto innerIt = it;
|
||||
for (; innerIt != containersEnd; ++innerIt) {
|
||||
if (!innerIt->extraInfo().declaration)
|
||||
if (!innerIt->extraInfo.declaration)
|
||||
continue;
|
||||
if (innerIt->types().mainHighlightingType
|
||||
if (innerIt->types.mainHighlightingType
|
||||
== ClangBackEnd::HighlightingType::LocalVariable) {
|
||||
continue;
|
||||
}
|
||||
const auto &start = innerIt->extraInfo().cursorRange.start();
|
||||
const auto &start = innerIt->extraInfo.cursorRange.start;
|
||||
if (!contains(range, start)) {
|
||||
break;
|
||||
}
|
||||
@@ -129,50 +129,50 @@ QVariant TokenTreeItem::data(int column, int role) const
|
||||
{
|
||||
Q_UNUSED(column)
|
||||
|
||||
if (token.types().mainHighlightingType == ClangBackEnd::HighlightingType::Invalid
|
||||
&& token.line() == 0 && token.column() == 0 && token.length() == 0) {
|
||||
if (token.types.mainHighlightingType == ClangBackEnd::HighlightingType::Invalid
|
||||
&& token.line == 0 && token.column == 0 && token.length == 0) {
|
||||
if (role == Qt::DisplayRole)
|
||||
return token.extraInfo().token.toString();
|
||||
return token.extraInfo.token.toString();
|
||||
return QVariant();
|
||||
}
|
||||
|
||||
switch (role) {
|
||||
case Qt::DisplayRole: {
|
||||
QString name = token.extraInfo().token.toString();
|
||||
ClangBackEnd::HighlightingType mainType = token.types().mainHighlightingType;
|
||||
QString name = token.extraInfo.token.toString();
|
||||
ClangBackEnd::HighlightingType mainType = token.types.mainHighlightingType;
|
||||
|
||||
if (mainType == ClangBackEnd::HighlightingType::VirtualFunction
|
||||
|| mainType == ClangBackEnd::HighlightingType::Function) {
|
||||
name = addResultTypeToFunctionSignature(name, token.extraInfo());
|
||||
name = addResultTypeToFunctionSignature(name, token.extraInfo);
|
||||
} else if (mainType == ClangBackEnd::HighlightingType::GlobalVariable
|
||||
|| mainType == ClangBackEnd::HighlightingType::Field
|
||||
|| mainType == ClangBackEnd::HighlightingType::QtProperty) {
|
||||
name = addTypeToVariableName(name, token.extraInfo());
|
||||
if (token.types().mixinHighlightingTypes.contains(
|
||||
name = addTypeToVariableName(name, token.extraInfo);
|
||||
if (token.types.mixinHighlightingTypes.contains(
|
||||
ClangBackEnd::HighlightingType::ObjectiveCProperty)) {
|
||||
name = QLatin1String("@property ") + name;
|
||||
} else if (token.types().mixinHighlightingTypes.contains(
|
||||
} else if (token.types.mixinHighlightingTypes.contains(
|
||||
ClangBackEnd::HighlightingType::ObjectiveCMethod)) {
|
||||
if (token.extraInfo().storageClass == ClangBackEnd::StorageClass::Static)
|
||||
if (token.extraInfo.storageClass == ClangBackEnd::StorageClass::Static)
|
||||
name = QLatin1Char('+') + name;
|
||||
else
|
||||
name = QLatin1Char('-') + name;
|
||||
}
|
||||
} else if (mainType == ClangBackEnd::HighlightingType::Type) {
|
||||
|
||||
if (token.types().mixinHighlightingTypes.contains(
|
||||
if (token.types.mixinHighlightingTypes.contains(
|
||||
ClangBackEnd::HighlightingType::ObjectiveCClass)) {
|
||||
name = QLatin1String("@class ") + name;
|
||||
} else if (token.types().mixinHighlightingTypes.contains(
|
||||
} else if (token.types.mixinHighlightingTypes.contains(
|
||||
ClangBackEnd::HighlightingType::ObjectiveCProtocol)) {
|
||||
name = QLatin1String("@protocol ") + name;
|
||||
} else if (token.types().mixinHighlightingTypes.contains(
|
||||
} else if (token.types.mixinHighlightingTypes.contains(
|
||||
ClangBackEnd::HighlightingType::ObjectiveCInterface)) {
|
||||
name = QLatin1String("@interface ") + name;
|
||||
} else if (token.types().mixinHighlightingTypes.contains(
|
||||
} else if (token.types.mixinHighlightingTypes.contains(
|
||||
ClangBackEnd::HighlightingType::ObjectiveCImplementation)) {
|
||||
name = QLatin1String("@implementation ") + name;
|
||||
} else if (token.types().mixinHighlightingTypes.contains(
|
||||
} else if (token.types.mixinHighlightingTypes.contains(
|
||||
ClangBackEnd::HighlightingType::ObjectiveCCategory)) {
|
||||
name = name + " [category]";
|
||||
}
|
||||
@@ -181,7 +181,7 @@ QVariant TokenTreeItem::data(int column, int role) const
|
||||
}
|
||||
|
||||
case Qt::EditRole: {
|
||||
return token.extraInfo().token.toString();
|
||||
return token.extraInfo.token.toString();
|
||||
}
|
||||
|
||||
case Qt::DecorationRole: {
|
||||
@@ -189,11 +189,11 @@ QVariant TokenTreeItem::data(int column, int role) const
|
||||
}
|
||||
|
||||
case CppTools::AbstractOverviewModel::FileNameRole: {
|
||||
return token.extraInfo().cursorRange.start().filePath().toString();
|
||||
return token.extraInfo.cursorRange.start.filePath.toString();
|
||||
}
|
||||
|
||||
case CppTools::AbstractOverviewModel::LineNumberRole: {
|
||||
return token.line();
|
||||
return token.line;
|
||||
}
|
||||
|
||||
default:
|
||||
@@ -238,8 +238,8 @@ bool OverviewModel::isGenerated(const QModelIndex &) const
|
||||
TokenTreeItem *item = static_cast<TokenTreeItem *>(itemForIndex(sourceIndex));
|
||||
if (!item)
|
||||
return {};
|
||||
return ::Utils::Link(m_filePath, static_cast<int>(item->token.line()),
|
||||
static_cast<int>(item->token.column()) - 1);
|
||||
return ::Utils::Link(m_filePath, static_cast<int>(item->token.line),
|
||||
static_cast<int>(item->token.column) - 1);
|
||||
}
|
||||
|
||||
::Utils::LineColumn OverviewModel::lineColumnFromIndex(const QModelIndex &sourceIndex) const
|
||||
@@ -248,8 +248,8 @@ bool OverviewModel::isGenerated(const QModelIndex &) const
|
||||
if (!item)
|
||||
return {};
|
||||
::Utils::LineColumn lineColumn;
|
||||
lineColumn.line = static_cast<int>(item->token.line());
|
||||
lineColumn.column = static_cast<int>(item->token.column());
|
||||
lineColumn.line = static_cast<int>(item->token.line);
|
||||
lineColumn.column = static_cast<int>(item->token.column);
|
||||
return lineColumn;
|
||||
}
|
||||
|
||||
|
||||
@@ -67,12 +67,12 @@ ClangTextMark::ClangTextMark(const QString &fileName,
|
||||
const RemovedFromEditorHandler &removedHandler,
|
||||
bool showLineAnnotations)
|
||||
: TextEditor::TextMark(fileName,
|
||||
int(diagnostic.location().line()),
|
||||
cartegoryForSeverity(diagnostic.severity()))
|
||||
int(diagnostic.location.line),
|
||||
cartegoryForSeverity(diagnostic.severity))
|
||||
, m_diagnostic(diagnostic)
|
||||
, m_removedFromEditorHandler(removedHandler)
|
||||
{
|
||||
const bool warning = isWarningOrNote(diagnostic.severity());
|
||||
const bool warning = isWarningOrNote(diagnostic.severity);
|
||||
setColor(warning ? Utils::Theme::ClangCodeModel_Warning_TextMarkColor
|
||||
: Utils::Theme::ClangCodeModel_Error_TextMarkColor);
|
||||
setDefaultToolTip(warning ? QApplication::translate("Clang Code Model Marks", "Code Model Warning")
|
||||
@@ -81,13 +81,13 @@ ClangTextMark::ClangTextMark(const QString &fileName,
|
||||
: TextEditor::TextMark::HighPriority);
|
||||
updateIcon();
|
||||
if (showLineAnnotations)
|
||||
setLineAnnotation(diagnostic.text().toString());
|
||||
setLineAnnotation(diagnostic.text.toString());
|
||||
}
|
||||
|
||||
void ClangTextMark::updateIcon(bool valid)
|
||||
{
|
||||
using namespace Utils::Icons;
|
||||
if (isWarningOrNote(m_diagnostic.severity()))
|
||||
if (isWarningOrNote(m_diagnostic.severity))
|
||||
setIcon(valid ? CODEMODEL_WARNING.icon() : CODEMODEL_DISABLED_WARNING.icon());
|
||||
else
|
||||
setIcon(valid ? CODEMODEL_ERROR.icon() : CODEMODEL_DISABLED_ERROR.icon());
|
||||
|
||||
@@ -207,7 +207,7 @@ int clangColumn(const QTextBlock &line, int cppEditorColumn)
|
||||
|
||||
CPlusPlus::Icons::IconType iconTypeForToken(const ClangBackEnd::TokenInfoContainer &token)
|
||||
{
|
||||
const ClangBackEnd::ExtraInfo &extraInfo = token.extraInfo();
|
||||
const ClangBackEnd::ExtraInfo &extraInfo = token.extraInfo;
|
||||
if (extraInfo.signal)
|
||||
return CPlusPlus::Icons::SignalIconType;
|
||||
|
||||
@@ -224,7 +224,7 @@ CPlusPlus::Icons::IconType iconTypeForToken(const ClangBackEnd::TokenInfoContain
|
||||
}
|
||||
}
|
||||
|
||||
ClangBackEnd::HighlightingType mainType = token.types().mainHighlightingType;
|
||||
ClangBackEnd::HighlightingType mainType = token.types.mainHighlightingType;
|
||||
|
||||
if (mainType == ClangBackEnd::HighlightingType::Keyword)
|
||||
return CPlusPlus::Icons::KeywordIconType;
|
||||
@@ -241,7 +241,7 @@ CPlusPlus::Icons::IconType iconTypeForToken(const ClangBackEnd::TokenInfoContain
|
||||
return CPlusPlus::Icons::EnumeratorIconType;
|
||||
|
||||
if (mainType == ClangBackEnd::HighlightingType::Type) {
|
||||
const ClangBackEnd::MixinHighlightingTypes &types = token.types().mixinHighlightingTypes;
|
||||
const ClangBackEnd::MixinHighlightingTypes &types = token.types.mixinHighlightingTypes;
|
||||
if (types.contains(ClangBackEnd::HighlightingType::Enum))
|
||||
return CPlusPlus::Icons::EnumIconType;
|
||||
if (types.contains(ClangBackEnd::HighlightingType::Struct))
|
||||
|
||||
Reference in New Issue
Block a user