anchor.diff:      varTypeList.removeLast();
   
       // [int]
  -    // [List<Map<String,, dynamic>>]
  +    // [List<Map<String, dynamic>>]
       return varTypeList.join(' ');
  -  }
  -
  -  String _parseArgs(String input) {
  -    // everything in the parentheses
  -    return input.contains('(') && input.contains(')')
  -        ? input.split('(')[1].split(')')[0]
  -        : '';
  -  }
  -
  -  String _parseFunctionReturnType(String input) {
  -    // assume following dart lint suggestion of always declaring return type
  -    return input.split(' ')[0];
  -  }
  -
  -  String _parseMethodReturnType(String input) {
  -    var returnType = input
  -        .split(' ')
  -        .where((s) => s != '@override' && s != 'static')
  -        .join(' ')
  -        .split(' ')[0];
  -    // return blank if no return type specified
  -    return returnType.contains('(') ? '' : returnType;
     }
   
     void generate() {
  
positive.code:               name,
                path.relative(file.path, from: root),
                '/${constructor.matchAsPrefix(member.toSource())[0]}/;"',
                'C',
                options['line-numbers'] as bool
                    ? 'line:${unit.lineInfo.getLocation(offset).lineNumber}'
                    : '',
                'class:${declaration.name}',
                'signature:(${_parseArgs(member.toSource())})',
              ]);
            } else if (member is FieldDeclaration) {
              member.fields.variables.forEach((variable) {
  
negative.code: 
    Ctags(this.options);
  
    String _parseFieldType(String input) {
      // const int test = 1;
      // final List<Map<String, dynamic>> list = [{'a': 1}];
      var leftHandSide = input.split('=')[0];
  