visitInstanceCreationExpression method

  1. @override
void visitInstanceCreationExpression(
  1. InstanceCreationExpression node
)
override

Implementation

@override
void visitInstanceCreationExpression(InstanceCreationExpression node) {
  final typeName = node.constructorName.type.name2.lexeme;

  // Check for interactive widgets
  if (['ElevatedButton', 'TextButton', 'OutlinedButton', 'IconButton', 'GestureDetector', 'InkWell', 'TextField', 'TextFormField', 'Form'].contains(typeName)) {
    elements.add(UiElement(type: typeName));
  }

  // Check for Text widgets (useful context for find.text)
  if (typeName == 'Text') {
    final arguments = node.argumentList.arguments;
    if (arguments.isNotEmpty) {
      final firstArg = arguments.first;
      if (firstArg is StringLiteral) {
        elements.add(UiElement(type: 'Text', label: firstArg.stringValue));
      }
    }
  }

  super.visitInstanceCreationExpression(node);
}