@Nonnull
	public TextProvider getAnnotationTextProvider(@Nonnull Workspace workspace,
												  @Nonnull WorkspaceResource resource,
												  @Nonnull ClassBundle<? extends ClassInfo> bundle,
												  @Nonnull Annotated annotated,
												  @Nonnull AnnotationInfo annotation) {
		return () -> {
			String desc = annotation.getDescriptor();
			String type = formatConfig.filter(desc.substring(1, desc.length() - 1));

			StringBuilder sb = new StringBuilder(type);
			Map<String, AnnotationElement> elements = annotation.getElements();
			if (!elements.isEmpty()) {
				sb.append('(');
				elements.forEach((key, element) -> {
					Object value = element.getElementValue();
					sb.append(key).append(" = ");
					if (value instanceof String s)
						sb.append('"').append(formatConfig.filter(s)).append('"');
					else if (value instanceof ElementValue)
						sb.append("{...}");
					else if (value instanceof List)
						sb.append("[...]");
					else
						sb.append('"').append(formatConfig.filter(String.valueOf(value))).append('"');
					sb.append(", ");
				});
				sb.setLength(sb.length() - 2);
				sb.append(')');
			}

			return formatConfig.filterMaxLength(sb.toString());
		};
	}
@param workspace
		Containing workspace.
@param resource
		Containing resource.
@param bundle
		Containing bundle.
@param annotated
		The annotated item.
@param annotation
		The annotation to create an icon for.

@return Text provider for the annotation.
recaf-ui/src/main/java/software/coley/recaf/services/cell/text/TextProviderService.java