mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-07-29 20:29:18 +00:00
CodeGenerators: Move some utilities out of GenerateCSSStyleProperties
These will be used by a similar generator for CSS at-rule descriptors. For `get_snake_case_function_name_for_css_property_name()`, I've rolled its behaviour into `snake_casify()` with an optional ability to trim leading underscores.
This commit is contained in:
parent
2b67cb5f98
commit
fbdabace8e
Notes:
github-actions[bot]
2025-03-27 11:54:06 +00:00
Author: https://github.com/AtkinsSJ
Commit: fbdabace8e
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/4106
2 changed files with 29 additions and 27 deletions
|
@ -1,6 +1,7 @@
|
|||
/*
|
||||
* Copyright (c) 2019-2021, Andreas Kling <andreas@ladybird.org>
|
||||
* Copyright (c) 2022-2023, Sam Atkins <atkinssj@serenityos.org>
|
||||
* Copyright (c) 2022-2025, Sam Atkins <sam@ladybird.org>
|
||||
* Copyright (c) 2024, Luke Wilde <luke@ladybird.org>
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
*/
|
||||
|
@ -49,11 +50,33 @@ inline String camel_casify(StringView dashy_name)
|
|||
return MUST(builder.to_string());
|
||||
}
|
||||
|
||||
inline String snake_casify(StringView dashy_name)
|
||||
enum class TrimLeadingUnderscores : u8 {
|
||||
No,
|
||||
Yes,
|
||||
};
|
||||
inline String snake_casify(StringView dashy_name, TrimLeadingUnderscores trim_leading_underscores = TrimLeadingUnderscores::No)
|
||||
{
|
||||
// FIXME: We don't really need to convert dashy_name to a String first, but currently
|
||||
// all the `replace` functions that take a StringView return ByteString.
|
||||
return MUST(MUST(String::from_utf8(dashy_name)).replace("-"sv, "_"sv, ReplaceMode::All));
|
||||
auto snake_case = MUST(MUST(String::from_utf8(dashy_name)).replace("-"sv, "_"sv, ReplaceMode::All));
|
||||
|
||||
if (trim_leading_underscores == TrimLeadingUnderscores::Yes && snake_case.starts_with('_')) {
|
||||
return MUST(snake_case.trim("_"sv, TrimMode::Left));
|
||||
}
|
||||
|
||||
return snake_case;
|
||||
}
|
||||
|
||||
inline String make_name_acceptable_cpp(String const& name)
|
||||
{
|
||||
if (name.is_one_of("float")) {
|
||||
StringBuilder builder;
|
||||
builder.append(name);
|
||||
builder.append('_');
|
||||
return MUST(builder.to_string());
|
||||
}
|
||||
|
||||
return name;
|
||||
}
|
||||
|
||||
inline ErrorOr<JsonValue> read_entire_file_as_json(StringView filename)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue