import lua from './lua.mjs';
import markupTemplating from './markup-templating.mjs';

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

/** @param {Refractor} Prism */
function etlua(Prism) {
  Prism.register(lua);
  Prism.register(markupTemplating)
  ;(function (Prism) {
    Prism.languages.etlua = {
      delimiter: {
        pattern: /^<%[-=]?|-?%>$/,
        alias: 'punctuation'
      },
      'language-lua': {
        pattern: /[\s\S]+/,
        inside: Prism.languages.lua
      }
    };
    Prism.hooks.add('before-tokenize', function (env) {
      var pattern = /<%[\s\S]+?%>/g;
      Prism.languages['markup-templating'].buildPlaceholders(
        env,
        'etlua',
        pattern
      );
    });
    Prism.hooks.add('after-tokenize', function (env) {
      Prism.languages['markup-templating'].tokenizePlaceholders(env, 'etlua');
    });
  })(Prism);
}

export { etlua as default };
