angularjs 开始使用Monaco Editor中的格式

nfg76nw0  于 2023-02-07  发布在  Angular
关注(0)|答案(1)|浏览(145)

我正尝试在Monaco编辑器中添加自定义语言的格式。似乎我们可以使用monaco.languages.registerDocumentFormattingEditProvider。
作为一个例子,我已经做了一个工作plunker .现在我想添加一个非常简单的格式规则到整个文档:在每个错误日志后添加一个换行符.但是我不知道如何在mySpecialLanguage.js中编写提供程序:

monaco.languages.registerDocumentFormattingEditProvider('mySpecialLanguage', {
  provideDocumentFormattingEdits: function (model, options, token) {
    console.log("here") // which is well printed
    // should return a value of type TextEdit[], but I don't know how to construct one
  }
})

provideDocumentFormattingEdits应该返回TextEdit[]类型的值,其中TextEdit被指定为here。但是,我在Monaco编辑器中找不到足够的构造TextEdit的代码示例(有一些VSCode示例)。有人能给我一些示例并帮助我开始吗?

5sxhfpxr

5sxhfpxr1#

希望这是你需要的,

monaco.languages.registerDocumentFormattingEditProvider('mySpecialLanguage', {
    provideDocumentFormattingEdits: function (model, options, token) {
      let returnData = [];

      for (let i = 1; i < model.getLineCount() + 1; i++) {
        const length = model.getLineContent(i).length;

        // return with text and range. 
        returnData.push({
          range: {
            startLineNumber: i,
            startColumn: length+1,
            endLineNumber: i,
            endColumn: length+1,
          },
          text: '\n',
        });
      }

      return returnData;
    }
})

相关问题