'use strict';

const php = require('./php.cjs');

// @ts-nocheck
/**
 * @import {Refractor} from '../lib/core.js'
 */
phpExtras.displayName = 'php-extras';
phpExtras.aliases = [];

/** @param {Refractor} Prism */
function phpExtras(Prism) {
  Prism.register(php);
  Prism.languages.insertBefore('php', 'variable', {
    this: {
      pattern: /\$this\b/,
      alias: 'keyword'
    },
    global:
      /\$(?:GLOBALS|HTTP_RAW_POST_DATA|_(?:COOKIE|ENV|FILES|GET|POST|REQUEST|SERVER|SESSION)|argc|argv|http_response_header|php_errormsg)\b/,
    scope: {
      pattern: /\b[\w\\]+::/,
      inside: {
        keyword: /\b(?:parent|self|static)\b/,
        punctuation: /::|\\/
      }
    }
  });
}

module.exports = phpExtras;
