}
return 0;
}
+
+QString QmlJSTextEditorWidget::foldReplacementText(const QTextBlock &block) const
+{
+ int curlyIndex = block.text().indexOf(QLatin1Char('{'));
+
+ if ((curlyIndex == -1) || !m_semanticInfo.isValid())
+ return TextEditor::BaseTextEditorWidget::foldReplacementText(block);
+
+ int pos = block.position() + curlyIndex;
+ Node *node = m_semanticInfo.rangeAt(pos);
+
+ if (node) {
+ UiObjectInitializer *objectInitializer = 0;
+ if (UiObjectDefinition *def = cast<UiObjectDefinition *>(node))
+ objectInitializer = def->initializer;
+ else if (UiObjectBinding *binding = cast<UiObjectBinding *>(node))
+ objectInitializer = binding->initializer;
+
+ // Get the id value, if it exists, and display it
+ if (objectInitializer) {
+ QString objectId = idOfObject(objectInitializer);
+ if (!objectId.isEmpty())
+ return QLatin1String("id: ") + objectId + QLatin1String("...");
+ }
+ }
+
+ return TextEditor::BaseTextEditorWidget::foldReplacementText(block);
+}
QRectF lineRect = line.naturalTextRect().translated(offset.x(), top);
lineRect.adjust(0, 0, -1, -1);
+ QString replacement = QLatin1String(" {") + foldReplacementText(block)
+ + QLatin1String("}; ");
+
QRectF collapseRect(lineRect.right() + 12,
lineRect.top(),
- fontMetrics().width(QLatin1String(" {...}; ")),
+ fontMetrics().width(replacement),
lineRect.height());
if (collapseRect.contains(pos)) {
QTextBlock result = block;
QRectF lineRect = line.naturalTextRect().translated(offset.x(), top);
lineRect.adjust(0, 0, -1, -1);
+ QString replacement = foldReplacementText(block);
+ QString rectReplacement = QLatin1String(" {") + replacement + QLatin1String("}; ");
+
QRectF collapseRect(lineRect.right() + 12,
lineRect.top(),
- fontMetrics().width(QLatin1String(" {...}; ")),
+ fontMetrics().width(rectReplacement),
lineRect.height());
painter.setRenderHint(QPainter::Antialiasing, true);
painter.translate(.5, .5);
painter.setRenderHint(QPainter::Antialiasing, false);
painter.translate(-.5, -.5);
- QString replacement = QLatin1String("...");
-
if (TextBlockUserData *nextBlockUserData = BaseTextDocumentLayout::testUserData(nextBlock)) {
if (nextBlockUserData->foldingStartIncluded())
replacement.prepend(nextBlock.text().trimmed().left(1));
Q_UNUSED(kind);
return new DefaultAssistInterface(document(), position(), d->m_document, reason);
}
+
+QString TextEditor::BaseTextEditorWidget::foldReplacementText(const QTextBlock &) const
+{
+ return QLatin1String("...");
+}