Merge pull request #2058 from xconverge/dispose-old-modehandlers

Dispose modehandler if NO documents match the modehandler document anymore
This commit is contained in:
Sean Kelly 2017-10-11 15:24:42 -07:00 committed by GitHub
commit bee6ac6088

View File

@ -310,6 +310,21 @@ export async function activate(context: vscode.ExtensionContext) {
});
});
vscode.workspace.onDidCloseTextDocument(event => {
const documents = vscode.workspace.textDocuments;
// Delete modehandler if vscode knows NOTHING about this document. This does
// not handle the case of the same file open twice. This only handles the
// case of deleting a modehandler once all tabs of this document have been
// closed
for (let mh in modeHandlerToEditorIdentity) {
const editor = modeHandlerToEditorIdentity[mh].vimState.editor.document;
if (documents.indexOf(editor) === -1) {
delete modeHandlerToEditorIdentity[mh];
}
}
});
registerCommand(context, 'toggleVim', async () => {
Globals.active = !Globals.active;
if (Globals.active) {