mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[platform] ignoring invalid files in "reload from disk" action (EA-247223); simpler texts
GitOrigin-RevId: cf5303941eca489c30fdeff3445ed9483d65d50e
This commit is contained in:
committed by
intellij-monorepo-bot
parent
b4ea9f66ef
commit
b9d1e88402
@@ -11,39 +11,24 @@ import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.openapi.vfs.newvfs.NewVirtualFile;
|
||||
import com.intellij.openapi.vfs.newvfs.RefreshQueue;
|
||||
import com.intellij.openapi.vfs.newvfs.VfsPresentationUtil;
|
||||
import com.intellij.openapi.wm.StatusBar;
|
||||
import com.intellij.openapi.wm.WindowManager;
|
||||
import com.intellij.util.containers.JBIterable;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
public class SynchronizeCurrentFileAction extends AnAction implements DumbAware {
|
||||
@Override
|
||||
public void update(@NotNull AnActionEvent e) {
|
||||
List<VirtualFile> files = getFiles(e).take(2).toList();
|
||||
Project project = e.getProject();
|
||||
if (project == null || files.isEmpty()) {
|
||||
e.getPresentation().setEnabledAndVisible(false);
|
||||
}
|
||||
else {
|
||||
e.getPresentation().setEnabledAndVisible(true);
|
||||
}
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private static String getMessage(@NotNull Project project, @NotNull List<? extends VirtualFile> files) {
|
||||
VirtualFile single = files.size() == 1 ? files.get(0) : null;
|
||||
return single != null ?
|
||||
IdeBundle.message("action.synchronize.file", VfsPresentationUtil.getPresentableNameForAction(project, single)) :
|
||||
IdeBundle.message("action.synchronize.selected.files");
|
||||
e.getPresentation().setEnabledAndVisible(e.getProject() != null && localFiles(e).findAny().isPresent());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void actionPerformed(@NotNull AnActionEvent e) {
|
||||
Project project = getEventProject(e);
|
||||
List<VirtualFile> files = getFiles(e).toList();
|
||||
List<VirtualFile> files = localFiles(e).collect(Collectors.toList());
|
||||
if (project == null || files.isEmpty()) return;
|
||||
|
||||
for (VirtualFile file : files) {
|
||||
@@ -57,17 +42,15 @@ public class SynchronizeCurrentFileAction extends AnAction implements DumbAware
|
||||
RefreshQueue.getInstance().refresh(true, true, () -> postRefresh(project, files), files);
|
||||
}
|
||||
|
||||
private static void postRefresh(Project project, List<? extends VirtualFile> files) {
|
||||
private static void postRefresh(Project project, List<VirtualFile> files) {
|
||||
VcsFacade.getInstance().markFilesDirty(project, files);
|
||||
StatusBar statusBar = WindowManager.getInstance().getStatusBar(project);
|
||||
if (statusBar != null) {
|
||||
statusBar.setInfo(IdeBundle.message("action.sync.completed.successfully", getMessage(project, files)));
|
||||
statusBar.setInfo(IdeBundle.message("action.sync.completed.successfully"));
|
||||
}
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private static JBIterable<VirtualFile> getFiles(@NotNull AnActionEvent e) {
|
||||
return JBIterable.of(e.getData(CommonDataKeys.VIRTUAL_FILE_ARRAY))
|
||||
.filter(o -> o.isInLocalFileSystem());
|
||||
private static Stream<VirtualFile> localFiles(AnActionEvent e) {
|
||||
return Stream.of(e.getData(CommonDataKeys.VIRTUAL_FILE_ARRAY)).filter(f -> f.isValid() && f.isInLocalFileSystem());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -388,9 +388,7 @@ recent.locations.changed.locations=Recent Changed Locations
|
||||
recent.locations.popup.empty.text=No recent locations found
|
||||
recent.locations.title.text=Show changed only
|
||||
recent.locations.popup.empty.file.text=Empty lines
|
||||
action.sync.completed.successfully={0} completed successfully.
|
||||
action.synchronize.file=Synchronize ''{0}''
|
||||
action.synchronize.selected.files=Synchronize selected files
|
||||
action.sync.completed.successfully=File synchronization completed successfully.
|
||||
macro.column.number=Column number
|
||||
macro.unix.separators=Takes a parameter and converts separators to '/'. Ex. $UnixSeparators(\\foo\\bar\\)$ == /foo/bar/
|
||||
macro.file.directory=File directory
|
||||
|
||||
@@ -50,6 +50,8 @@ run.configuration.error.working.directory.does.not.exist=Cannot start process, t
|
||||
run.configuration.error.working.directory.not.directory=Cannot start process, the working directory ''{0}'' is not a directory
|
||||
go.to.file.toolwindow.title=Files matching pattern
|
||||
change.color.command.text=Change color
|
||||
action.synchronize.file=Synchronize ''{0}''
|
||||
action.synchronize.selected.files=Synchronize selected files
|
||||
#messages from ProjectBundle
|
||||
project.roots.no.jdk.on.project.message=Set up created SDK on project?
|
||||
project.roots.no.jdk.on.project.title=Create SDK
|
||||
|
||||
Reference in New Issue
Block a user