private ListingField getFieldForInstruction(Instruction inst, ProxyObj<?> proxy, int varWidth) {
		int numOperands = inst.getNumOperands();
		if (numOperands == 0) {
			return null;
		}

		List<OperandFieldElement> elements = new ArrayList<>();
		int characterOffset = createSeparatorFieldElement(inst, 0, 0, 0, 0, elements);

		for (int opIndex = 0; opIndex < numOperands; opIndex++) {
			OperandRepresentationList operandRepresentationList =
				codeUnitFormat.getOperandRepresentationList(inst, opIndex);
			characterOffset = addElementsForOperand(inst, elements, opIndex,
				operandRepresentationList, characterOffset);
			characterOffset = 0;
		}

		// There may be operands with no representation objects, so we don't want to create a 
		// composite field element.
		if (elements.isEmpty()) {
			return null;
		}
		if (wrapOnSemicolon) {
			List<FieldElement> lines = breakIntoLines(elements);
			if (lines.size() == 1) {
				return ListingTextField.createSingleLineTextField(this, proxy,
					lines.get(0), startX + varWidth, width, hlProvider);
			}
			return ListingTextField.createMultilineTextField(this, proxy, lines, startX, width,
				hlProvider);
		}
		return ListingTextField.createSingleLineTextField(this, proxy,
			new CompositeFieldElement(elements), startX + varWidth, width, hlProvider);
	}
Constructor
@param name the name of the field.
@param model the model that the field belongs to.
@param hlProvider the HightlightProvider.
@param displayOptions the Options for display properties.
@param fieldOptions the Options for field specific properties.
Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/field/OperandFieldHelper.java