Chromium Code Reviews| Index: third_party/WebKit/Source/build/scripts/name_utilities.py |
| diff --git a/third_party/WebKit/Source/build/scripts/name_utilities.py b/third_party/WebKit/Source/build/scripts/name_utilities.py |
| index c5fdcaac722a1d39ccd16bebda72ad845442deeb..0633250d1b0eb268915bff207570d7ab46da7b17 100644 |
| --- a/third_party/WebKit/Source/build/scripts/name_utilities.py |
| +++ b/third_party/WebKit/Source/build/scripts/name_utilities.py |
| @@ -69,6 +69,13 @@ def upper_first(name): |
| return upper_first_letter(name) |
| +def lower_first_letter(name): |
| + """Return name with first letter lowercased.""" |
| + if not name: |
| + return '' |
| + return name[0].lower() + name[1:] |
| + |
| + |
| def upper_first_letter(name): |
| """Return name with first letter uppercased.""" |
| if not name: |
| @@ -76,14 +83,6 @@ def upper_first_letter(name): |
| return name[0].upper() + name[1:] |
| -def camel_case(css_name): |
| - """Convert hyphen-separated-name to UpperCamelCase. |
| - |
| - E.g., '-foo-bar' becomes 'FooBar'. |
| - """ |
| - return ''.join(upper_first_letter(word) for word in css_name.split('-')) |
| - |
| - |
| def to_macro_style(name): |
| s1 = re.sub('(.)([A-Z][a-z]+)', r'\1_\2', name) |
| return re.sub('([a-z0-9])([A-Z])', r'\1_\2', s1).upper() |
| @@ -108,12 +107,48 @@ def cpp_name(entry): |
| def enum_for_css_keyword(keyword): |
| - return 'CSSValue' + ''.join(camel_case(keyword)) |
| + return 'CSSValue' + upper_camel_case(keyword) |
| def enum_for_css_property(property_name): |
| - return 'CSSProperty' + ''.join(camel_case(property_name)) |
| + return 'CSSProperty' + upper_camel_case(property_name) |
| def enum_for_css_property_alias(property_name): |
| - return 'CSSPropertyAlias' + camel_case(property_name) |
| + return 'CSSPropertyAlias' + upper_camel_case(property_name) |
| + |
| +# TODO(shend): Merge these with the above methods. |
| +# and update all the generators to use these ones. |
| + |
| +# Low level API |
| + |
| + |
| +def split_name(name): |
| + """Splits a name in some format to a list of words""" |
| + return re.findall(r'(?:[A-Z][a-z]*)|[a-z]+|(?:\d+[a-z]*)', upper_first_letter(name)) |
| + |
| + |
| +def upper_camel_case(name): |
| + return ''.join(upper_first_letter(word) for word in split_name(name)) |
| + |
| + |
| +def lower_camel_case(name): |
| + return lower_first_letter(upper_camel_case(name)) |
| + |
| +# High level API |
|
alancutter (OOO until 2018)
2017/03/20 05:10:16
Not sure if these comment headers really add much.
shend
2017/03/20 21:26:12
Fixed.
|
| + |
| + |
| +def enumeration_name(name): |
|
alancutter (OOO until 2018)
2017/03/20 05:10:16
Should this be property_name?
shend
2017/03/20 21:26:12
I'm trying to keep this generic for any type of co
|
| + return upper_camel_case(name) |
| + |
| + |
| +def enumerator_name(name): |
|
alancutter (OOO until 2018)
2017/03/20 05:10:16
enumeration and enumerator are a bit academic as t
shend
2017/03/20 21:26:12
Good idea. Done.
|
| + return 'k' + upper_camel_case(name) |
| + |
| + |
| +def class_member_name(name): |
| + return 'm_' + lower_camel_case(name) |
| + |
| + |
| +def method_name(name): |
| + return lower_camel_case(name) |