Skip to main content
Glama
utils.py2.41 kB
""" Flutter 代码生成工具函数 复用 android_codegen 的工具函数,但适配 Dart 命名规范 """ import sys from pathlib import Path # 导入 android_codegen 的工具函数 sys.path.insert(0, str(Path(__file__).parent.parent)) from android_codegen.utils import ( translate_chinese_to_english, to_pascal_case, to_camel_case, extract_name_from_url, url_path_to_method_name, url_path_to_class_name, ) # Dart 关键字列表 DART_KEYWORDS = { "abstract", "as", "assert", "async", "await", "break", "case", "catch", "class", "const", "continue", "covariant", "default", "deferred", "do", "dynamic", "else", "enum", "export", "extends", "extension", "external", "factory", "false", "final", "finally", "for", "Function", "get", "hide", "if", "implements", "import", "in", "interface", "is", "late", "library", "mixin", "new", "null", "on", "operator", "part", "required", "rethrow", "return", "set", "show", "static", "super", "switch", "sync", "this", "throw", "true", "try", "typedef", "var", "void", "while", "with", "yield" } def sanitize_class_name(name: str) -> str: """清理类名,确保符合 Dart 规范""" # 转换为帕斯卡命名 name = to_pascal_case(name) if name.lower() in DART_KEYWORDS: name = name + "Type" # 确保以字母开头 if name and not name[0].isalpha(): name = "A" + name return name def sanitize_method_name(name: str) -> str: """清理方法名,确保符合 Dart 规范""" name = to_camel_case(name) if name.lower() in DART_KEYWORDS: name = name + "Method" # 确保以字母开头 if name and not name[0].isalpha(): name = "a" + name return name def sanitize_field_name(name: str) -> str: """清理字段名,确保符合 Dart 规范""" # 转换为驼峰命名 name = to_camel_case(name) if name.lower() in DART_KEYWORDS: name = name + "Field" # 确保以字母开头 if name and not name[0].isalpha(): name = "a" + name return name __all__ = [ "translate_chinese_to_english", "to_pascal_case", "to_camel_case", "extract_name_from_url", "url_path_to_method_name", "url_path_to_class_name", "sanitize_class_name", "sanitize_method_name", "sanitize_field_name", "DART_KEYWORDS", ]

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/yfcyfc123234/showdoc_mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server