UNPKG

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 10.1 kB
{"version":3,"file":"elixir.mjs","sources":["../../../../../../node_modules/highlight.js/lib/languages/elixir.js"],"sourcesContent":["/*\nLanguage: Elixir\nAuthor: Josh Adams <josh@isotope11.com>\nDescription: language definition for Elixir source code files (.ex and .exs). Based on ruby language support.\nCategory: functional\nWebsite: https://elixir-lang.org\n*/\n\n/** @type LanguageFn */\nfunction elixir(hljs) {\n const regex = hljs.regex;\n const ELIXIR_IDENT_RE = '[a-zA-Z_][a-zA-Z0-9_.]*(!|\\\\?)?';\n const ELIXIR_METHOD_RE = '[a-zA-Z_]\\\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\\\*\\\\*|[-/+%^&*~`|]|\\\\[\\\\]=?';\n const KEYWORDS = [\n \"after\",\n \"alias\",\n \"and\",\n \"case\",\n \"catch\",\n \"cond\",\n \"defstruct\",\n \"defguard\",\n \"do\",\n \"else\",\n \"end\",\n \"fn\",\n \"for\",\n \"if\",\n \"import\",\n \"in\",\n \"not\",\n \"or\",\n \"quote\",\n \"raise\",\n \"receive\",\n \"require\",\n \"reraise\",\n \"rescue\",\n \"try\",\n \"unless\",\n \"unquote\",\n \"unquote_splicing\",\n \"use\",\n \"when\",\n \"with|0\"\n ];\n const LITERALS = [\n \"false\",\n \"nil\",\n \"true\"\n ];\n const KWS = {\n $pattern: ELIXIR_IDENT_RE,\n keyword: KEYWORDS,\n literal: LITERALS\n };\n const SUBST = {\n className: 'subst',\n begin: /#\\{/,\n end: /\\}/,\n keywords: KWS\n };\n const NUMBER = {\n className: 'number',\n begin: '(\\\\b0o[0-7_]+)|(\\\\b0b[01_]+)|(\\\\b0x[0-9a-fA-F_]+)|(-?\\\\b[0-9][0-9_]*(\\\\.[0-9_]+([eE][-+]?[0-9]+)?)?)',\n relevance: 0\n };\n // TODO: could be tightened\n // https://elixir-lang.readthedocs.io/en/latest/intro/18.html\n // but you also need to include closing delemeters in the escape list per\n // individual sigil mode from what I can tell,\n // ie: \\} might or might not be an escape depending on the sigil used\n const ESCAPES_RE = /\\\\[\\s\\S]/;\n // const ESCAPES_RE = /\\\\[\"'\\\\abdefnrstv0]/;\n const BACKSLASH_ESCAPE = {\n match: ESCAPES_RE,\n scope: \"char.escape\",\n relevance: 0\n };\n const SIGIL_DELIMITERS = '[/|([{<\"\\']';\n const SIGIL_DELIMITER_MODES = [\n {\n begin: /\"/,\n end: /\"/\n },\n {\n begin: /'/,\n end: /'/\n },\n {\n begin: /\\//,\n end: /\\//\n },\n {\n begin: /\\|/,\n end: /\\|/\n },\n {\n begin: /\\(/,\n end: /\\)/\n },\n {\n begin: /\\[/,\n end: /\\]/\n },\n {\n begin: /\\{/,\n end: /\\}/\n },\n {\n begin: /</,\n end: />/\n }\n ];\n const escapeSigilEnd = (end) => {\n return {\n scope: \"char.escape\",\n begin: regex.concat(/\\\\/, end),\n relevance: 0\n };\n };\n const LOWERCASE_SIGIL = {\n className: 'string',\n begin: '~[a-z]' + '(?=' + SIGIL_DELIMITERS + ')',\n contains: SIGIL_DELIMITER_MODES.map(x => hljs.inherit(x,\n { contains: [\n escapeSigilEnd(x.end),\n BACKSLASH_ESCAPE,\n SUBST\n ] }\n ))\n };\n\n const UPCASE_SIGIL = {\n className: 'string',\n begin: '~[A-Z]' + '(?=' + SIGIL_DELIMITERS + ')',\n contains: SIGIL_DELIMITER_MODES.map(x => hljs.inherit(x,\n { contains: [ escapeSigilEnd(x.end) ] }\n ))\n };\n\n const REGEX_SIGIL = {\n className: 'regex',\n variants: [\n {\n begin: '~r' + '(?=' + SIGIL_DELIMITERS + ')',\n contains: SIGIL_DELIMITER_MODES.map(x => hljs.inherit(x,\n {\n end: regex.concat(x.end, /[uismxfU]{0,7}/),\n contains: [\n escapeSigilEnd(x.end),\n BACKSLASH_ESCAPE,\n SUBST\n ]\n }\n ))\n },\n {\n begin: '~R' + '(?=' + SIGIL_DELIMITERS + ')',\n contains: SIGIL_DELIMITER_MODES.map(x => hljs.inherit(x,\n {\n end: regex.concat(x.end, /[uismxfU]{0,7}/),\n contains: [ escapeSigilEnd(x.end) ]\n })\n )\n }\n ]\n };\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: /~S\"\"\"/,\n end: /\"\"\"/,\n contains: [] // override default\n },\n {\n begin: /~S\"/,\n end: /\"/,\n contains: [] // override default\n },\n {\n begin: /~S'''/,\n end: /'''/,\n contains: [] // override default\n },\n {\n begin: /~S'/,\n end: /'/,\n contains: [] // override default\n },\n {\n begin: /'/,\n end: /'/\n },\n {\n begin: /\"/,\n end: /\"/\n }\n ]\n };\n const FUNCTION = {\n className: 'function',\n beginKeywords: 'def defp defmacro defmacrop',\n end: /\\B\\b/, // the mode is ended by the title\n contains: [\n hljs.inherit(hljs.TITLE_MODE, {\n begin: ELIXIR_IDENT_RE,\n endsParent: true\n })\n ]\n };\n const CLASS = hljs.inherit(FUNCTION, {\n className: 'class',\n beginKeywords: 'defimpl defmodule defprotocol defrecord',\n end: /\\bdo\\b|$|;/\n });\n const ELIXIR_DEFAULT_CONTAINS = [\n STRING,\n REGEX_SIGIL,\n UPCASE_SIGIL,\n LOWERCASE_SIGIL,\n hljs.HASH_COMMENT_MODE,\n CLASS,\n FUNCTION,\n { begin: '::' },\n {\n className: 'symbol',\n begin: ':(?![\\\\s:])',\n contains: [\n STRING,\n { begin: ELIXIR_METHOD_RE }\n ],\n relevance: 0\n },\n {\n className: 'symbol',\n begin: ELIXIR_IDENT_RE + ':(?!:)',\n relevance: 0\n },\n { // Usage of a module, struct, etc.\n className: 'title.class',\n begin: /(\\b[A-Z][a-zA-Z0-9_]+)/,\n relevance: 0\n },\n NUMBER,\n {\n className: 'variable',\n begin: '(\\\\$\\\\W)|((\\\\$|@@?)(\\\\w+))'\n }\n // -> has been removed, capnproto always uses this grammar construct\n ];\n SUBST.contains = ELIXIR_DEFAULT_CONTAINS;\n\n return {\n name: 'Elixir',\n aliases: [\n 'ex',\n 'exs'\n ],\n keywords: KWS,\n contains: ELIXIR_DEFAULT_CONTAINS\n };\n}\n\nmodule.exports = elixir;\n"],"names":["elixir","hljs","regex","ELIXIR_IDENT_RE","ELIXIR_METHOD_RE","KWS","SUBST","NUMBER","BACKSLASH_ESCAPE","SIGIL_DELIMITERS","SIGIL_DELIMITER_MODES","escapeSigilEnd","end","LOWERCASE_SIGIL","x","UPCASE_SIGIL","REGEX_SIGIL","STRING","FUNCTION","CLASS","ELIXIR_DEFAULT_CONTAINS","elixir_1"],"mappings":"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","x_google_ignoreList":[0]}