This commit is contained in:
2026-10-21 16:20:51 +07:00
parent d0ad1a6f57
commit d7160e196e
46 changed files with 2307 additions and 1534 deletions
+63
View File
@@ -0,0 +1,63 @@
#!/usr/bin/env python3
'''One-shot sweep: replace custom ui helpers with gpui-kit tokens.'''
import pathlib
CRATES = pathlib.Path('crates')
REPLACEMENTS = [
# Text ladder -> gpui text classes (Caption2 before Caption)
('.text_style(TextStyle::Headline)', '.text_sm().font_semibold()'),
('.text_style(TextStyle::Body)', '.text_sm()'),
('.text_style(TextStyle::Caption2)', '.text_xs().font_medium()'),
('.text_style(TextStyle::Caption)', '.text_xs()'),
('.text_style(TextStyle::Callout)', '.text_xs()'),
('.text_style(TextStyle::Subheadline)', '.text_xs()'),
# Radius ladder -> theme tokens
('px(ui::bubble_radius())', 'cx.theme().radius_lg'),
('px(ui::surface_radius())', 'cx.theme().radius_lg'),
('px(ui::panel_radius())', 'cx.theme().radius_lg'),
('px(ui::control_radius())', 'cx.theme().radius'),
('px(ui::button_radius())', 'cx.theme().radius'),
('px(bubble_radius())', 'cx.theme().radius_lg'),
('px(surface_radius())', 'cx.theme().radius_lg'),
('px(panel_radius())', 'cx.theme().radius_lg'),
('px(control_radius())', 'cx.theme().radius'),
('px(button_radius())', 'cx.theme().radius'),
# Spacing -> Tailwind gap
('gap(px(ui::SPACE))', 'gap_2()'),
# Custom divider -> kit Separator
('divider(cx)', 'Separator::horizontal()'),
# Avatar import swap
('use gpui_kit::component::avatar::Avatar;', 'use ui::Avatar;'),
# Import lines that are now unused (whole line, with newline)
('use ui::{TextStyle, Typeset as _, bubble_radius, control_radius};\n', ''),
('use ui::{TextStyle, Typeset as _, button_radius, control_radius};\n', ''),
('use ui::{TextStyle, Typeset as _, button_radius, panel_radius};\n', ''),
('use ui::{TextStyle, Typeset as _, control_radius};\n', ''),
('use ui::{TextStyle, Typeset as _, button_radius};\n', ''),
('use ui::{TextStyle, Typeset as _, surface_radius};\n', ''),
('use ui::{TextStyle, Typeset as _};\n', ''),
('use ui::divider;\n', ''),
('use ui::button_radius;\n', ''),
]
def main() -> None:
changed = []
for path in CRATES.rglob('*.rs'):
if str(path).startswith('crates/ui/'):
continue
text = path.read_text()
original = text
for old, new in REPLACEMENTS:
text = text.replace(old, new)
if text != original:
path.write_text(text)
changed.append(str(path))
print('\n'.join(changed))
print(f'{len(changed)} files changed')
if __name__ == '__main__':
main()