mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 22:28:11 +00:00
LibWeb: Add Layout::Node::debug_description()
This returns a String with this format: - LayoutNodeClassName<TAG_NAME>#id.class1.class2.class3 I've rewritten this function 10+ times at this point, so I'm just gonna add it to the repository for future debugging needs. :^)
This commit is contained in:
parent
cf5eeb9f4b
commit
c8051f8b5b
2 changed files with 20 additions and 0 deletions
|
@ -527,6 +527,25 @@ String Node::class_name() const
|
|||
return demangle(typeid(*this).name());
|
||||
}
|
||||
|
||||
String Node::debug_description() const
|
||||
{
|
||||
StringBuilder builder;
|
||||
builder.append(class_name().substring_view(13));
|
||||
if (dom_node()) {
|
||||
builder.appendff("<{}>", dom_node()->node_name());
|
||||
if (dom_node()->is_element()) {
|
||||
auto& element = static_cast<DOM::Element const&>(*dom_node());
|
||||
if (auto id = element.get_attribute(HTML::AttributeNames::id); !id.is_null())
|
||||
builder.appendff("#{}", id);
|
||||
for (auto const& class_name : element.class_names())
|
||||
builder.appendff(".{}", class_name);
|
||||
}
|
||||
} else {
|
||||
builder.append("(anonymous)");
|
||||
}
|
||||
return builder.to_string();
|
||||
}
|
||||
|
||||
bool Node::is_inline_block() const
|
||||
{
|
||||
return is_inline() && is<BlockContainer>(*this);
|
||||
|
|
|
@ -74,6 +74,7 @@ public:
|
|||
bool is_root_element() const;
|
||||
|
||||
String class_name() const;
|
||||
String debug_description() const;
|
||||
|
||||
bool has_style() const { return m_has_style; }
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue