UNPKG

refractor

Version:

Lightweight, robust, elegant virtual syntax highlighting using Prism

124 lines (122 loc) 3.12 kB
'use strict'; module.exports = xeora; xeora.displayName = 'xeora'; xeora.aliases = ['xeoracube']; function xeora(Prism) { (function(Prism) { Prism.languages.xeora = Prism.languages.extend('markup', { constant: { pattern: /\$(?:DomainContents|PageRenderDuration)\$/, inside: { punctuation: { pattern: /\$/ } } }, variable: { pattern: /\$@?(?:#+|[-+*~=^])?[\w.]+\$/, inside: { punctuation: { pattern: /[$.]/ }, operator: { pattern: /#+|[-+*~=^@]/ } } }, 'function-inline': { pattern: /\$F:[-\w.]+\?[-\w.]+(?:,(?:\|?(?:[-#.^+*~]*(?:[\w+][^$]*)|=(?:[\S+][^$]*)|@[-#]*(?:\w+.)[\w+.]+)?)*)?\$/, inside: { variable: { pattern: /(?:[,|])@?(?:#+|[-+*~=^])?[\w.]+/, inside: { punctuation: { pattern: /[,.|]/ }, operator: { pattern: /#+|[-+*~=^@]/ } } }, punctuation: { pattern: /\$\w:|[$:?.,|]/ } }, alias: 'function' }, 'function-block': { pattern: /\$XF:{[-\w.]+\?[-\w.]+(?:,(?:\|?(?:[-#.^+*~]*(?:[\w+][^$]*)|=(?:[\S+][^$]*)|@[-#]*(?:\w+.)[\w+.]+)?)*)?}:XF\$/, inside: { punctuation: { pattern: /[$:{}?.,|]/ } }, alias: 'function' }, 'directive-inline': { pattern: /\$\w(?:#\d+\+?)?(?:\[[-\w.]+])?:[-\/\w.]+\$/, inside: { punctuation: { pattern: /\$(?:\w:|C(?:\[|#\d))?|[:{[\]]/, inside: { tag: { pattern: /#\d/ } } } }, alias: 'function' }, 'directive-block-open': { pattern: /\$\w+:{|\$\w(?:#\d+\+?)?(?:\[[-\w.]+])?:[-\w.]+:{(![A-Z]+)?/, inside: { punctuation: { pattern: /\$(?:\w:|C(?:\[|#\d))?|[:{[\]]/, inside: { tag: { pattern: /#\d/ } } }, attribute: { pattern: /![A-Z]+$/, inside: { punctuation: { pattern: /!/ } }, alias: 'keyword' } }, alias: 'function' }, 'directive-block-separator': { pattern: /}:[-\w.]+:{/, inside: { punctuation: { pattern: /[:{}]/ } }, alias: 'function' }, 'directive-block-close': { pattern: /}:[-\w.]+\$/, inside: { punctuation: { pattern: /[:{}$]/ } }, alias: 'function' } }); Prism.languages.insertBefore( 'inside', 'punctuation', { variable: Prism.languages.xeora['function-inline'].inside['variable'] }, Prism.languages.xeora['function-block'] ); Prism.languages.xeoracube = Prism.languages.xeora; })(Prism); }