mirror of
https://github.com/NohamR/Reclass.git
synced 2026-05-10 19:59:21 +00:00
Struct headers: type+name format, auto-collapse, no footer when collapsed
- Add structTypeName field to Node for struct type names
- Struct headers now show: struct TYPENAME name {
- Auto-collapse structs/arrays by default
- Skip footer rendering when collapsed (cleaner view)
- Fix header span calculations for new format
- Disable brace matching (not needed for structured viewer)
- Change hover color to muted teal (distinct from keywords)
This commit is contained in:
@@ -102,14 +102,23 @@ QString fmtOffsetMargin(int64_t relativeOffset, bool isContinuation) {
|
||||
// ── Struct header / footer ──
|
||||
|
||||
QString fmtStructHeader(const Node& node, int depth) {
|
||||
return indent(depth) + typeName(node.kind).trimmed() +
|
||||
QStringLiteral(" ") + node.name + QStringLiteral(" {");
|
||||
// Format: "struct TypeName name {" or "struct name {" if no type name
|
||||
QString type = typeName(node.kind).trimmed();
|
||||
if (!node.structTypeName.isEmpty())
|
||||
return indent(depth) + type + QStringLiteral(" ") + node.structTypeName +
|
||||
QStringLiteral(" ") + node.name + QStringLiteral(" {");
|
||||
return indent(depth) + type + QStringLiteral(" ") + node.name + QStringLiteral(" {");
|
||||
}
|
||||
|
||||
QString fmtStructHeaderWithBase(const Node& node, int depth, uint64_t baseAddress) {
|
||||
// Format: "struct Name { base: 0x00400000" - single space after {
|
||||
QString header = indent(depth) + typeName(node.kind).trimmed() +
|
||||
QStringLiteral(" ") + node.name + QStringLiteral(" { ");
|
||||
// Format: "struct TypeName Name { // base: 0x..." or "struct Name { // base: 0x..."
|
||||
QString type = typeName(node.kind).trimmed();
|
||||
QString header;
|
||||
if (!node.structTypeName.isEmpty())
|
||||
header = indent(depth) + type + QStringLiteral(" ") + node.structTypeName +
|
||||
QStringLiteral(" ") + node.name + QStringLiteral(" { ");
|
||||
else
|
||||
header = indent(depth) + type + QStringLiteral(" ") + node.name + QStringLiteral(" { ");
|
||||
QString baseHex = QStringLiteral("0x") + QString::number(baseAddress, 16).toUpper();
|
||||
return header + QStringLiteral("// base: ") + baseHex;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user