mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
EDU-425 Show actual lesson name
This commit is contained in:
+5
@@ -4,6 +4,7 @@ import com.intellij.ide.projectView.ProjectView;
|
||||
import com.intellij.openapi.actionSystem.CommonDataKeys;
|
||||
import com.intellij.openapi.actionSystem.DataContext;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.fileEditor.ex.FileEditorManagerEx;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.ui.Messages;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
@@ -50,6 +51,10 @@ public abstract class CCRenameHandler implements RenameHandler {
|
||||
}
|
||||
rename(project, course, directory);
|
||||
ProjectView.getInstance(project).refresh();
|
||||
FileEditorManagerEx managerEx = FileEditorManagerEx.getInstanceEx(project);
|
||||
for (VirtualFile virtualFile : managerEx.getOpenFiles()) {
|
||||
managerEx.updateFilePresentation(virtualFile);
|
||||
}
|
||||
}
|
||||
|
||||
protected abstract void rename(@NotNull Project project, @NotNull Course course, @NotNull PsiDirectory directory);
|
||||
|
||||
@@ -106,6 +106,7 @@
|
||||
<statistics.usagesCollector implementation="com.jetbrains.edu.learning.statistics.EduUsagesCollector"/>
|
||||
<applicationService serviceImplementation="com.jetbrains.edu.learning.statistics.EduUsagesCollector"/>
|
||||
<applicationService serviceImplementation="com.jetbrains.edu.learning.stepic.StepicUpdateSettings"/>
|
||||
<editorTabTitleProvider implementation="com.jetbrains.edu.learning.StudyTabTitleProvider"/>
|
||||
</extensions>
|
||||
|
||||
<extensions defaultExtensionNs="Edu">
|
||||
|
||||
+45
@@ -0,0 +1,45 @@
|
||||
package com.jetbrains.edu.learning;
|
||||
|
||||
import com.intellij.openapi.fileEditor.impl.EditorTabTitleProvider;
|
||||
import com.intellij.openapi.fileEditor.impl.UniqueNameEditorTabTitleProvider;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.jetbrains.edu.learning.core.EduNames;
|
||||
import com.jetbrains.edu.learning.courseFormat.Lesson;
|
||||
import com.jetbrains.edu.learning.courseFormat.Task;
|
||||
import com.jetbrains.edu.learning.courseFormat.TaskFile;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
public class StudyTabTitleProvider implements EditorTabTitleProvider {
|
||||
@Nullable
|
||||
@Override
|
||||
public String getEditorTabTitle(Project project, VirtualFile file) {
|
||||
TaskFile taskFile = StudyUtils.getTaskFile(project, file);
|
||||
if (taskFile == null) {
|
||||
return null;
|
||||
}
|
||||
String title = new UniqueNameEditorTabTitleProvider().getEditorTabTitle(project, file);
|
||||
if (title == null) {
|
||||
return null;
|
||||
}
|
||||
String[] split = title.split(File.separator);
|
||||
for (int i = 0; i < split.length; i++) {
|
||||
String part = split[i];
|
||||
Task task = taskFile.getTask();
|
||||
VirtualFile taskDir = task.getTaskDir(project);
|
||||
if (taskDir != null && part.equals(taskDir.getName())) {
|
||||
split[i] = task.getName();
|
||||
continue;
|
||||
}
|
||||
Lesson lesson = task.getLesson();
|
||||
int lessonIndex = lesson.getIndex();
|
||||
if (part.equals(EduNames.LESSON + lessonIndex)) {
|
||||
split[i] = lesson.getName();
|
||||
}
|
||||
}
|
||||
return StringUtil.join(split, File.separator);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user