@Nonnull
	@Override
	public ContextMenuProvider getAnnotationContextMenuProvider(@Nonnull ContextSource source,
	                                                            @Nonnull Workspace workspace,
	                                                            @Nonnull WorkspaceResource resource,
	                                                            @Nonnull ClassBundle<? extends ClassInfo> bundle,
	                                                            @Nonnull Annotated annotated,
	                                                            @Nonnull AnnotationInfo annotation) {
		return () -> {
			TextProvider nameProvider = textService.getAnnotationTextProvider(workspace, resource, bundle, annotated, annotation);
			IconProvider iconProvider = iconService.getAnnotationIconProvider(workspace, resource, bundle, annotated, annotation);
			ContextMenu menu = new ContextMenu();
			addHeader(menu, nameProvider.makeText(), iconProvider.makeIcon());
			var builder = new ContextMenuBuilder(menu, source).forAnnotation(workspace, resource, bundle, annotated, annotation);

			String annotationType = Type.getType(annotation.getDescriptor()).getInternalName();

			ClassPathNode annotationDecPath = workspace.findClass(annotationType);
			if (annotationDecPath != null)
				builder.item("menu.goto.class", ARROW_RIGHT, runnable(() -> actions.gotoDeclaration(annotationDecPath)));

			builder.item("menu.edit.remove.annotation", TRASH_CAN, () -> actions.immediateDeleteAnnotations(bundle, annotated, annotationType));

			return menu;
		};
	}
Basic implementation for {@link AnnotationContextMenuProviderFactory}.

@author Matt Coley
recaf-ui/src/main/java/software/coley/recaf/services/cell/context/BasicAnnotationContextMenuProviderFactory.java