import 'package:file_picker/file_picker.dart'; import 'package:fluent_ui/fluent_ui.dart'; import 'package:flutter_hooks/flutter_hooks.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:re_editor/re_editor.dart'; import 'package:re_highlight/languages/xml.dart'; import 'package:re_highlight/styles/vs2015.dart'; import 'package:starcitizen_doctor/data/dcb_data.dart'; import 'package:starcitizen_doctor/provider/dcb_viewer.dart'; import 'package:starcitizen_doctor/widgets/widgets.dart'; import 'package:super_sliver_list/super_sliver_list.dart'; /// XML 代码折叠分析器 /// 分析 XML 标签的开始和结束,用于代码折叠功能 class XmlCodeChunkAnalyzer implements CodeChunkAnalyzer { const XmlCodeChunkAnalyzer(); @override List run(CodeLines codeLines) { final List chunks = []; final List<_XmlTagInfo> tagStack = []; for (int i = 0; i < codeLines.length; i++) { final String line = codeLines[i].text; _processLine(line, i, tagStack, chunks); } return chunks; } void _processLine(String line, int lineIndex, List<_XmlTagInfo> tagStack, List chunks) { final trimmedLine = line.trim(); // 跳过空行、注释和 XML 声明 if (trimmedLine.isEmpty || trimmedLine.startsWith('