public static String getSymbolTypeDisplayName(Symbol symbol) {
		if (symbol == null) {
			return null;
		}

		SymbolType symType = symbol.getSymbolType();
		if (symType == SymbolType.LABEL) {
			if (symbol.isExternal()) {
				return "External Data";
			}
			if (!symbol.isPrimary()) {
				Program program = symbol.getProgram();
				Symbol primary = program.getSymbolTable().getPrimarySymbol(symbol.getAddress());
				if (primary != null && primary.getSymbolType() == SymbolType.FUNCTION) {
					return "Function";
				}
			}
			Object obj = symbol.getObject();
			if (obj instanceof Instruction) {
				return "Instruction Label";
			}
			else if (obj != null) {
				return "Data Label";
			}
		}
		else if (symType == SymbolType.FUNCTION) {
			if (symbol.isExternal()) {
				return "External Function";
			}

			Function func = (Function) symbol.getObject();
			if (func == null) {
				return null; // symbol deleted
			}
			if (func.isThunk()) {
				return "Thunk Function";
			}
			return "Function";
		}
		if (symbol.isExternal()) {
			return "External " + symType;
		}
		return symType.toString();
	}
Returns display text suitable for describing in the GUI the {@link SymbolType} of the
given symbol

@param symbol The symbol from which to get the SymbolType
@return a display string for the SymbolType
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/symbol/SymbolUtilities.java