You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编程将Dart代码片段格式化为多行字符串形式输出

Dart 代码转目标字符串格式解决方案

分两种常见场景处理:

场景1:批量处理.dart源码文件(离线处理文本)

直接用正则匹配提取需要的部分再格式化即可,Dart端实现示例:

import 'dart:io';

void main() {
  // 读取目标.dart文件内容
  final sourceCode = File('input.dart').readAsStringSync();
  // 匹配Widget code = xxx;的完整结构,捕获Scaffold部分
  final regex = RegExp(
    r'^\s*Widget\s+code\s*=\s*([\s\S]*?);\s*$',
    multiLine: true,
  );
  final matched = regex.firstMatch(sourceCode);
  if (matched != null) {
    final widgetSource = matched.group(1)!;
    // 拼接三引号,调整缩进得到目标格式
    final output = '    """$widgetSource;"""';
    // 输出或者写入新文件
    print(output);
  }
}

运行后即可直接输出你需要的带三引号的字符串格式。

场景2:运行时把Widget实例转为对应代码字符串

Dart本身没有内置对象转源代码的能力,且Flutter禁用了dart:mirrors反射能力,可选方案如下:

  • 用官方的code_builder包:构建Widget时同步生成对应的AST结构,后续直接导出为源代码字符串
  • 若仅处理自定义Widget:可以重写Widget的toString方法,直接返回你需要的代码格式

临时处理单段代码

直接用IDE多光标功能:选中开头的Widget code = 删除,再在首尾添加三引号即可,VS Code、Android Studio等主流IDE都支持该操作。

内容的提问来源于stack exchange,提问作者jakub

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 11:09:00