void (@NotNull Project project, @NotNull TargetDirectory directory, @Nullable Editor editor) { myIsAvailableTimeStamp = 0; // to revalidate applicability PsiDirectory currentDirectory = directory.getDirectory(); if (currentDirectory == null) { return; } try { for (String pathPart : directory.getPathToCreate()) { currentDirectory = findOrCreateSubdirectory(currentDirectory, pathPart); } for (String pathPart : mySubPath) { currentDirectory = findOrCreateSubdirectory(currentDirectory, pathPart); } if (currentDirectory == null) { if (editor != null) { HintManager hintManager = HintManager.getInstance(); hintManager.showErrorHint(editor, CodeInsightBundle.message("create.file.incorrect.path.hint", myNewFileName)); } return; } apply(project, currentDirectory, editor); } catch (IncorrectOperationException e) { myIsAvailable = false; } }