Skip to content

Commit 1196129

Browse files
committedAug 12, 2024
fix #726
1 parent 99466b6 commit 1196129

File tree

3 files changed

+26
-13
lines changed

3 files changed

+26
-13
lines changed
 

‎src/main/java/com/shuzijun/leetcode/plugin/editor/QuestionEditorWithPreview.java

+6-1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import com.intellij.openapi.actionSystem.ActionGroup;
66
import com.intellij.openapi.actionSystem.ActionManager;
77
import com.intellij.openapi.actionSystem.DefaultActionGroup;
8+
import com.intellij.openapi.editor.Editor;
89
import com.intellij.openapi.fileEditor.FileEditor;
910
import com.intellij.openapi.fileEditor.FileEditorLocation;
1011
import com.intellij.openapi.fileEditor.TextEditor;
@@ -98,7 +99,11 @@ public TextEditor getTextEditor() {
9899

99100
}
100101

101-
public FileEditor getPreviewEditor() {
102+
public @NotNull FileEditor getPreviewEditor() {
102103
return myPreview == getTextEditor() ? myEditor : myPreview;
103104
}
105+
106+
public @NotNull Editor getEditor() {
107+
return getTextEditor().getEditor();
108+
}
104109
}

‎src/main/java/com/shuzijun/leetcode/plugin/editor/converge/ContentProvider.java

+7-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.shuzijun.leetcode.plugin.editor.converge;
22

3+
import com.intellij.openapi.application.ApplicationManager;
34
import com.intellij.openapi.fileEditor.FileEditor;
45
import com.intellij.openapi.project.Project;
56
import com.intellij.openapi.vfs.LocalFileSystem;
@@ -24,8 +25,13 @@ public boolean accept(@NotNull Project project, @NotNull VirtualFile file) {
2425
@Override
2526
public @NotNull FileEditor createEditor(@NotNull Project project, @NotNull VirtualFile file) {
2627
LeetcodeEditor leetcodeEditor = ProjectConfig.getInstance(project).getEditor(file.getPath());
27-
VirtualFile contentVf = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(new File(leetcodeEditor.getContentPath()));
2828

29+
VirtualFile contentVf;
30+
try {
31+
contentVf = ApplicationManager.getApplication().executeOnPooledThread(() -> LocalFileSystem.getInstance().refreshAndFindFileByIoFile(new File(leetcodeEditor.getContentPath()))).get();
32+
} catch (Exception e) {
33+
throw new RuntimeException(e);
34+
}
2935
return super.createEditor(project, contentVf);
3036
}
3137
}

‎src/main/java/com/shuzijun/leetcode/plugin/utils/FileUtils.java

+13-11
Original file line numberDiff line numberDiff line change
@@ -225,19 +225,21 @@ public static void openFileEditor(File file, Project project) {
225225

226226

227227
public static void openFileEditorAndSaveState(File file, Project project, Question question, BiConsumer<LeetcodeEditor,String> consumer,boolean isOpen) {
228-
ApplicationManager.getApplication().invokeLater(() -> {
229-
VirtualFile vf = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(file);
230-
LeetcodeEditor leetcodeEditor = ProjectConfig.getInstance(project).getDefEditor(URLUtils.getLeetcodeHost()+question.getFrontendQuestionId());
231-
leetcodeEditor.setFrontendQuestionId(URLUtils.getLeetcodeHost()+question.getFrontendQuestionId());
232-
leetcodeEditor.setTitleSlug(question.getTitleSlug());
233-
leetcodeEditor.setHost(URLUtils.getLeetcodeHost());
234-
consumer.accept(leetcodeEditor,vf.getPath());
235-
ProjectConfig.getInstance(project).addLeetcodeEditor(leetcodeEditor);
236-
if(isOpen) {
228+
VirtualFile vf = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(file);
229+
LeetcodeEditor leetcodeEditor = ProjectConfig.getInstance(project).getDefEditor(URLUtils.getLeetcodeHost()+question.getFrontendQuestionId());
230+
leetcodeEditor.setFrontendQuestionId(URLUtils.getLeetcodeHost()+question.getFrontendQuestionId());
231+
leetcodeEditor.setTitleSlug(question.getTitleSlug());
232+
leetcodeEditor.setHost(URLUtils.getLeetcodeHost());
233+
consumer.accept(leetcodeEditor,vf.getPath());
234+
ProjectConfig.getInstance(project).addLeetcodeEditor(leetcodeEditor);
235+
236+
if(isOpen) {
237+
ApplicationManager.getApplication().invokeLater(() -> {
237238
OpenFileDescriptor descriptor = new OpenFileDescriptor(project, vf);
238239
FileEditorManager.getInstance(project).openTextEditor(descriptor, false);
239-
}
240-
});
240+
});
241+
}
242+
241243
}
242244

243245
public static void saveEditDocument(VirtualFile file){

0 commit comments

Comments
 (0)
Please sign in to comment.