{"version":3,"file":"groovy.mjs","sources":["../../../../../../node_modules/highlight.js/lib/languages/groovy.js"],"sourcesContent":["/*\n Language: Groovy\n Author: Guillaume Laforge <glaforge@gmail.com>\n Description: Groovy programming language implementation inspired from Vsevolod's Java mode\n Website: https://groovy-lang.org\n Category: system\n */\n\nfunction variants(variants, obj = {}) {\n  obj.variants = variants;\n  return obj;\n}\n\nfunction groovy(hljs) {\n  const regex = hljs.regex;\n  const IDENT_RE = '[A-Za-z0-9_$]+';\n  const COMMENT = variants([\n    hljs.C_LINE_COMMENT_MODE,\n    hljs.C_BLOCK_COMMENT_MODE,\n    hljs.COMMENT(\n      '/\\\\*\\\\*',\n      '\\\\*/',\n      {\n        relevance: 0,\n        contains: [\n          {\n            // eat up @'s in emails to prevent them to be recognized as doctags\n            begin: /\\w+@/,\n            relevance: 0\n          },\n          {\n            className: 'doctag',\n            begin: '@[A-Za-z]+'\n          }\n        ]\n      }\n    )\n  ]);\n  const REGEXP = {\n    className: 'regexp',\n    begin: /~?\\/[^\\/\\n]+\\//,\n    contains: [ hljs.BACKSLASH_ESCAPE ]\n  };\n  const NUMBER = variants([\n    hljs.BINARY_NUMBER_MODE,\n    hljs.C_NUMBER_MODE\n  ]);\n  const STRING = variants([\n    {\n      begin: /\"\"\"/,\n      end: /\"\"\"/\n    },\n    {\n      begin: /'''/,\n      end: /'''/\n    },\n    {\n      begin: \"\\\\$/\",\n      end: \"/\\\\$\",\n      relevance: 10\n    },\n    hljs.APOS_STRING_MODE,\n    hljs.QUOTE_STRING_MODE\n  ],\n  { className: \"string\" }\n  );\n\n  const CLASS_DEFINITION = {\n    match: [\n      /(class|interface|trait|enum|record|extends|implements)/,\n      /\\s+/,\n      hljs.UNDERSCORE_IDENT_RE\n    ],\n    scope: {\n      1: \"keyword\",\n      3: \"title.class\",\n    }\n  };\n  const TYPES = [\n    \"byte\",\n    \"short\",\n    \"char\",\n    \"int\",\n    \"long\",\n    \"boolean\",\n    \"float\",\n    \"double\",\n    \"void\"\n  ];\n  const KEYWORDS = [\n    // groovy specific keywords\n    \"def\",\n    \"as\",\n    \"in\",\n    \"assert\",\n    \"trait\",\n    // common keywords with Java\n    \"abstract\",\n    \"static\",\n    \"volatile\",\n    \"transient\",\n    \"public\",\n    \"private\",\n    \"protected\",\n    \"synchronized\",\n    \"final\",\n    \"class\",\n    \"interface\",\n    \"enum\",\n    \"if\",\n    \"else\",\n    \"for\",\n    \"while\",\n    \"switch\",\n    \"case\",\n    \"break\",\n    \"default\",\n    \"continue\",\n    \"throw\",\n    \"throws\",\n    \"try\",\n    \"catch\",\n    \"finally\",\n    \"implements\",\n    \"extends\",\n    \"new\",\n    \"import\",\n    \"package\",\n    \"return\",\n    \"instanceof\",\n    \"var\"\n  ];\n\n  return {\n    name: 'Groovy',\n    keywords: {\n      \"variable.language\": 'this super',\n      literal: 'true false null',\n      type: TYPES,\n      keyword: KEYWORDS\n    },\n    contains: [\n      hljs.SHEBANG({\n        binary: \"groovy\",\n        relevance: 10\n      }),\n      COMMENT,\n      STRING,\n      REGEXP,\n      NUMBER,\n      CLASS_DEFINITION,\n      {\n        className: 'meta',\n        begin: '@[A-Za-z]+',\n        relevance: 0\n      },\n      {\n        // highlight map keys and named parameters as attrs\n        className: 'attr',\n        begin: IDENT_RE + '[ \\t]*:',\n        relevance: 0\n      },\n      {\n        // catch middle element of the ternary operator\n        // to avoid highlight it as a label, named parameter, or map key\n        begin: /\\?/,\n        end: /:/,\n        relevance: 0,\n        contains: [\n          COMMENT,\n          STRING,\n          REGEXP,\n          NUMBER,\n          'self'\n        ]\n      },\n      {\n        // highlight labeled statements\n        className: 'symbol',\n        begin: '^[ \\t]*' + regex.lookahead(IDENT_RE + ':'),\n        excludeBegin: true,\n        end: IDENT_RE + ':',\n        relevance: 0\n      }\n    ],\n    illegal: /#|<\\//\n  };\n}\n\nmodule.exports = groovy;\n"],"names":["variants","obj","groovy","hljs","regex","IDENT_RE","COMMENT","REGEXP","NUMBER","STRING","CLASS_DEFINITION","groovy_1"],"mappings":"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","x_google_ignoreList":[0]}