UNPKG

refractor

Version:

Lightweight, robust, elegant virtual syntax highlighting using Prism

45 lines (43 loc) 1.35 kB
// @ts-nocheck /** * @import {Refractor} from '../lib/core.js' */ import refractorJavadoclike from './javadoclike.js' import refractorPhp from './php.js' phpdoc.displayName = 'phpdoc' phpdoc.aliases = [] /** @param {Refractor} Prism */ export default function phpdoc(Prism) { Prism.register(refractorJavadoclike) Prism.register(refractorPhp) ;(function (Prism) { var typeExpression = /(?:\b[a-zA-Z]\w*|[|\\[\]])+/.source Prism.languages.phpdoc = Prism.languages.extend('javadoclike', { parameter: { pattern: RegExp( '(@(?:global|param|property(?:-read|-write)?|var)\\s+(?:' + typeExpression + '\\s+)?)\\$\\w+' ), lookbehind: true } }) Prism.languages.insertBefore('phpdoc', 'keyword', { 'class-name': [ { pattern: RegExp( '(@(?:global|package|param|property(?:-read|-write)?|return|subpackage|throws|var)\\s+)' + typeExpression ), lookbehind: true, inside: { keyword: /\b(?:array|bool|boolean|callback|double|false|float|int|integer|mixed|null|object|resource|self|string|true|void)\b/, punctuation: /[|\\[\]()]/ } } ] }) Prism.languages.javadoclike.addSupport('php', Prism.languages.phpdoc) })(Prism) }