private void toggleMiddleMouseHighlight(FieldLocation location, Field field) {
		ClangToken token = ((ClangTextField) field).getToken(location);

		ActiveMiddleMouse previousMiddleMouse = activeMiddleMouse;
		activeMiddleMouse = null;

		if (previousMiddleMouse != null) {
			// middle mousing always clears the last middle-mouse highlight
			previousMiddleMouse.clear();

			if (previousMiddleMouse.matches(token)) {
				// middle mousing on the same token clears, but does not create a new highlight
				return;
			}
		}

		// exclude tokens that users do not want to highlight
		if (token instanceof ClangOpToken) {
			return;
		}

		if (token instanceof ClangSyntaxToken syntaxToken && !isNamespace(syntaxToken)) {
			return;
		}

		ActiveMiddleMouse newMiddleMouse = new ActiveMiddleMouse(token.getText());
		newMiddleMouse.apply();
		activeMiddleMouse = newMiddleMouse;
	}
Removes all secondary highlights for the current function

@param function the function containing the secondary highlights
Ghidra/Features/Decompiler/src/main/java/ghidra/app/decompiler/component/DecompilerPanel.java