Monaco编辑器自定义格式化程序

7
我正在开发的项目中尝试使用微软的Monaco编辑器。我已经查看了文档,发现可以使用自定义代码补全和语法高亮设置自定义语言,但是我找不到任何关于如何添加自定义格式化的信息。
请问这是否可能?
1个回答

7

阅读文档:registerDocumentFormattingEditProvider

你必须创建一个新的 DocumentFormattingEditProvider,然后将其传递给 monaco.languages.registerDocumentFormattingEditProvider。例如:

const cssFormatProvider = {
    provideDocumentFormattingEdits(model, options, token) {
        return [{
            text: YourFormatter(model.getValue()) // put formatted text here
            range: model.getFullModelRange()
        }];
    }
};
const languageId = 'css';

monaco.languages.registerDocumentFormattingEditProvider(languageId, cssFormatProvider);

我尝试了那个...但出于某种原因,事件对我没有触发。 - Elior Malul
@EliorMalul:希望这符合你的情况,请参考:https://github.com/microsoft/monaco-editor/issues/2296。它只允许“html”和“json”。我在 monaco-editor 版本 0.33.0 中进行了检查。所以 CSS 无法做到这一点。 - jornathan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接