1
0
mirror of https://github.com/salexdv/bsl_console.git synced 2025-07-03 00:47:14 +02:00

Уничтожение редактора при вызове режима сравнения #275

This commit is contained in:
salexdv
2022-04-16 08:53:29 +03:00
parent a0877dfa44
commit d0eeaa243f

View File

@ -591,7 +591,6 @@ define(['bslGlobals', 'bslMetadata', 'snippets', 'bsl_language', 'vs/editor/edit
compare = function (text, sideBySide, highlight, markLines = true) { compare = function (text, sideBySide, highlight, markLines = true) {
document.getElementById("container").innerHTML = '';
let language_id = getCurrentLanguageId(); let language_id = getCurrentLanguageId();
let currentTheme = getCurrentThemeName(); let currentTheme = getCurrentThemeName();
let previous_options = getActiveEditor().getRawOptions(); let previous_options = getActiveEditor().getRawOptions();
@ -614,6 +613,7 @@ define(['bslGlobals', 'bslMetadata', 'snippets', 'bsl_language', 'vs/editor/edit
let originalModel = originalText ? monaco.editor.createModel(originalText) : monaco.editor.createModel(editor.getModel().getValue()); let originalModel = originalText ? monaco.editor.createModel(originalText) : monaco.editor.createModel(editor.getModel().getValue());
let modifiedModel = monaco.editor.createModel(text); let modifiedModel = monaco.editor.createModel(text);
originalText = originalModel.getValue(); originalText = originalModel.getValue();
disposeEditor();
editor = monaco.editor.createDiffEditor(document.getElementById("container"), { editor = monaco.editor.createDiffEditor(document.getElementById("container"), {
theme: currentTheme, theme: currentTheme,
language: language_id, language: language_id,
@ -672,6 +672,7 @@ define(['bslGlobals', 'bslMetadata', 'snippets', 'bsl_language', 'vs/editor/edit
} }
else else
{ {
disposeEditor();
createEditor(language_id, originalText, currentTheme); createEditor(language_id, originalText, currentTheme);
initEditorEventListenersAndProperies(); initEditorEventListenersAndProperies();
originalText = ''; originalText = '';
@ -1670,6 +1671,26 @@ define(['bslGlobals', 'bslMetadata', 'snippets', 'bsl_language', 'vs/editor/edit
// #endregion // #endregion
// #region non-public functions // #region non-public functions
function disposeEditor() {
if (editor) {
if (editor.navi) {
editor.getOriginalEditor().getModel().dispose();
editor.getOriginalEditor().dispose();
editor.getModifiedEditor().getModel().dispose();
editor.getModifiedEditor().dispose();
}
else {
editor.getModel().dispose();
}
editor.dispose();
}
}
function generateSnippetEvent(e) { function generateSnippetEvent(e) {
if (e.source == 'snippet') { if (e.source == 'snippet') {