我正在尝试将 Monaco Editor 用于 XML 语言,但是在呈现编辑器实例时,XML 字符串没有被格式化,而它对 JSON 工作正常。
我也没有在编辑器的上下文菜单中找到“格式化文档”选项(如果它是用 XML 语言打开的)。Monaco 编辑器是否默认支持 XML 格式?
我正在尝试将 Monaco Editor 用于 XML 语言,但是在呈现编辑器实例时,XML 字符串没有被格式化,而它对 JSON 工作正常。
我也没有在编辑器的上下文菜单中找到“格式化文档”选项(如果它是用 XML 语言打开的)。Monaco 编辑器是否默认支持 XML 格式?
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');
}