codeNodes method

  1. @override
List<CodeNode> codeNodes(
  1. Context context
)
override

Implementation

@override
List<CodeNode> codeNodes(Context context) {
  List<CodeNode> nodes = [];
  var _requiredParameters = parameters
      .where((p) => p.category == ParameterCategory.required)
      .toList();
  var _optionalParameters = parameters
      .where((p) => p.category == ParameterCategory.optional)
      .toList();
  var _namedParameters =
      parameters.where((p) => p.category == ParameterCategory.named).toList();

  nodes.add(SeparatedValues.forParameters(_requiredParameters));

  if (_requiredParameters.isNotEmpty &&
      (_optionalParameters.isNotEmpty || _namedParameters.isNotEmpty)) {
    nodes.add(Code(', '));
  }

  if (_optionalParameters.isNotEmpty) {
    nodes.add(Code('['));
    nodes.add(SeparatedValues.forParameters(_optionalParameters));
    nodes.add(Code(']'));
  } else if (_namedParameters.isNotEmpty) {
    nodes.add(Code('{'));
    nodes.add(SeparatedValues.forParameters(_namedParameters));
    nodes.add(Code('}'));
  }

  return nodes;
}