private Highlight[] getMultipleLabelsHighlights(String text, Object obj, int cursorTextOffset,
			Highlight[] highlights) {
		CodeUnit cu = (CodeUnit) obj;
		Address minAddress = cu.getMinAddress();
		HashMap<VTMarkupType, VTMarkupItem> typeMap = map.get(minAddress);
		if (typeMap != null) {
			VTMarkupItem markupItem = typeMap.get(LabelMarkupType.INSTANCE);
			if (markupItem != null) {
				ArrayList<Highlight> highlightList = new ArrayList<>();
				MultipleSymbolStringable value =
					(MultipleSymbolStringable) ((isSource || markupItem.canUnapply())
							? markupItem.getSourceValue()
							: markupItem.getOriginalDestinationValue());
				if (value != null) {
					// Highlight the entire labels field.
					int startIndex = 0;
					int endIndex = text.length() - 1;
					Color highlightColor =
						getMarkupBackgroundColor(cursorTextOffset, markupItem, startIndex,
							endIndex);
					Highlight highlight = new Highlight(startIndex, endIndex, highlightColor);
					highlightList.add(highlight);
					return highlightList.toArray(new Highlight[highlightList.size()]);
				}
			}
		}
		return new Highlight[0];
	}
Creates a darker shade of the color passed-in, based on the given amount.

algorithm: 1) grab individual rgb elements
           2) multiply each by a factor.
           
           ie: int newRed = (int)(oldRed * 0.85);

@param color the color to shade
@param amount number between 0..1 (the smaller the number, the darker the shade)
@return the new color
Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/duallisting/VTDualListingHighlightProvider.java