mirror of
https://github.com/chylex/IntelliJ-IdeaVim.git
synced 2025-05-25 18:34:08 +02:00
Remove undo buffer when an editor is closed.
This commit is contained in:
parent
379f0c0bd4
commit
5aceef973c
@ -22,9 +22,12 @@ package com.maddyhome.idea.vim.undo;
|
|||||||
import com.intellij.openapi.actionSystem.DataContext;
|
import com.intellij.openapi.actionSystem.DataContext;
|
||||||
import com.intellij.openapi.diagnostic.Logger;
|
import com.intellij.openapi.diagnostic.Logger;
|
||||||
import com.intellij.openapi.editor.Editor;
|
import com.intellij.openapi.editor.Editor;
|
||||||
|
import com.intellij.openapi.editor.EditorFactory;
|
||||||
import com.intellij.openapi.editor.event.DocumentAdapter;
|
import com.intellij.openapi.editor.event.DocumentAdapter;
|
||||||
import com.intellij.openapi.editor.event.DocumentEvent;
|
import com.intellij.openapi.editor.event.DocumentEvent;
|
||||||
import com.intellij.openapi.editor.event.DocumentListener;
|
import com.intellij.openapi.editor.event.DocumentListener;
|
||||||
|
import com.intellij.openapi.editor.event.EditorFactoryAdapter;
|
||||||
|
import com.intellij.openapi.editor.event.EditorFactoryEvent;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -46,6 +49,8 @@ public class UndoManager
|
|||||||
{
|
{
|
||||||
listener = new DocumentChangeListener();
|
listener = new DocumentChangeListener();
|
||||||
editors = new HashMap();
|
editors = new HashMap();
|
||||||
|
|
||||||
|
EditorFactory.getInstance().addEditorFactoryListener(new UndoEditorCloseListener());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void beginCommand(Editor editor)
|
public void beginCommand(Editor editor)
|
||||||
@ -107,6 +112,11 @@ public class UndoManager
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void removeEditorUndoList(Editor editor)
|
||||||
|
{
|
||||||
|
editors.remove(editor.getDocument());
|
||||||
|
}
|
||||||
|
|
||||||
private EditorUndoList getEditorUndoList(Editor editor)
|
private EditorUndoList getEditorUndoList(Editor editor)
|
||||||
{
|
{
|
||||||
EditorUndoList res = (EditorUndoList)editors.get(editor.getDocument());
|
EditorUndoList res = (EditorUndoList)editors.get(editor.getDocument());
|
||||||
@ -127,6 +137,14 @@ public class UndoManager
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static class UndoEditorCloseListener extends EditorFactoryAdapter
|
||||||
|
{
|
||||||
|
public void editorReleased(EditorFactoryEvent event)
|
||||||
|
{
|
||||||
|
UndoManager.getInstance().removeEditorUndoList(event.getEditor());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private DocumentListener listener;
|
private DocumentListener listener;
|
||||||
private HashMap editors;
|
private HashMap editors;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user