Плагин JetBrains: невозможно избавиться от группы вкладок при закрытии последней вкладкиJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Плагин JetBrains: невозможно избавиться от группы вкладок при закрытии последней вкладки

Сообщение Anonymous »

Я пытаюсь собрать свой первый плагин для JetBrains (пока для собственного использования, поэтому он не обязательно должен быть идеальным).
Я пытаюсь сделать действие, которое, когда пользователь закрывает вкладку, одновременно закроет все остальные вкладки того же файла, которые могут быть открыты в результате разделения.
К сожалению, хотя есть ответственный параметр для закрытия всех копий:
editorManagerImpl.closeFile(currentFile, true, true);

Я не получаю ожидаемого результата.
Предположим, вы открываете файл1, затем файл2, а затем разделяете файл2 еще два раза. В итоге у меня получилось 3 группы вкладок:
file1, file2 | file2 | file2

затем я запускаю команду для файла2, и результат:
все экземпляры файла2 действительно закрываются, но у меня остаются три группы, каждая из которых заполнена файлом1
file1 | file1 | file1

Я ожидаю, что в итоге у меня будет только одна группа вкладок, содержащая файл file1
file1

Я не вижу причины, по которой file1 будет клонировать группы. Как правильно закрыть группу вкладок при закрытии последней вкладки?
public class CloseTabWithSplitCopiesAction extends AnAction {
@Override
public @NotNull ActionUpdateThread getActionUpdateThread() {
return ActionUpdateThread.EDT;
}

@Override
public void actionPerformed(@NotNull AnActionEvent e) {
Project project = e.getProject();
if (project == null) return;

VirtualFile currentFile = e.getData(CommonDataKeys.VIRTUAL_FILE);
if (currentFile == null) return;

FileEditorManager editorManager = FileEditorManager.getInstance(project);
if (editorManager instanceof FileEditorManagerImpl) {
FileEditorManagerImpl editorManagerImpl = (FileEditorManagerImpl) editorManager;
editorManagerImpl.closeFile(currentFile, true, true);
}
}

@Override
public void update(@NotNull AnActionEvent e) {
Project project = e.getProject();
VirtualFile file = e.getData(CommonDataKeys.VIRTUAL_FILE);
e.getPresentation().setEnabledAndVisible(project != null && file != null);
}
}


Подробнее здесь: https://stackoverflow.com/questions/791 ... tab-closes
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»