Часть текста, невидимая в Codemirror - PullRequest
0 голосов
/ 27 марта 2019

Я использую Codemirror и настраиваю его следующим образом (с последней версией Google Chrome):

<script>
  var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
    mode: 'markdown',
    autoRefresh:true,
    lineNumbers: false,
    lineWrapping: true,
    theme: "default",
    extraKeys: {"Enter": "newlineAndIndentContinueMarkdownList"},
  });
</script>

Проблема в том, что часть текста не видна, прежде чем я прокручиваю или редактирую текст.

1. редактор.refresh () не работает

Поскольку мой div с текстовой областью не виден с самого начала, я называю editor.refresh();. Прежде чем текст не был виден.

2. setTimeout не удается

Я тоже попробовал этот трюк безуспешно:

setTimeout(function() {
    editor.refresh();
},1);

3. Сбой автообновления

Я также попробовал плагин autoRefresh, но это не имело никакого значения.

Ниже приведен анимированный скриншот, где вы можете увидеть, что происходит.

Дополнительная информация

Класс pre с CodeMirror-line не отображается. Это не просто скрыто, это даже не там. Я думаю, Codemirror пытается быть умным и рендериться по требованию?

enter image description here

1 Ответ

0 голосов
/ 31 марта 2019

Редактировать: Здесь был ответ на этот вопрос https://discuss.codemirror.net/t/part-of-text-not-rendered/2030/5 Решение, которое работало, заключалось в том, чтобы указать параметр viewportMargin: Infinity.

У меня была такая проблема, и в конечном итоге она была вызвана неправильной версткой CSS с моей стороны, за пределами CodeMirror. Попробуйте проверить элемент CodeMirror и проверить его высоту. Высота должна быть внутри дисплея, а не за пределами дисплея. Когда у меня была похожая проблема, высота экземпляра CodeMirror была больше, чем дисплей. Я исправил это, обеспечив высоту 100% для всех элементов div, которые в конечном итоге содержат экземпляр CodeMirror.

...