String (@Nullable String projectPath, @Nullable String taskName) { StringBuilder result = new StringBuilder(ACTION_ID_PREFIX); result.append(myProject.getLocationHash()); if (projectPath != null) { String portablePath = FileUtil.toSystemIndependentName(projectPath); File file = new File(portablePath); result.append(file.getParentFile() != null ? file.getParentFile().getName() : file.getName()); result.append(Integer.toHexString(portablePath.hashCode())); if (taskName != null) result.append(taskName); } return result.toString(); }