@Override
	public boolean handleMouseClick(String[] annotationParts, Navigatable navigatable,
			ServiceProvider serviceProvider) {

		ProjectDataService projectDataService =
			serviceProvider.getService(ProjectDataService.class);
		ProjectData projectData = projectDataService.getProjectData();

		// default folder is the root folder
		DomainFolder folder = projectData.getRootFolder();

		// Get program name and folder from program comment annotation
		// handles forward and back slashes and with and without first slash
		String programText = getProgramText(annotationParts);
		String programName = FilenameUtils.getName(programText);
		String path = FilenameUtils.getFullPathNoEndSeparator(programText);
		if (path.length() > 0) {
			path = StringUtils.prependIfMissing(FilenameUtils.separatorsToUnix(path), "/");
			folder = projectData.getFolder(path);
		}

		if (folder == null) {
			Msg.showInfo(getClass(), null, "No Folder: " + path,
				"Unable to locate folder by the name \"" + path);
			return true;
		}

		DomainFile programFile = findProgramByName(programName, folder);

		if (programFile == null) {
			Msg.showInfo(getClass(), null, "No Program: " + programName,
				"Unable to locate a program by the name \"" + programName +
					"\".\nNOTE: Program name is case-sensitive. ");
			return true;
		}

		SymbolPath symbolPath = getSymbolPath(annotationParts);
		navigate(programFile, symbolPath, navigatable, serviceProvider);

		return true;
	}
This could return a symbol or an address (or any text really, since it is not checked
Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/field/ProgramAnnotatedStringHandler.java