-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathast.dart
51 lines (39 loc) · 1.59 KB
/
ast.dart
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import 'dart:io';
import 'package:analyzer/dart/analysis/results.dart';
import 'package:analyzer/dart/analysis/utilities.dart';
import 'package:analyzer/dart/ast/ast.dart';
import 'package:analyzer/dart/ast/visitor.dart';
import 'lib/visitors/basic_visitor.dart';
import 'lib/visitors/material_app_visitor.dart';
import 'lib/visitors/scaffold_visitor.dart';
void main() {
File main = File('lib/router.dart');
if (main.existsSync()) {
String content = main.readAsStringSync();
ParseStringResult unit = parseString(content: content);
BasicVisitor basicVisitor = BasicVisitor();
ScaffoldVisitor scaffoldVisitor = ScaffoldVisitor();
MaterialAppVisitor visitor = MaterialAppVisitor();
print('AST: ${unit.unit}');
unit.unit.visitChildren(basicVisitor);
// print('ScaffoldVisitor.widgetStartIndex: ${scaffoldVisitor.widgetStartIndex}');
// print('ScaffoldVisitor.widgetEndIndex: ${scaffoldVisitor.widgetEndIndex}');
// print('ScaffoldVisitor.scaffoldLabelEndIndex: ${scaffoldVisitor.scaffoldLabelEndIndex}');
/* print('visitor.startIndex: ${visitor.startIndex}');
print('visitor.endIndex: ${visitor.endIndex}');
String foundContent = content.substring(
visitor.startIndex!,
visitor.endIndex!,
);
content = insertStringAtPosition(
content,
'test',
visitor.materialAppEndIndex! + 1,
);
print('Found Content: $foundContent');
print('Content: $content'); */
}
}
String insertStringAtPosition(String original, String insert, int index) {
return original.substring(0, index) + insert + original.substring(index);
}