编辑器适配屏幕缩放

  1. 手动调用 editorIns.layout() 方法 文档
  2. 实例化编辑器的时候 automaticLayout 声明为 true 文档 (可能有性能问题)

Diff Editor

  1. 通过 monaco.editor.createDiffEditor 方法创建 diff editor 实例;
  2. 通过 diffEditorIns.setModel 方法设置 diff 的原始值和现在的值
    1. diffEditorIns.setModel({
    2. original: monaco.editor.createModel(originalValue, 'javascript'),
    3. modified: monaco.editor.createModel(nowValue, 'javascript'),
    4. });

更新编辑器 options

通过 updateOptions 来更新,比如

  1. editorIns.updateOptions({
  2. readOnly: true,
  3. });

自定义语言高亮

  1. 如果是自定义的语言需要先注册自定义语言名称

    1. monaco.languages.register({ id: 'configItem' });
  2. 定义高亮规则 setMonarchTokensProvider 文档 ```typescript // 如果是已有语言高亮则不需要第一步直接设置高亮规则就可以 monaco.languages.setMonarchTokensProvider(‘yaml’, { tokenizer: { root: [[tokenRegx, { token: ‘keyword’ }]], }, });

// 自定义语言 monaco.languages.setMonarchTokensProvider(‘configItem’, { tokenizer: { root: [[tokenRegx, { token: ‘keyword’ }]], }, });

  1. <a name="iJhC8"></a>
  2. ###
  3. <a name="DCJ8V"></a>
  4. ### 标记错误
  5. 通过 `monaco.editor.setModelMarkers` 方法标记位置点,[文档](https://microsoft.github.io/monaco-editor/api/modules/monaco.editor.html#setmodelmarkers)
  6. ```typescript
  7. monaco.editor.setModelMarkers(
  8. model,
  9. 'javascript',
  10. [{
  11. startLineNumber: 2,
  12. endLineNumber: 2,
  13. startColumn: 1,
  14. endColumn: 10,
  15. severity: monaco.MarkerSeverity.Error,
  16. message: `语法错误`,
  17. }],
  18. );