@Override
	public ProgramLocation getProgramLocation(int row, int col, ListingField bf) {
		Object obj = bf.getProxy().getObject();
		if (!(obj instanceof CodeUnit)) {
			return null;
		}
		CodeUnit cu = (CodeUnit) obj;

		int[] cpath = null;
		if (cu instanceof Data) {
			cpath = ((Data) cu).getComponentPath();
		}

		List<Address> offcuts = getOffcutReferenceAddress(cu);

		// fictitious offcut labels are listed first, check if row is a fictitious offcut label
		if (row < offcuts.size()) {
			return getLocationForOffcuttLabel(row, col, cu, cpath, offcuts);
		}

		int symbolIndex = row - offcuts.size();

		Symbol s = getCodeOrFunctionSymbol(cu, symbolIndex);
		if (s == null) {
			return new CodeUnitLocation(cu.getProgram(), cu.getMinAddress(), cpath, 0, 0, 0);
		}
		return new LabelFieldLocation(s, row, col);
	}
Move primary symbol to last element in array ...
Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/field/LabelFieldFactory.java