public static String getToolTipText(Function function, boolean includeSymbolDetails) {

		StringBuilder buf = new StringBuilder(HTML);

		ExternalLocation extLoc = function.getExternalLocation();
		if (extLoc != null) {
			buf.append("External").append(HTML_SPACE);
		}
		else if (function.isThunk()) {
			buf.append("Thunk").append(HTML_SPACE);
		}

		if (includeSymbolDetails) {
			buf.append("Function");
			buf.append(HTML_SPACE).append("-").append(HTML_SPACE);
			Symbol symbol = function.getSymbol();
			String functionName = symbol.getName(true);
			functionName = StringUtilities.trimMiddle(functionName, LINE_LENGTH);
			buf.append(friendlyEncodeHTML(functionName));
			buf.append("&nbsp;&nbsp;&nbsp;&lt;");
			buf.append(friendlyEncodeHTML(symbol.getSource().getDisplayString()));
			buf.append("&gt;");
			if (extLoc != null) {
				Address addr = extLoc.getAddress();
				if (addr != null) {
					buf.append(HTML_SPACE).append("@").append(HTML_SPACE);
					buf.append(addr.toString(true));
				}
			}
			buf.append(BR);
		}

		buf.append(getFunctionSignaturePreview(function));
		buf.append(BR);

		buf.append("<table cellspacing=0 callpadding=0 border=0>");

		buf.append(generateParameterDetailRow(function.getReturn()));
		for (Parameter p : function.getParameters()) {
			buf.append(generateParameterDetailRow(p));
		}

		if (extLoc != null) {
			String originalImportedName = extLoc.getOriginalImportedName();
			if (originalImportedName != null) {
				buf.append("Imported")
						.append(HTML_SPACE)
						.append("Name:")
						.append(HTML_SPACE)
						.append(friendlyEncodeHTML(originalImportedName));
			}
		}

		buf.append("</table></html>");
		return buf.toString();
	}
Return an HTML formatted rendering of a function

@param function the function
@param includeSymbolDetails true to include details of the symbol
@return tool tip text for the given function
Ghidra/Features/Base/src/main/java/ghidra/app/util/ToolTipUtils.java