@coveord/plasma-mantine
Version:
A Plasma flavoured Mantine theme
36 lines (35 loc) • 1.08 kB
JavaScript
const format = (xml)=>{
// https://stackoverflow.com/questions/57039218/doesnt-monaco-editor-support-xml-language-by-default
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)=>{
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');
};
const register = (monaco)=>{
monaco.languages.registerDocumentFormattingEditProvider('xml', {
provideDocumentFormattingEdits: async (model)=>[
{
range: model.getFullModelRange(),
text: format(model.getValue())
}
]
});
};
export const XML = {
register
};
//# sourceMappingURL=xml.js.map