class SignatureParser extends AbstractParser<SignatureAST> {
	@Override
	public SignatureAST visit(int lineNo, String line) throws ASTParseException {
		try {
			String[] trim = line.trim().split("\\s+");
			if (trim.length < 2)
				throw new ASTParseException(lineNo, "Not enough parameters");
			String sig = trim[1];
			// TODO: Verify signature?
			//  - Technically you can put in garbage data in here...
			// Create AST
			int start = line.indexOf(sig);
			return new SignatureAST(lineNo, getOffset() + start, sig);
		} catch(Exception ex) {
			throw new ASTParseException(ex, lineNo, "Bad format for descriptor");
		}
	}

	@Override
	public List<String> suggest(ParseResult<RootAST> lastParse, String text) {<FILL_FUNCTION_BODY>}
}

		if(text.contains("("))
			return Collections.emptyList();
		// Suggest field types
		return AutoCompleteUtil.descriptorName(text.trim());
	
<methods>public void <init>() ,public void <init>(AbstractParser#RAW) ,public int getOffset() ,public void setOffset(int) ,public List<java.lang.String> suggest(ParseResult<me.coley.recaf.parse.bytecode.ast.RootAST>, java.lang.String) ,public abstract me.coley.recaf.parse.bytecode.ast.SignatureAST visit(int, java.lang.String) throws me.coley.recaf.parse.bytecode.exception.ASTParseException<variables>private int offset,protected final non-sealed AbstractParser#RAW parent