protected List<AttributedString> createBlockStartText(CodeUnit cu) {

		List<AttributedString> lines = new ArrayList<>();

		// Need to get the memory block that this code unit is a part of, so we can check
		// its start address.
		MemoryBlock block = cu.getMemory().getBlock(cu.getAddress());

		if (block == null) {
			return null;
		}

		// If the code unit is not at the start of the block, just return.
		if (!(cu.getMinAddress().equals(block.getStart()))) {
			return null;
		}

		MemoryBlockType blockType = block.getType();

		String type = "";
		if (blockType != MemoryBlockType.DEFAULT) {
			if (block.isMapped()) {
				type = "(" + block.getSourceInfos().get(0).getDescription() + ")";
			}
			else {
				type = "(" + blockType + ")";
			}
		}
		String line1 = block.getName() + " " + type;
		String line2 = block.getComment();
		String line3 = block.getStart().toString(true) + "-" + block.getEnd().toString(true);
		Color color = ListingColors.BLOCK_START;
		AttributedString borderAS = new AttributedString("//", color, getMetrics());
		lines.add(borderAS);
		lines.add(new AttributedString("// " + line1, color, getMetrics()));
		if (line2 != null && !line2.isEmpty()) {
			lines.add(new AttributedString("// " + line2, color, getMetrics()));
		}
		lines.add(new AttributedString("// " + line3, color, getMetrics()));
		lines.add(borderAS);

		return lines;
	}
@see ghidra.app.util.viewer.field.FieldFactory#acceptsType(int, java.lang.Class)
Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/field/MemoryBlockStartFieldFactory.java