mirror of
https://github.com/RGBCube/serenity
synced 2025-07-28 13:37:45 +00:00
Everywhere: Add sv suffix to strings relying on StringView(char const*)
Each of these strings would previously rely on StringView's char const* constructor overload, which would call __builtin_strlen on the string. Since we now have operator ""sv, we can replace these with much simpler versions. This opens the door to being able to remove StringView(char const*). No functional changes.
This commit is contained in:
parent
e5f09ea170
commit
3f3f45580a
762 changed files with 8315 additions and 8316 deletions
|
@ -13,9 +13,9 @@ namespace Markdown {
|
|||
String BlockQuote::render_to_html(bool) const
|
||||
{
|
||||
StringBuilder builder;
|
||||
builder.append("<blockquote>\n");
|
||||
builder.append("<blockquote>\n"sv);
|
||||
builder.append(m_contents->render_to_html());
|
||||
builder.append("</blockquote>\n");
|
||||
builder.append("</blockquote>\n"sv);
|
||||
return builder.build();
|
||||
}
|
||||
|
||||
|
|
|
@ -17,15 +17,15 @@ String CodeBlock::render_to_html(bool) const
|
|||
{
|
||||
StringBuilder builder;
|
||||
|
||||
builder.append("<pre>");
|
||||
builder.append("<pre>"sv);
|
||||
|
||||
if (m_style.length() >= 2)
|
||||
builder.append("<strong>");
|
||||
builder.append("<strong>"sv);
|
||||
else if (m_style.length() >= 2)
|
||||
builder.append("<em>");
|
||||
builder.append("<em>"sv);
|
||||
|
||||
if (m_language.is_empty())
|
||||
builder.append("<code>");
|
||||
builder.append("<code>"sv);
|
||||
else
|
||||
builder.appendff("<code class=\"language-{}\">", escape_html_entities(m_language));
|
||||
|
||||
|
@ -34,14 +34,14 @@ String CodeBlock::render_to_html(bool) const
|
|||
else
|
||||
builder.append(escape_html_entities(m_code));
|
||||
|
||||
builder.append("</code>");
|
||||
builder.append("</code>"sv);
|
||||
|
||||
if (m_style.length() >= 2)
|
||||
builder.append("</strong>");
|
||||
builder.append("</strong>"sv);
|
||||
else if (m_style.length() >= 2)
|
||||
builder.append("</em>");
|
||||
builder.append("</em>"sv);
|
||||
|
||||
builder.append("</pre>\n");
|
||||
builder.append("</pre>\n"sv);
|
||||
|
||||
return builder.build();
|
||||
}
|
||||
|
@ -51,9 +51,9 @@ String CodeBlock::render_for_terminal(size_t) const
|
|||
StringBuilder builder;
|
||||
|
||||
for (auto line : m_code.split('\n')) {
|
||||
builder.append(" ");
|
||||
builder.append(" "sv);
|
||||
builder.append(line);
|
||||
builder.append("\n");
|
||||
builder.append("\n"sv);
|
||||
}
|
||||
|
||||
return builder.build();
|
||||
|
|
|
@ -14,10 +14,10 @@ String CommentBlock::render_to_html(bool) const
|
|||
{
|
||||
StringBuilder builder;
|
||||
|
||||
builder.append("<!--");
|
||||
builder.append("<!--"sv);
|
||||
builder.append(escape_html_entities(m_comment));
|
||||
// TODO: This is probably incorrect, because we technically need to escape "--" in some form. However, Browser does not care about this.
|
||||
builder.append("-->\n");
|
||||
builder.append("-->\n"sv);
|
||||
|
||||
return builder.build();
|
||||
}
|
||||
|
|
|
@ -125,7 +125,7 @@ OwnPtr<ContainerBlock> ContainerBlock::parse(LineIterator& lines)
|
|||
}
|
||||
|
||||
if (!paragraph_text.is_empty())
|
||||
paragraph_text.append("\n");
|
||||
paragraph_text.append('\n');
|
||||
paragraph_text.append(*lines++);
|
||||
}
|
||||
|
||||
|
|
|
@ -16,19 +16,19 @@ String Document::render_to_html() const
|
|||
{
|
||||
StringBuilder builder;
|
||||
|
||||
builder.append("<!DOCTYPE html>\n");
|
||||
builder.append("<html>\n");
|
||||
builder.append("<head>\n");
|
||||
builder.append("<style>\n");
|
||||
builder.append("code { white-space: pre; }\n");
|
||||
builder.append("</style>\n");
|
||||
builder.append("</head>\n");
|
||||
builder.append("<body>\n");
|
||||
builder.append("<!DOCTYPE html>\n"sv);
|
||||
builder.append("<html>\n"sv);
|
||||
builder.append("<head>\n"sv);
|
||||
builder.append("<style>\n"sv);
|
||||
builder.append("code { white-space: pre; }\n"sv);
|
||||
builder.append("</style>\n"sv);
|
||||
builder.append("</head>\n"sv);
|
||||
builder.append("<body>\n"sv);
|
||||
|
||||
builder.append(render_to_inline_html());
|
||||
|
||||
builder.append("</body>\n");
|
||||
builder.append("</html>\n");
|
||||
builder.append("</body>\n"sv);
|
||||
builder.append("</html>\n"sv);
|
||||
return builder.build();
|
||||
}
|
||||
|
||||
|
|
|
@ -19,16 +19,16 @@ String Heading::render_for_terminal(size_t) const
|
|||
{
|
||||
StringBuilder builder;
|
||||
|
||||
builder.append("\033[0;31;1m\n");
|
||||
builder.append("\033[0;31;1m\n"sv);
|
||||
switch (m_level) {
|
||||
case 1:
|
||||
case 2:
|
||||
builder.append(m_text.render_for_terminal().to_uppercase());
|
||||
builder.append("\033[0m\n");
|
||||
builder.append("\033[0m\n"sv);
|
||||
break;
|
||||
default:
|
||||
builder.append(m_text.render_for_terminal());
|
||||
builder.append("\033[0m\n");
|
||||
builder.append("\033[0m\n"sv);
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@ String HorizontalRule::render_for_terminal(size_t view_width) const
|
|||
StringBuilder builder(view_width + 1);
|
||||
for (size_t i = 0; i < view_width; ++i)
|
||||
builder.append('-');
|
||||
builder.append("\n\n");
|
||||
builder.append("\n\n"sv);
|
||||
return builder.to_string();
|
||||
}
|
||||
|
||||
|
|
|
@ -22,14 +22,14 @@ String List::render_to_html(bool) const
|
|||
if (m_start_number != 1)
|
||||
builder.appendff(" start=\"{}\"", m_start_number);
|
||||
|
||||
builder.append(">\n");
|
||||
builder.append(">\n"sv);
|
||||
|
||||
for (auto& item : m_items) {
|
||||
builder.append("<li>");
|
||||
builder.append("<li>"sv);
|
||||
if (!m_is_tight || (item->blocks().size() != 0 && !dynamic_cast<Paragraph const*>(&(item->blocks()[0]))))
|
||||
builder.append("\n");
|
||||
builder.append(item->render_to_html(m_is_tight));
|
||||
builder.append("</li>\n");
|
||||
builder.append("</li>\n"sv);
|
||||
}
|
||||
|
||||
builder.appendff("</{}>\n", tag);
|
||||
|
@ -43,7 +43,7 @@ String List::render_for_terminal(size_t) const
|
|||
|
||||
int i = 0;
|
||||
for (auto& item : m_items) {
|
||||
builder.append(" ");
|
||||
builder.append(" "sv);
|
||||
if (m_is_ordered)
|
||||
builder.appendff("{}.", ++i);
|
||||
else
|
||||
|
|
|
@ -15,12 +15,12 @@ String Paragraph::render_to_html(bool tight) const
|
|||
StringBuilder builder;
|
||||
|
||||
if (!tight)
|
||||
builder.append("<p>");
|
||||
builder.append("<p>"sv);
|
||||
|
||||
builder.append(m_text.render_to_html());
|
||||
|
||||
if (!tight)
|
||||
builder.append("</p>");
|
||||
builder.append("</p>"sv);
|
||||
|
||||
builder.append('\n');
|
||||
|
||||
|
@ -30,9 +30,9 @@ String Paragraph::render_to_html(bool tight) const
|
|||
String Paragraph::render_for_terminal(size_t) const
|
||||
{
|
||||
StringBuilder builder;
|
||||
builder.append(" ");
|
||||
builder.append(" "sv);
|
||||
builder.append(m_text.render_for_terminal());
|
||||
builder.append("\n\n");
|
||||
builder.append("\n\n"sv);
|
||||
return builder.build();
|
||||
}
|
||||
|
||||
|
|
|
@ -84,29 +84,29 @@ String Table::render_to_html(bool) const
|
|||
|
||||
StringBuilder builder;
|
||||
|
||||
builder.append("<table>");
|
||||
builder.append("<thead>");
|
||||
builder.append("<tr>");
|
||||
builder.append("<table>"sv);
|
||||
builder.append("<thead>"sv);
|
||||
builder.append("<tr>"sv);
|
||||
for (auto& column : m_columns) {
|
||||
builder.appendff("<th style='text-align: {}'>", alignment_string(column.alignment));
|
||||
builder.append(column.header.render_to_html());
|
||||
builder.append("</th>");
|
||||
builder.append("</th>"sv);
|
||||
}
|
||||
builder.append("</tr>");
|
||||
builder.append("</thead>");
|
||||
builder.append("<tbody>");
|
||||
builder.append("</tr>"sv);
|
||||
builder.append("</thead>"sv);
|
||||
builder.append("<tbody>"sv);
|
||||
for (size_t i = 0; i < m_row_count; ++i) {
|
||||
builder.append("<tr>");
|
||||
builder.append("<tr>"sv);
|
||||
for (auto& column : m_columns) {
|
||||
VERIFY(i < column.rows.size());
|
||||
builder.appendff("<td style='text-align: {}'>", alignment_string(column.alignment));
|
||||
builder.append(column.rows[i].render_to_html());
|
||||
builder.append("</td>");
|
||||
builder.append("</td>"sv);
|
||||
}
|
||||
builder.append("</tr>");
|
||||
builder.append("</tr>"sv);
|
||||
}
|
||||
builder.append("</tbody>");
|
||||
builder.append("</table>");
|
||||
builder.append("</tbody>"sv);
|
||||
builder.append("</table>"sv);
|
||||
|
||||
return builder.to_string();
|
||||
}
|
||||
|
@ -224,7 +224,7 @@ OwnPtr<Table> Table::parse(LineIterator& lines)
|
|||
if (i >= segments.size()) {
|
||||
// Ran out of segments, but still have headers.
|
||||
// Just make an empty cell.
|
||||
table->m_columns[i].rows.append(Text::parse(""));
|
||||
table->m_columns[i].rows.append(Text::parse(""sv));
|
||||
} else {
|
||||
auto text = Text::parse(segments[i]);
|
||||
table->m_columns[i].rows.append(move(text));
|
||||
|
|
|
@ -17,21 +17,21 @@ namespace Markdown {
|
|||
|
||||
void Text::EmphasisNode::render_to_html(StringBuilder& builder) const
|
||||
{
|
||||
builder.append((strong) ? "<strong>" : "<em>");
|
||||
builder.append((strong) ? "<strong>"sv : "<em>"sv);
|
||||
child->render_to_html(builder);
|
||||
builder.append((strong) ? "</strong>" : "</em>");
|
||||
builder.append((strong) ? "</strong>"sv : "</em>"sv);
|
||||
}
|
||||
|
||||
void Text::EmphasisNode::render_for_terminal(StringBuilder& builder) const
|
||||
{
|
||||
if (strong) {
|
||||
builder.append("\e[1m");
|
||||
builder.append("\e[1m"sv);
|
||||
child->render_for_terminal(builder);
|
||||
builder.append("\e[22m");
|
||||
builder.append("\e[22m"sv);
|
||||
} else {
|
||||
builder.append("\e[3m");
|
||||
builder.append("\e[3m"sv);
|
||||
child->render_for_terminal(builder);
|
||||
builder.append("\e[23m");
|
||||
builder.append("\e[23m"sv);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -51,16 +51,16 @@ RecursionDecision Text::EmphasisNode::walk(Visitor& visitor) const
|
|||
|
||||
void Text::CodeNode::render_to_html(StringBuilder& builder) const
|
||||
{
|
||||
builder.append("<code>");
|
||||
builder.append("<code>"sv);
|
||||
code->render_to_html(builder);
|
||||
builder.append("</code>");
|
||||
builder.append("</code>"sv);
|
||||
}
|
||||
|
||||
void Text::CodeNode::render_for_terminal(StringBuilder& builder) const
|
||||
{
|
||||
builder.append("\e[1m");
|
||||
builder.append("\e[1m"sv);
|
||||
code->render_for_terminal(builder);
|
||||
builder.append("\e[22m");
|
||||
builder.append("\e[22m"sv);
|
||||
}
|
||||
|
||||
size_t Text::CodeNode::terminal_length() const
|
||||
|
@ -79,7 +79,7 @@ RecursionDecision Text::CodeNode::walk(Visitor& visitor) const
|
|||
|
||||
void Text::BreakNode::render_to_html(StringBuilder& builder) const
|
||||
{
|
||||
builder.append("<br />");
|
||||
builder.append("<br />"sv);
|
||||
}
|
||||
|
||||
void Text::BreakNode::render_for_terminal(StringBuilder&) const
|
||||
|
@ -138,34 +138,34 @@ RecursionDecision Text::TextNode::walk(Visitor& visitor) const
|
|||
void Text::LinkNode::render_to_html(StringBuilder& builder) const
|
||||
{
|
||||
if (is_image) {
|
||||
builder.append("<img src=\"");
|
||||
builder.append("<img src=\""sv);
|
||||
builder.append(escape_html_entities(href));
|
||||
builder.append("\" alt=\"");
|
||||
builder.append("\" alt=\""sv);
|
||||
text->render_to_html(builder);
|
||||
builder.append("\" >");
|
||||
builder.append("\" >"sv);
|
||||
} else {
|
||||
builder.append("<a href=\"");
|
||||
builder.append("<a href=\""sv);
|
||||
builder.append(escape_html_entities(href));
|
||||
builder.append("\">");
|
||||
builder.append("\">"sv);
|
||||
text->render_to_html(builder);
|
||||
builder.append("</a>");
|
||||
builder.append("</a>"sv);
|
||||
}
|
||||
}
|
||||
|
||||
void Text::LinkNode::render_for_terminal(StringBuilder& builder) const
|
||||
{
|
||||
bool is_linked = href.contains("://");
|
||||
bool is_linked = href.contains("://"sv);
|
||||
if (is_linked) {
|
||||
builder.append("\033[0;34m\e]8;;");
|
||||
builder.append("\033[0;34m\e]8;;"sv);
|
||||
builder.append(href);
|
||||
builder.append("\e\\");
|
||||
builder.append("\e\\"sv);
|
||||
}
|
||||
|
||||
text->render_for_terminal(builder);
|
||||
|
||||
if (is_linked) {
|
||||
builder.appendff(" <{}>", href);
|
||||
builder.append("\033]8;;\033\\\033[0m");
|
||||
builder.append("\033]8;;\033\\\033[0m"sv);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -225,16 +225,16 @@ RecursionDecision Text::MultiNode::walk(Visitor& visitor) const
|
|||
|
||||
void Text::StrikeThroughNode::render_to_html(StringBuilder& builder) const
|
||||
{
|
||||
builder.append("<del>");
|
||||
builder.append("<del>"sv);
|
||||
striked_text->render_to_html(builder);
|
||||
builder.append("</del>");
|
||||
builder.append("</del>"sv);
|
||||
}
|
||||
|
||||
void Text::StrikeThroughNode::render_for_terminal(StringBuilder& builder) const
|
||||
{
|
||||
builder.append("\e[9m");
|
||||
builder.append("\e[9m"sv);
|
||||
striked_text->render_for_terminal(builder);
|
||||
builder.append("\e[29m");
|
||||
builder.append("\e[29m"sv);
|
||||
}
|
||||
|
||||
size_t Text::StrikeThroughNode::terminal_length() const
|
||||
|
@ -260,14 +260,14 @@ String Text::render_to_html() const
|
|||
{
|
||||
StringBuilder builder;
|
||||
m_node->render_to_html(builder);
|
||||
return builder.build().trim(" \n\t");
|
||||
return builder.build().trim(" \n\t"sv);
|
||||
}
|
||||
|
||||
String Text::render_for_terminal() const
|
||||
{
|
||||
StringBuilder builder;
|
||||
m_node->render_for_terminal(builder);
|
||||
return builder.build().trim(" \n\t");
|
||||
return builder.build().trim(" \n\t"sv);
|
||||
}
|
||||
|
||||
RecursionDecision Text::walk(Visitor& visitor) const
|
||||
|
@ -380,16 +380,16 @@ Vector<Text::Token> Text::tokenize(StringView str)
|
|||
in_space = true;
|
||||
}
|
||||
current_token.append(ch);
|
||||
} else if (has("\n")) {
|
||||
expect("\n");
|
||||
} else if (has("[")) {
|
||||
expect("[");
|
||||
} else if (has(") {
|
||||
expect("](");
|
||||
} else if (has(")")) {
|
||||
expect(")");
|
||||
} else if (has("\n"sv)) {
|
||||
expect("\n"sv);
|
||||
} else if (has("["sv)) {
|
||||
expect("["sv);
|
||||
} else if (has(") {
|
||||
expect("]("sv);
|
||||
} else if (has(")"sv)) {
|
||||
expect(")"sv);
|
||||
} else {
|
||||
current_token.append(ch);
|
||||
}
|
||||
|
@ -405,7 +405,7 @@ NonnullOwnPtr<Text::MultiNode> Text::parse_sequence(Vector<Token>::ConstIterator
|
|||
for (; !tokens.is_end(); ++tokens) {
|
||||
if (tokens->is_space()) {
|
||||
node->children.append(parse_break(tokens));
|
||||
} else if (*tokens == "\n") {
|
||||
} else if (*tokens == "\n"sv) {
|
||||
node->children.append(parse_newline(tokens));
|
||||
} else if (tokens->is_run) {
|
||||
switch (tokens->run_char()) {
|
||||
|
@ -420,15 +420,15 @@ NonnullOwnPtr<Text::MultiNode> Text::parse_sequence(Vector<Token>::ConstIterator
|
|||
node->children.append(parse_strike_through(tokens));
|
||||
break;
|
||||
}
|
||||
} else if (*tokens == "[" || *tokens == " {
|
||||
} else if (in_link && *tokens == "]("sv) {
|
||||
return node;
|
||||
} else {
|
||||
node->children.append(make<TextNode>(tokens->data));
|
||||
}
|
||||
|
||||
if (in_link && !tokens.is_end() && *tokens == "](")
|
||||
if (in_link && !tokens.is_end() && *tokens == "]("sv)
|
||||
return node;
|
||||
|
||||
if (tokens.is_end())
|
||||
|
@ -440,7 +440,7 @@ NonnullOwnPtr<Text::MultiNode> Text::parse_sequence(Vector<Token>::ConstIterator
|
|||
NonnullOwnPtr<Text::Node> Text::parse_break(Vector<Token>::ConstIterator& tokens)
|
||||
{
|
||||
auto next_tok = tokens + 1;
|
||||
if (next_tok.is_end() || *next_tok != "\n")
|
||||
if (next_tok.is_end() || *next_tok != "\n"sv)
|
||||
return make<TextNode>(tokens->data);
|
||||
|
||||
if (tokens->data.length() >= 2)
|
||||
|
@ -488,7 +488,7 @@ NonnullOwnPtr<Text::Node> Text::parse_emph(Vector<Token>::ConstIterator& tokens,
|
|||
for (++tokens; !tokens.is_end(); ++tokens) {
|
||||
if (tokens->is_space()) {
|
||||
child->children.append(parse_break(tokens));
|
||||
} else if (*tokens == "\n") {
|
||||
} else if (*tokens == "\n"sv) {
|
||||
child->children.append(parse_newline(tokens));
|
||||
} else if (tokens->is_run) {
|
||||
if (can_close_for(opening, *tokens)) {
|
||||
|
@ -507,16 +507,16 @@ NonnullOwnPtr<Text::Node> Text::parse_emph(Vector<Token>::ConstIterator& tokens,
|
|||
child->children.append(parse_strike_through(tokens));
|
||||
break;
|
||||
}
|
||||
} else if (*tokens == "[" || *tokens == " {
|
||||
} else if (in_link && *tokens == "]("sv) {
|
||||
child->children.prepend(make<TextNode>(opening.data));
|
||||
return child;
|
||||
} else {
|
||||
child->children.append(make<TextNode>(tokens->data));
|
||||
}
|
||||
|
||||
if (in_link && !tokens.is_end() && *tokens == "](") {
|
||||
if (in_link && !tokens.is_end() && *tokens == "]("sv) {
|
||||
child->children.prepend(make<TextNode>(opening.data));
|
||||
return child;
|
||||
}
|
||||
|
@ -556,7 +556,7 @@ NonnullOwnPtr<Text::Node> Text::parse_code(Vector<Token>::ConstIterator& tokens)
|
|||
}
|
||||
|
||||
is_all_whitespace = is_all_whitespace && iterator->data.is_whitespace();
|
||||
code->children.append(make<TextNode>((*iterator == "\n") ? " " : iterator->data, false));
|
||||
code->children.append(make<TextNode>((*iterator == "\n"sv) ? " " : iterator->data, false));
|
||||
}
|
||||
|
||||
return make<TextNode>(opening.data);
|
||||
|
@ -565,20 +565,20 @@ NonnullOwnPtr<Text::Node> Text::parse_code(Vector<Token>::ConstIterator& tokens)
|
|||
NonnullOwnPtr<Text::Node> Text::parse_link(Vector<Token>::ConstIterator& tokens)
|
||||
{
|
||||
auto opening = *tokens++;
|
||||
bool is_image = opening == " {
|
||||
if (tokens.is_end() || *tokens != "]("sv) {
|
||||
link_text->children.prepend(make<TextNode>(opening.data));
|
||||
return link_text;
|
||||
}
|
||||
auto separator = *tokens;
|
||||
VERIFY(separator == "](");
|
||||
VERIFY(separator == "]("sv);
|
||||
|
||||
StringBuilder address;
|
||||
for (auto iterator = tokens + 1; !iterator.is_end(); ++iterator) {
|
||||
if (*iterator == ")") {
|
||||
if (*iterator == ")"sv) {
|
||||
tokens = iterator;
|
||||
return make<LinkNode>(is_image, move(link_text), address.build());
|
||||
}
|
||||
|
@ -618,7 +618,7 @@ NonnullOwnPtr<Text::Node> Text::parse_strike_through(Vector<Token>::ConstIterato
|
|||
}
|
||||
|
||||
is_all_whitespace = is_all_whitespace && iterator->data.is_whitespace();
|
||||
striked_text->children.append(make<TextNode>((*iterator == "\n") ? " " : iterator->data, false));
|
||||
striked_text->children.append(make<TextNode>((*iterator == "\n"sv) ? " " : iterator->data, false));
|
||||
}
|
||||
|
||||
return make<TextNode>(opening.data);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue