void (Object sessionId, long startCompilationStamp, Runnable restartWork, ProgressIndicator indicator) { List<AnAction> restartActions = getRestartActions(restartWork, indicator); List<AnAction> contextActions = getContextActions(); String title; if (myContentName.equals(JavaCompilerBundle.message("compiler.content.name.rebuild")) || myContentName.equals(JavaCompilerBundle.message("compiler.content.name.recompile")) || myContentName.equals(JavaCompilerBundle.message("compiler.content.name.make"))) { title = myProject.getName(); } else { title = capitalize(wordsToBeginFromLowerCase(myContentName)); } DefaultBuildDescriptor buildDescriptor = new DefaultBuildDescriptor(sessionId, title, notNullize(myProject.getBasePath()), startCompilationStamp) .withRestartActions(restartActions.toArray(AnAction.EMPTY_ARRAY)) .withAction(new CompilerPropertiesAction()) .withExecutionFilter(new ModuleLinkFilter(myProject)) .withExecutionFilter(new RegexpFilter(myProject, FILE_PATH_MACROS + ":" + LINE_MACROS + ":" + COLUMN_MACROS)) .withExecutionFilter(new UrlFilter(myProject)) .withContextAction(node -> { return new ExcludeFromCompileAction(myProject) { @Override protected @Nullable VirtualFile getFile() { List<Navigatable> navigatables = node.getNavigatables(); if (navigatables.size() != 1) return null; Navigatable navigatable = navigatables.get(0); if (navigatable instanceof OpenFileDescriptor) { return ((OpenFileDescriptor)navigatable).getFile(); } else if (navigatable instanceof FileNavigatable) { OpenFileDescriptor fileDescriptor = ((FileNavigatable)navigatable).getFileDescriptor(); return fileDescriptor != null ? fileDescriptor.getFile() : null; } return null; } }; }) .withContextActions(contextActions.toArray(AnAction.EMPTY_ARRAY)); myBuildProgress.start(new BuildProgressDescriptor() { @NotNull @Override public String getTitle() { return buildDescriptor.getTitle(); } @Override public @NotNull BuildDescriptor getBuildDescriptor() { return buildDescriptor; } }); addIndicatorDelegate(indicator); }