TextEditor: do not collapse doc comments in the beginning of a file

The auto fold license header functionality also automatically folds
documentation comments. Automatically collapsing documentation comments
is never correct in the first place so just skip the fold when encounter
a documentation marker in the first comment.

Fixes: QTCREATORBUG-29900
Change-Id: If0dd7842804f3ff0bcd725b54413e9568d5b5ab3
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
David Schulz
2023-11-20 08:14:32 +01:00
parent b451019be1
commit d81d41032a

View File

@@ -1919,6 +1919,7 @@ void TextEditorWidgetPrivate::foldLicenseHeader()
if (TextDocumentLayout::canFold(block) && block.next().isVisible()) {
const QString trimmedText = text.trimmed();
QStringList commentMarker;
QStringList docMarker;
if (auto highlighter = qobject_cast<Highlighter *>(
q->textDocument()->syntaxHighlighter())) {
const Highlighter::Definition def = highlighter->definition();
@@ -1929,11 +1930,19 @@ void TextEditorWidgetPrivate::foldLicenseHeader()
}
} else {
commentMarker = QStringList({"/*", "#"});
docMarker = QStringList({"/*!", "/**"});
}
if (Utils::anyOf(commentMarker, [&](const QString &marker) {
return trimmedText.startsWith(marker);
})) {
if (Utils::anyOf(docMarker, [&](const QString &marker) {
return trimmedText.startsWith(marker)
&& (trimmedText.size() == marker.size()
|| trimmedText.at(marker.size()).isSpace());
})) {
break;
}
TextDocumentLayout::doFoldOrUnfold(block, false);
moveCursorVisible();
documentLayout->requestUpdate();