mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-16 14:23:28 +07:00
js 'create file with exported' quickfix now creates intermediate directories (WEB-24660)
GitOrigin-RevId: 6415b5bda2f99c37c33fd309046c9b48b64d639c
This commit is contained in:
committed by
intellij-monorepo-bot
parent
55e074a64a
commit
6029513303
@@ -72,25 +72,41 @@ public class FileReferenceQuickFixProvider {
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
Module module = containingFile == null ? null : ModuleUtilCore.findModuleForPsiElement(containingFile);
|
||||
|
||||
if (reference.isLast()) {
|
||||
List<TargetDirectory> targetDirectories = getTargets(reference, module, newFileName, false);
|
||||
if (targetDirectories.isEmpty()) return emptyList();
|
||||
|
||||
NewFileLocation location = new NewFileLocation(targetDirectories, getPathToReferencePart(reference), newFileName);
|
||||
NewFileLocation location = getNewFileLocation(reference, newFileName, containingFile, false);
|
||||
if (location == null) return emptyList();
|
||||
return singletonList(new MyCreateFileFix(element, location, reference.getNewFileTemplateName()));
|
||||
}
|
||||
else {
|
||||
List<TargetDirectory> targetDirectories = getTargets(reference, module, newFileName, true);
|
||||
if (targetDirectories.isEmpty()) return emptyList();
|
||||
|
||||
NewFileLocation location = new NewFileLocation(targetDirectories, getPathToReferencePart(reference), newFileName);
|
||||
NewFileLocation location = getNewFileLocation(reference, newFileName, containingFile, true);
|
||||
if (location == null) return emptyList();
|
||||
return singletonList(new CreateDirectoryPathFix(element, location));
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static NewFileLocation getNewFileLocation(@NotNull FileReference reference,
|
||||
String newFileName,
|
||||
boolean isDirectory) {
|
||||
return getNewFileLocation(reference, newFileName, reference.getElement().getContainingFile(), isDirectory);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private static NewFileLocation getNewFileLocation(@NotNull FileReference reference,
|
||||
String newFileName,
|
||||
PsiFile containingFile,
|
||||
boolean isDirectory) {
|
||||
@Nullable
|
||||
Module module = ModuleUtilCore.findModuleForPsiElement(containingFile);
|
||||
|
||||
List<TargetDirectory> targetDirectories = getTargets(reference, module, newFileName, isDirectory);
|
||||
if (targetDirectories.isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
return new NewFileLocation(targetDirectories, getPathToReferencePart(reference), newFileName);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private static List<TargetDirectory> getTargets(@NotNull FileReference reference,
|
||||
@Nullable Module module,
|
||||
|
||||
Reference in New Issue
Block a user