UNPKG

refractor

Version:

Lightweight, robust, elegant virtual syntax highlighting using Prism

34 lines (32 loc) 1.01 kB
// @ts-nocheck /** * @import {Refractor} from '../lib/core.js' */ lua.displayName = 'lua' lua.aliases = [] /** @param {Refractor} Prism */ export default function lua(Prism) { Prism.languages.lua = { comment: /^#!.+|--(?:\[(=*)\[[\s\S]*?\]\1\]|.*)/m, // \z may be used to skip the following space string: { pattern: /(["'])(?:(?!\1)[^\\\r\n]|\\z(?:\r\n|\s)|\\(?:\r\n|[^z]))*\1|\[(=*)\[[\s\S]*?\]\2\]/, greedy: true }, number: /\b0x[a-f\d]+(?:\.[a-f\d]*)?(?:p[+-]?\d+)?\b|\b\d+(?:\.\B|(?:\.\d*)?(?:e[+-]?\d+)?\b)|\B\.\d+(?:e[+-]?\d+)?\b/i, keyword: /\b(?:and|break|do|else|elseif|end|false|for|function|goto|if|in|local|nil|not|or|repeat|return|then|true|until|while)\b/, function: /(?!\d)\w+(?=\s*(?:[({]))/, operator: [ /[-+*%^&|#]|\/\/?|<[<=]?|>[>=]?|[=~]=?/, { // Match ".." but don't break "..." pattern: /(^|[^.])\.\.(?!\.)/, lookbehind: true } ], punctuation: /[\[\](){},;]|\.+|:+/ } }