如何使CodeMirror从一定数量的行开始,并根据用户键入的行数进行扩展?

时间:2019-07-02 05:32:34

标签: javascript codemirror

当我使用以下代码启动CodeMirror时

     var jsEditor = CodeMirror.fromTextArea(document.getElementById('js'),
      {
        lineNumbers: true,
        mode: 'javascript',
        theme: 'material',
        height: 'auto', 
        viewportMargin: 'Infinity'
      });

默认为10行。我希望从两行开始

1 个答案:

答案 0 :(得分:1)

您可以在height: fit-content !important上使用height: auto !important.CodeMirror。您必须使用“!important”来覆盖codemirror的样式。

如果要在视图中以一定数量的行开头,可以设置变量minLines并按如下方式使用它:

// on initialization

var minLines = 10;
editor.focus();
// Set the cursor at the end of existing content
editor.setCursor(editor.lineCount());

var lineCount = editor.lineCount(); // current number of lines
var n = editor.options.minLines - lineCount; // how many lines we need

var line = editor.getCursor().line;
var ch = editor.getCursor().ch;

for(i = 0; i < n; i++) {
    editor.replaceRange("\n", { line });
    line++;
}

或者,如果您的意思是实际上以一定的编号开始编辑器,则可以在编辑器选项中使用firstLineNumber,如下所示:

var jsEditor = CodeMirror.fromTextArea(document.getElementById('js'),
  {
    lineNumbers: true,
    firstLineNumber: 10,
    mode: 'javascript',
    theme: 'material',
    height: 'auto', 
    viewportMargin: 'Infinity'
  });