mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-15 11:53:49 +07:00
RegExp: fix disposable already disposed problem (IDEA-320966, EA-848158)
GitOrigin-RevId: 18664e962952cecd56b12d4238baaf940e501e65
This commit is contained in:
committed by
intellij-monorepo-bot
parent
f4ea6a80ec
commit
112d27a018
@@ -13,7 +13,6 @@ import com.intellij.openapi.actionSystem.CustomShortcutSet;
|
|||||||
import com.intellij.openapi.application.ApplicationManager;
|
import com.intellij.openapi.application.ApplicationManager;
|
||||||
import com.intellij.openapi.application.ModalityState;
|
import com.intellij.openapi.application.ModalityState;
|
||||||
import com.intellij.openapi.application.ReadAction;
|
import com.intellij.openapi.application.ReadAction;
|
||||||
import com.intellij.openapi.components.Service;
|
|
||||||
import com.intellij.openapi.diagnostic.Logger;
|
import com.intellij.openapi.diagnostic.Logger;
|
||||||
import com.intellij.openapi.editor.Document;
|
import com.intellij.openapi.editor.Document;
|
||||||
import com.intellij.openapi.editor.Editor;
|
import com.intellij.openapi.editor.Editor;
|
||||||
@@ -107,12 +106,11 @@ public final class CheckRegExpForm {
|
|||||||
fileType = RegExpFileType.forLanguage(language);
|
fileType = RegExpFileType.forLanguage(language);
|
||||||
}
|
}
|
||||||
myRegExp = new EditorTextField(document, project, fileType, false, false) {
|
myRegExp = new EditorTextField(document, project, fileType, false, false) {
|
||||||
private Disposable disposable;
|
private final Disposable disposable = Disposer.newDisposable();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onEditorAdded(@NotNull Editor editor) {
|
protected void onEditorAdded(@NotNull Editor editor) {
|
||||||
super.onEditorAdded(editor);
|
super.onEditorAdded(editor);
|
||||||
disposable = ApplicationManager.getApplication().getService(RegExpDisposable.class);
|
|
||||||
editor.getCaretModel().addCaretListener(new CaretListener() {
|
editor.getCaretModel().addCaretListener(new CaretListener() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -166,12 +164,11 @@ public final class CheckRegExpForm {
|
|||||||
|
|
||||||
String sampleText = PropertiesComponent.getInstance(project).getValue(LAST_EDITED_REGEXP, RegExpBundle.message("checker.sample.text"));
|
String sampleText = PropertiesComponent.getInstance(project).getValue(LAST_EDITED_REGEXP, RegExpBundle.message("checker.sample.text"));
|
||||||
mySampleText = new EditorTextField(sampleText, project, PlainTextFileType.INSTANCE) {
|
mySampleText = new EditorTextField(sampleText, project, PlainTextFileType.INSTANCE) {
|
||||||
private Disposable disposable;
|
private final Disposable disposable = Disposer.newDisposable();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onEditorAdded(@NotNull Editor editor) {
|
protected void onEditorAdded(@NotNull Editor editor) {
|
||||||
super.onEditorAdded(editor);
|
super.onEditorAdded(editor);
|
||||||
disposable = ApplicationManager.getApplication().getService(RegExpDisposable.class);
|
|
||||||
editor.getCaretModel().addCaretListener(new CaretListener() {
|
editor.getCaretModel().addCaretListener(new CaretListener() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -228,14 +225,12 @@ public final class CheckRegExpForm {
|
|||||||
mySampleText.setPreferredWidth(preferredWidth);
|
mySampleText.setPreferredWidth(preferredWidth);
|
||||||
|
|
||||||
myRootPanel = new JPanel(new GridBagLayout()) {
|
myRootPanel = new JPanel(new GridBagLayout()) {
|
||||||
Disposable disposable;
|
private final Disposable disposable = Disposer.newDisposable();
|
||||||
Alarm updater;
|
private Alarm updater;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addNotify() {
|
public void addNotify() {
|
||||||
super.addNotify();
|
super.addNotify();
|
||||||
disposable = Disposer.newDisposable();
|
|
||||||
|
|
||||||
IdeFocusManager.getGlobalInstance().requestFocus(mySampleText, true);
|
IdeFocusManager.getGlobalInstance().requestFocus(mySampleText, true);
|
||||||
|
|
||||||
registerFocusShortcut(myRegExp, "shift TAB", mySampleText);
|
registerFocusShortcut(myRegExp, "shift TAB", mySampleText);
|
||||||
@@ -589,11 +584,4 @@ public final class CheckRegExpForm {
|
|||||||
while (matcher.find());
|
while (matcher.find());
|
||||||
return matches;
|
return matches;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
@Service
|
|
||||||
final class RegExpDisposable implements Disposable {
|
|
||||||
@Override
|
|
||||||
public void dispose() {
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user