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 • 8.67 kB
Source Map (JSON)
{"version":3,"file":"haskell.mjs","sources":["../../../../../../node_modules/highlight.js/lib/languages/haskell.js"],"sourcesContent":["/*\nLanguage: Haskell\nAuthor: Jeremy Hull <sourdrums@gmail.com>\nContributors: Zena Treep <zena.treep@gmail.com>\nWebsite: https://www.haskell.org\nCategory: functional\n*/\n\nfunction haskell(hljs) {\n\n /* See:\n - https://www.haskell.org/onlinereport/lexemes.html\n - https://downloads.haskell.org/ghc/9.0.1/docs/html/users_guide/exts/binary_literals.html\n - https://downloads.haskell.org/ghc/9.0.1/docs/html/users_guide/exts/numeric_underscores.html\n - https://downloads.haskell.org/ghc/9.0.1/docs/html/users_guide/exts/hex_float_literals.html\n */\n const decimalDigits = '([0-9]_*)+';\n const hexDigits = '([0-9a-fA-F]_*)+';\n const binaryDigits = '([01]_*)+';\n const octalDigits = '([0-7]_*)+';\n const ascSymbol = '[!#$%&*+.\\\\/<=>?@\\\\\\\\^~-]';\n const uniSymbol = '(\\\\p{S}|\\\\p{P})'; // Symbol or Punctuation\n const special = '[(),;\\\\[\\\\]`|{}]';\n const symbol = `(${ascSymbol}|(?!(${special}|[_:\"']))${uniSymbol})`;\n\n const COMMENT = { variants: [\n // Double dash forms a valid comment only if it's not part of legal lexeme.\n // See: Haskell 98 report: https://www.haskell.org/onlinereport/lexemes.html\n //\n // The commented code does the job, but we can't use negative lookbehind,\n // due to poor support by Safari browser.\n // > hljs.COMMENT(`(?<!${symbol})--+(?!${symbol})`, '$'),\n // So instead, we'll add a no-markup rule before the COMMENT rule in the rules list\n // to match the problematic infix operators that contain double dash.\n hljs.COMMENT('--+', '$'),\n hljs.COMMENT(\n /\\{-/,\n /-\\}/,\n { contains: [ 'self' ] }\n )\n ] };\n\n const PRAGMA = {\n className: 'meta',\n begin: /\\{-#/,\n end: /#-\\}/\n };\n\n const PREPROCESSOR = {\n className: 'meta',\n begin: '^#',\n end: '$'\n };\n\n const CONSTRUCTOR = {\n className: 'type',\n begin: '\\\\b[A-Z][\\\\w\\']*', // TODO: other constructors (build-in, infix).\n relevance: 0\n };\n\n const LIST = {\n begin: '\\\\(',\n end: '\\\\)',\n illegal: '\"',\n contains: [\n PRAGMA,\n PREPROCESSOR,\n {\n className: 'type',\n begin: '\\\\b[A-Z][\\\\w]*(\\\\((\\\\.\\\\.|,|\\\\w+)\\\\))?'\n },\n hljs.inherit(hljs.TITLE_MODE, { begin: '[_a-z][\\\\w\\']*' }),\n COMMENT\n ]\n };\n\n const RECORD = {\n begin: /\\{/,\n end: /\\}/,\n contains: LIST.contains\n };\n\n const NUMBER = {\n className: 'number',\n relevance: 0,\n variants: [\n // decimal floating-point-literal (subsumes decimal-literal)\n { match: `\\\\b(${decimalDigits})(\\\\.(${decimalDigits}))?` + `([eE][+-]?(${decimalDigits}))?\\\\b` },\n // hexadecimal floating-point-literal (subsumes hexadecimal-literal)\n { match: `\\\\b0[xX]_*(${hexDigits})(\\\\.(${hexDigits}))?` + `([pP][+-]?(${decimalDigits}))?\\\\b` },\n // octal-literal\n { match: `\\\\b0[oO](${octalDigits})\\\\b` },\n // binary-literal\n { match: `\\\\b0[bB](${binaryDigits})\\\\b` }\n ]\n };\n\n return {\n name: 'Haskell',\n aliases: [ 'hs' ],\n keywords:\n 'let in if then else case of where do module import hiding '\n + 'qualified type data newtype deriving class instance as default '\n + 'infix infixl infixr foreign export ccall stdcall cplusplus '\n + 'jvm dotnet safe unsafe family forall mdo proc rec',\n unicodeRegex: true,\n contains: [\n // Top-level constructions.\n {\n beginKeywords: 'module',\n end: 'where',\n keywords: 'module where',\n contains: [\n LIST,\n COMMENT\n ],\n illegal: '\\\\W\\\\.|;'\n },\n {\n begin: '\\\\bimport\\\\b',\n end: '$',\n keywords: 'import qualified as hiding',\n contains: [\n LIST,\n COMMENT\n ],\n illegal: '\\\\W\\\\.|;'\n },\n {\n className: 'class',\n begin: '^(\\\\s*)?(class|instance)\\\\b',\n end: 'where',\n keywords: 'class family instance where',\n contains: [\n CONSTRUCTOR,\n LIST,\n COMMENT\n ]\n },\n {\n className: 'class',\n begin: '\\\\b(data|(new)?type)\\\\b',\n end: '$',\n keywords: 'data family type newtype deriving',\n contains: [\n PRAGMA,\n CONSTRUCTOR,\n LIST,\n RECORD,\n COMMENT\n ]\n },\n {\n beginKeywords: 'default',\n end: '$',\n contains: [\n CONSTRUCTOR,\n LIST,\n COMMENT\n ]\n },\n {\n beginKeywords: 'infix infixl infixr',\n end: '$',\n contains: [\n hljs.C_NUMBER_MODE,\n COMMENT\n ]\n },\n {\n begin: '\\\\bforeign\\\\b',\n end: '$',\n keywords: 'foreign import export ccall stdcall cplusplus jvm '\n + 'dotnet safe unsafe',\n contains: [\n CONSTRUCTOR,\n hljs.QUOTE_STRING_MODE,\n COMMENT\n ]\n },\n {\n className: 'meta',\n begin: '#!\\\\/usr\\\\/bin\\\\/env\\ runhaskell',\n end: '$'\n },\n // \"Whitespaces\".\n PRAGMA,\n PREPROCESSOR,\n\n // Literals and names.\n\n // Single characters.\n {\n scope: 'string',\n begin: /'(?=\\\\?.')/,\n end: /'/,\n contains: [\n {\n scope: 'char.escape',\n match: /\\\\./,\n },\n ]\n },\n hljs.QUOTE_STRING_MODE,\n NUMBER,\n CONSTRUCTOR,\n hljs.inherit(hljs.TITLE_MODE, { begin: '^[_a-z][\\\\w\\']*' }),\n // No markup, prevents infix operators from being recognized as comments.\n { begin: `(?!-)${symbol}--+|--+(?!-)${symbol}`},\n COMMENT,\n { // No markup, relevance booster\n begin: '->|<-' }\n ]\n };\n}\n\nmodule.exports = haskell;\n"],"names":["haskell","hljs","decimalDigits","hexDigits","binaryDigits","octalDigits","symbol","COMMENT","PRAGMA","PREPROCESSOR","CONSTRUCTOR","LIST","RECORD","NUMBER","haskell_1"],"mappings":"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","x_google_ignoreList":[0]}