Ram*_*o M 1 xml visual-studio-monaco visual-studio-code monaco-editor
我正在尝试将 Monaco Editor 用于 XML 语言,但在渲染编辑器实例时,XML 字符串没有被格式化,而它对于 JSON 工作正常。
我在编辑器的上下文菜单中也没有找到“格式化文档”选项(如果它是用 XML 语言打开的)。Monaco 编辑器默认支持 XML 格式吗?
小智 7
默认情况下,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');
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1988 次 |
| 最近记录: |