diff --git a/README.md b/README.md index b42bd90..4e8fd32 100644 --- a/README.md +++ b/README.md @@ -34,6 +34,7 @@ | Функция | Описание | | ------------------------------ | --------------------------------------------------------------------------------------------- | | `setText` | Устанавливает переданный текст в текущую или определенную позицию | +| `updateText` | Полностью заменяет весь текст редактора, игнорируя при этом режим *Только просмотр* | | `getText` | Возвращает весь текст из окна редактора | | `eraseText` | Удаляет весь текст редактора | | `getQuery` | Определяет текст запроса в текущей позиции и возвращает его вместе с областью текста | diff --git a/src/editor.js b/src/editor.js index 67107c9..1ae5718 100644 --- a/src/editor.js +++ b/src/editor.js @@ -7,6 +7,7 @@ define(['bslGlobals', 'bslMetadata', 'snippets', 'bsl_language', 'vs/editor/edit decorations = []; contextData = new Map(); generateModificationEvent = false; + readOnlyMode = false; sendEvent = function(eventName, eventParams) { @@ -22,6 +23,28 @@ define(['bslGlobals', 'bslMetadata', 'snippets', 'bsl_language', 'vs/editor/edit } + updateText = function(txt, range, usePadding) { + + readOnly = readOnlyMode; + modEvent = generateModificationEvent; + + if (readOnly) + setReadOnly(false); + + if (modEvent) + enableModificationEvent(false); + + eraseText(); + setText(txt, range, usePadding); + + if (modEvent) + enableModificationEvent(true); + + if (readOnly) + setReadOnly(true); + + } + eraseText = function () { setText('', editor.getModel().getFullModelRange(), false); @@ -74,6 +97,7 @@ define(['bslGlobals', 'bslMetadata', 'snippets', 'bsl_language', 'vs/editor/edit setReadOnly = function (readOnly) { + readOnlyMode = readOnly; editor.updateOptions({ readOnly: readOnly }) }