salexdv/bsl_console

После инициализации редактор не растягивается вместе с полем

tormozit opened this issue · 9 comments

Нагляднее всего смотреть этот баг в обычной форме в обычном приложении. Открыть форму и пока окно формы маленькое, вставить туда большой текст. Затем максимизировать окно формы. При этом область редактора не растягивается вместе с полем.
Консоль кода HTML.zip

изображение

Видимо родственная проблема к #65

В файле editor.js нужно исправить autolayout : true в конце файла.
Много раз писал автору что это вызывает неудобства, ссылается что microsoft не рекомендует вкл. растягивание по содержимому.

Хотелось бы более подробной информации, включая как можно исправить эту проблему.

Нашел решение проблемы тут https://stackoverflow.com/questions/47017753/monaco-editor-dynamically-resizable . Нужно в параметрах вызова функции создания редактора monaco.editor.create указать параметр automaticLayout: true

editor = monaco.editor.create(document.getElementById("container"), {
        ...
        automaticLayout: true // the important part
      });

Но у меня все еще отображается бесполезная правая штатная полоса прокрутки и иногда нижняя штатная.
Если окно обычной формы 1С максимизировать или восстановить, то штатные полосы прокрутки появляются обе сразу и полос прокрутки редактора становится не видно, пока штатные полосы прокрутки не сдвинешь в крайние положения.
изображение

Штатные полосы прокрутки убрал через добавление

body {
  overflow: hidden;
}

В файл decorations.css

Думаю нужно в поставке также предусмотреть решение этой проблемы хотя бы как опцию. Уверен, большинство будут об нее спотыкаться. Это даже по обсуждениям Monaco видно.

Вот что написано в API monaco.
Установить automaticLayout можно только при инициализации, его нельзя обновить после загрузки редактора. Специально для того, чтобы можно было добавлять свои опции введена фиктивная опция customOptions. Перед загрузкой исходников в поле HTML-документа её можно заменить на что угодно, в том числе и на automaticLayout

Принято. Сделаю динамическую замену в файлах.

Кстати в функции compare() ты не побоялся включить automaticLayout в обоих вариантах. В первом видимо потому, что там мало "perfomance issues" возникает, а во втором варианте ты же по сути обратно включаешь обычный режим редактора. Почему тогда при его создании ты боишься так делать?

изображение