vue-files-preview-inno
Version:
A tool for previewing files such as doc, excel, pdf, image, markdown, txt, audio, and video and so on.
1 lines • 16 kB
Source Map (JSON)
{"version":3,"file":"ruby.mjs","sources":["../../../../../../node_modules/highlight.js/lib/languages/ruby.js"],"sourcesContent":["/*\nLanguage: Ruby\nDescription: Ruby is a dynamic, open source programming language with a focus on simplicity and productivity.\nWebsite: https://www.ruby-lang.org/\nAuthor: Anton Kovalyov <anton@kovalyov.net>\nContributors: Peter Leonov <gojpeg@yandex.ru>, Vasily Polovnyov <vast@whiteants.net>, Loren Segal <lsegal@soen.ca>, Pascal Hurni <phi@ruby-reactive.org>, Cedric Sohrauer <sohrauer@googlemail.com>\nCategory: common, scripting\n*/\n\nfunction ruby(hljs) {\n const regex = hljs.regex;\n const RUBY_METHOD_RE = '([a-zA-Z_]\\\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\\\*\\\\*|[-/+%^&*~`|]|\\\\[\\\\]=?)';\n // TODO: move concepts like CAMEL_CASE into `modes.js`\n const CLASS_NAME_RE = regex.either(\n /\\b([A-Z]+[a-z0-9]+)+/,\n // ends in caps\n /\\b([A-Z]+[a-z0-9]+)+[A-Z]+/,\n )\n ;\n const CLASS_NAME_WITH_NAMESPACE_RE = regex.concat(CLASS_NAME_RE, /(::\\w+)*/);\n // very popular ruby built-ins that one might even assume\n // are actual keywords (despite that not being the case)\n const PSEUDO_KWS = [\n \"include\",\n \"extend\",\n \"prepend\",\n \"public\",\n \"private\",\n \"protected\",\n \"raise\",\n \"throw\"\n ];\n const RUBY_KEYWORDS = {\n \"variable.constant\": [\n \"__FILE__\",\n \"__LINE__\",\n \"__ENCODING__\"\n ],\n \"variable.language\": [\n \"self\",\n \"super\",\n ],\n keyword: [\n \"alias\",\n \"and\",\n \"begin\",\n \"BEGIN\",\n \"break\",\n \"case\",\n \"class\",\n \"defined\",\n \"do\",\n \"else\",\n \"elsif\",\n \"end\",\n \"END\",\n \"ensure\",\n \"for\",\n \"if\",\n \"in\",\n \"module\",\n \"next\",\n \"not\",\n \"or\",\n \"redo\",\n \"require\",\n \"rescue\",\n \"retry\",\n \"return\",\n \"then\",\n \"undef\",\n \"unless\",\n \"until\",\n \"when\",\n \"while\",\n \"yield\",\n ...PSEUDO_KWS\n ],\n built_in: [\n \"proc\",\n \"lambda\",\n \"attr_accessor\",\n \"attr_reader\",\n \"attr_writer\",\n \"define_method\",\n \"private_constant\",\n \"module_function\"\n ],\n literal: [\n \"true\",\n \"false\",\n \"nil\"\n ]\n };\n const YARDOCTAG = {\n className: 'doctag',\n begin: '@[A-Za-z]+'\n };\n const IRB_OBJECT = {\n begin: '#<',\n end: '>'\n };\n const COMMENT_MODES = [\n hljs.COMMENT(\n '#',\n '$',\n { contains: [ YARDOCTAG ] }\n ),\n hljs.COMMENT(\n '^=begin',\n '^=end',\n {\n contains: [ YARDOCTAG ],\n relevance: 10\n }\n ),\n hljs.COMMENT('^__END__', hljs.MATCH_NOTHING_RE)\n ];\n const SUBST = {\n className: 'subst',\n begin: /#\\{/,\n end: /\\}/,\n keywords: RUBY_KEYWORDS\n };\n const STRING = {\n className: 'string',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n variants: [\n {\n begin: /'/,\n end: /'/\n },\n {\n begin: /\"/,\n end: /\"/\n },\n {\n begin: /`/,\n end: /`/\n },\n {\n begin: /%[qQwWx]?\\(/,\n end: /\\)/\n },\n {\n begin: /%[qQwWx]?\\[/,\n end: /\\]/\n },\n {\n begin: /%[qQwWx]?\\{/,\n end: /\\}/\n },\n {\n begin: /%[qQwWx]?</,\n end: />/\n },\n {\n begin: /%[qQwWx]?\\//,\n end: /\\//\n },\n {\n begin: /%[qQwWx]?%/,\n end: /%/\n },\n {\n begin: /%[qQwWx]?-/,\n end: /-/\n },\n {\n begin: /%[qQwWx]?\\|/,\n end: /\\|/\n },\n // in the following expressions, \\B in the beginning suppresses recognition of ?-sequences\n // where ? is the last character of a preceding identifier, as in: `func?4`\n { begin: /\\B\\?(\\\\\\d{1,3})/ },\n { begin: /\\B\\?(\\\\x[A-Fa-f0-9]{1,2})/ },\n { begin: /\\B\\?(\\\\u\\{?[A-Fa-f0-9]{1,6}\\}?)/ },\n { begin: /\\B\\?(\\\\M-\\\\C-|\\\\M-\\\\c|\\\\c\\\\M-|\\\\M-|\\\\C-\\\\M-)[\\x20-\\x7e]/ },\n { begin: /\\B\\?\\\\(c|C-)[\\x20-\\x7e]/ },\n { begin: /\\B\\?\\\\?\\S/ },\n // heredocs\n {\n // this guard makes sure that we have an entire heredoc and not a false\n // positive (auto-detect, etc.)\n begin: regex.concat(\n /<<[-~]?'?/,\n regex.lookahead(/(\\w+)(?=\\W)[^\\n]*\\n(?:[^\\n]*\\n)*?\\s*\\1\\b/)\n ),\n contains: [\n hljs.END_SAME_AS_BEGIN({\n begin: /(\\w+)/,\n end: /(\\w+)/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ]\n })\n ]\n }\n ]\n };\n\n // Ruby syntax is underdocumented, but this grammar seems to be accurate\n // as of version 2.7.2 (confirmed with (irb and `Ripper.sexp(...)`)\n // https://docs.ruby-lang.org/en/2.7.0/doc/syntax/literals_rdoc.html#label-Numbers\n const decimal = '[1-9](_?[0-9])*|0';\n const digits = '[0-9](_?[0-9])*';\n const NUMBER = {\n className: 'number',\n relevance: 0,\n variants: [\n // decimal integer/float, optionally exponential or rational, optionally imaginary\n { begin: `\\\\b(${decimal})(\\\\.(${digits}))?([eE][+-]?(${digits})|r)?i?\\\\b` },\n\n // explicit decimal/binary/octal/hexadecimal integer,\n // optionally rational and/or imaginary\n { begin: \"\\\\b0[dD][0-9](_?[0-9])*r?i?\\\\b\" },\n { begin: \"\\\\b0[bB][0-1](_?[0-1])*r?i?\\\\b\" },\n { begin: \"\\\\b0[oO][0-7](_?[0-7])*r?i?\\\\b\" },\n { begin: \"\\\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\\\b\" },\n\n // 0-prefixed implicit octal integer, optionally rational and/or imaginary\n { begin: \"\\\\b0(_?[0-7])+r?i?\\\\b\" }\n ]\n };\n\n const PARAMS = {\n variants: [\n {\n match: /\\(\\)/,\n },\n {\n className: 'params',\n begin: /\\(/,\n end: /(?=\\))/,\n excludeBegin: true,\n endsParent: true,\n keywords: RUBY_KEYWORDS,\n }\n ]\n };\n\n const INCLUDE_EXTEND = {\n match: [\n /(include|extend)\\s+/,\n CLASS_NAME_WITH_NAMESPACE_RE\n ],\n scope: {\n 2: \"title.class\"\n },\n keywords: RUBY_KEYWORDS\n };\n\n const CLASS_DEFINITION = {\n variants: [\n {\n match: [\n /class\\s+/,\n CLASS_NAME_WITH_NAMESPACE_RE,\n /\\s+<\\s+/,\n CLASS_NAME_WITH_NAMESPACE_RE\n ]\n },\n {\n match: [\n /\\b(class|module)\\s+/,\n CLASS_NAME_WITH_NAMESPACE_RE\n ]\n }\n ],\n scope: {\n 2: \"title.class\",\n 4: \"title.class.inherited\"\n },\n keywords: RUBY_KEYWORDS\n };\n\n const UPPER_CASE_CONSTANT = {\n relevance: 0,\n match: /\\b[A-Z][A-Z_0-9]+\\b/,\n className: \"variable.constant\"\n };\n\n const METHOD_DEFINITION = {\n match: [\n /def/, /\\s+/,\n RUBY_METHOD_RE\n ],\n scope: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n contains: [\n PARAMS\n ]\n };\n\n const OBJECT_CREATION = {\n relevance: 0,\n match: [\n CLASS_NAME_WITH_NAMESPACE_RE,\n /\\.new[. (]/\n ],\n scope: {\n 1: \"title.class\"\n }\n };\n\n // CamelCase\n const CLASS_REFERENCE = {\n relevance: 0,\n match: CLASS_NAME_RE,\n scope: \"title.class\"\n };\n\n const RUBY_DEFAULT_CONTAINS = [\n STRING,\n CLASS_DEFINITION,\n INCLUDE_EXTEND,\n OBJECT_CREATION,\n UPPER_CASE_CONSTANT,\n CLASS_REFERENCE,\n METHOD_DEFINITION,\n {\n // swallow namespace qualifiers before symbols\n begin: hljs.IDENT_RE + '::' },\n {\n className: 'symbol',\n begin: hljs.UNDERSCORE_IDENT_RE + '(!|\\\\?)?:',\n relevance: 0\n },\n {\n className: 'symbol',\n begin: ':(?!\\\\s)',\n contains: [\n STRING,\n { begin: RUBY_METHOD_RE }\n ],\n relevance: 0\n },\n NUMBER,\n {\n // negative-look forward attempts to prevent false matches like:\n // @ident@ or $ident$ that might indicate this is not ruby at all\n className: \"variable\",\n begin: '(\\\\$\\\\W)|((\\\\$|@@?)(\\\\w+))(?=[^@$?])' + `(?![A-Za-z])(?![@$?'])`\n },\n {\n className: 'params',\n begin: /\\|/,\n end: /\\|/,\n excludeBegin: true,\n excludeEnd: true,\n relevance: 0, // this could be a lot of things (in other languages) other than params\n keywords: RUBY_KEYWORDS\n },\n { // regexp container\n begin: '(' + hljs.RE_STARTERS_RE + '|unless)\\\\s*',\n keywords: 'unless',\n contains: [\n {\n className: 'regexp',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n illegal: /\\n/,\n variants: [\n {\n begin: '/',\n end: '/[a-z]*'\n },\n {\n begin: /%r\\{/,\n end: /\\}[a-z]*/\n },\n {\n begin: '%r\\\\(',\n end: '\\\\)[a-z]*'\n },\n {\n begin: '%r!',\n end: '![a-z]*'\n },\n {\n begin: '%r\\\\[',\n end: '\\\\][a-z]*'\n }\n ]\n }\n ].concat(IRB_OBJECT, COMMENT_MODES),\n relevance: 0\n }\n ].concat(IRB_OBJECT, COMMENT_MODES);\n\n SUBST.contains = RUBY_DEFAULT_CONTAINS;\n PARAMS.contains = RUBY_DEFAULT_CONTAINS;\n\n // >>\n // ?>\n const SIMPLE_PROMPT = \"[>?]>\";\n // irb(main):001:0>\n const DEFAULT_PROMPT = \"[\\\\w#]+\\\\(\\\\w+\\\\):\\\\d+:\\\\d+[>*]\";\n const RVM_PROMPT = \"(\\\\w+-)?\\\\d+\\\\.\\\\d+\\\\.\\\\d+(p\\\\d+)?[^\\\\d][^>]+>\";\n\n const IRB_DEFAULT = [\n {\n begin: /^\\s*=>/,\n starts: {\n end: '$',\n contains: RUBY_DEFAULT_CONTAINS\n }\n },\n {\n className: 'meta.prompt',\n begin: '^(' + SIMPLE_PROMPT + \"|\" + DEFAULT_PROMPT + '|' + RVM_PROMPT + ')(?=[ ])',\n starts: {\n end: '$',\n keywords: RUBY_KEYWORDS,\n contains: RUBY_DEFAULT_CONTAINS\n }\n }\n ];\n\n COMMENT_MODES.unshift(IRB_OBJECT);\n\n return {\n name: 'Ruby',\n aliases: [\n 'rb',\n 'gemspec',\n 'podspec',\n 'thor',\n 'irb'\n ],\n keywords: RUBY_KEYWORDS,\n illegal: /\\/\\*/,\n contains: [ hljs.SHEBANG({ binary: \"ruby\" }) ]\n .concat(IRB_DEFAULT)\n .concat(COMMENT_MODES)\n .concat(RUBY_DEFAULT_CONTAINS)\n };\n}\n\nmodule.exports = ruby;\n"],"names":["ruby","hljs","regex","RUBY_METHOD_RE","CLASS_NAME_RE","CLASS_NAME_WITH_NAMESPACE_RE","RUBY_KEYWORDS","YARDOCTAG","IRB_OBJECT","COMMENT_MODES","SUBST","STRING","decimal","digits","NUMBER","PARAMS","RUBY_DEFAULT_CONTAINS","IRB_DEFAULT","ruby_1"],"mappings":"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","x_google_ignoreList":[0]}