我正在尝试将Monaco Editor用于XML语言,但是在呈现编辑器实例时XML字符串没有被格式化,而对于JSON则可以正常工作。
我也没有在编辑器的上下文菜单中找到“格式化文档”选项(如果使用XML语言打开的话)。 默认情况下,摩纳哥编辑器是否支持XML格式?
答案 0 :(得分:1)
似乎Monaco Editor默认不格式化xml。我的一位同事@thewahome必须编写代码来格式化xml。如果您对如何设置xml格式感兴趣,则以下代码段会有所帮助。
function formatXml(xml: any) {
const PADDING = ' '.repeat(2);
const reg = /(>)(<)(\/*)/g;
let pad = 0;
xml = xml.replace(reg, '$1\r\n$2$3');
return xml.split('\r\n').map((node: any, index: number) => {
let indent = 0;
if (node.match(/.+<\/\w[^>]*>$/)) {
indent = 0;
} else if (node.match(/^<\/\w/) && pad > 0) {
pad -= 1;
} else if (node.match(/^<\w[^>]*[^\/]>.*$/)) {
indent = 1;
} else {
indent = 0;
}
pad += indent;
return PADDING.repeat(pad - indent) + node;
}).join('\r\n');
}