1{"version":3,"sources":["../../node_modules/codemirror/mode/rpm/rpm.js"],"names":["mod","exports","module","require","define","amd","CodeMirror","defineMode","headerSeperator","headerLine","simpleEmail","token","stream","sol","match","next","defineMIME","arch","preamble","section","control_flow_complex","control_flow_simple","operators","startState","controlFlow","macroParameters","state","ch","peek","skipToEnd","eol"],"mappings":"CAGA,SAAUA,GACR,SAAWC,UAAW,gBAAmBC,SAAU,SACjDF,EAAIG,QAAQ,6BACT,UAAWC,SAAU,YAAcA,OAAOC,IAC7CD,QAAQ,wBAAyBJ,OAEjCA,GAAIM,cACL,SAASA,GACZ,YAEAA,GAAWC,WAAW,cAAe,WACnC,GAAIC,GAAkB,MACtB,IAAIC,GAAa,qIACjB,IAAIC,GAAc,mBAElB,QACEC,MAAO,SAASC,GACd,GAAIA,EAAOC,MAAO,CAChB,GAAID,EAAOE,MAAMN,GAAkB,CAAE,MAAO,MAC5C,GAAII,EAAOE,MAAML,GAAa,CAAE,MAAO,OAEzC,GAAIG,EAAOE,MAAMJ,GAAc,CAAE,MAAO,SACxCE,EAAOG,MACP,OAAO,SAKbT,GAAWU,WAAW,qBAAsB,cAI5CV,GAAWC,WAAW,WAAY,WAChC,GAAIU,GAAO,oHAEX,IAAIC,GAAW,kBACf,IAAIC,GAAU,0NACd,IAAIC,GAAuB,uBAC3B,IAAIC,GAAsB,gBAC1B,IAAIC,GAAY,yCAEhB,QACEC,WAAY,WACR,OACEC,YAAa,MACbC,gBAAiB,MACjBN,QAAS,QAGfR,MAAO,SAAUC,EAAQc,GACvB,GAAIC,GAAKf,EAAOgB,MAChB,IAAID,GAAM,IAAK,CAAEf,EAAOiB,WAAa,OAAO,UAE5C,GAAIjB,EAAOC,MAAO,CAChB,GAAID,EAAOE,MAAMI,GAAW,CAAE,MAAO,SACrC,GAAIN,EAAOE,MAAMK,GAAU,CAAE,MAAO,QAGtC,GAAIP,EAAOE,MAAM,UAAW,CAAE,MAAO,MACrC,GAAIF,EAAOE,MAAM,cAAe,CAAE,MAAO,MAEzC,GAAIF,EAAOE,MAAMO,GAAsB,CAAE,MAAO,UAChD,GAAIT,EAAOE,MAAMM,GAAuB,CACtCM,EAAMF,YAAc,IACpB,OAAO,UAET,GAAIE,EAAMF,YAAa,CACrB,GAAIZ,EAAOE,MAAMQ,GAAY,CAAE,MAAO,WACtC,GAAIV,EAAOE,MAAM,UAAW,CAAE,MAAO,SACrC,GAAIF,EAAOkB,MAAO,CAAEJ,EAAMF,YAAc,OAG1C,GAAIZ,EAAOE,MAAMG,GAAO,CACtB,GAAIL,EAAOkB,MAAO,CAAEJ,EAAMF,YAAc,MACxC,MAAO,SAIT,GAAIZ,EAAOE,MAAM,WAAY,CAC3B,GAAIF,EAAOE,MAAM,OAAQ,CAAEY,EAAMD,gBAAkB,KACnD,MAAO,UAET,GAAIC,EAAMD,gBAAiB,CACzB,GAAIb,EAAOE,MAAM,QAAS,CAAE,MAAO,SACnC,GAAIF,EAAOE,MAAM,OAAQ,CACvBY,EAAMD,gBAAkB,KACxB,OAAO,WAKX,GAAIb,EAAOE,MAAM,yBAA0B,CACzC,GAAIF,EAAOkB,MAAO,CAAEJ,EAAMF,YAAc,MACxC,MAAO,MAITZ,EAAOG,MACP,OAAO,SAKbT,GAAWU,WAAW,kBAAmB","file":"rpm.min.js","sourcesContent":["// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"rpm-changes\", function() {\n  var headerSeperator = /^-+$/;\n  var headerLine = /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)  ?\\d{1,2} \\d{2}:\\d{2}(:\\d{2})? [A-Z]{3,4} \\d{4} - /;\n  var simpleEmail = /^[\\w+.-]+@[\\w.-]+/;\n\n  return {\n    token: function(stream) {\n      if (stream.sol()) {\n        if (stream.match(headerSeperator)) { return 'tag'; }\n        if (stream.match(headerLine)) { return 'tag'; }\n      }\n      if (stream.match(simpleEmail)) { return 'string'; }\n      stream.next();\n      return null;\n    }\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-rpm-changes\", \"rpm-changes\");\n\n// Quick and dirty spec file highlighting\n\nCodeMirror.defineMode(\"rpm-spec\", function() {\n  var arch = /^(i386|i586|i686|x86_64|ppc64le|ppc64|ppc|ia64|s390x|s390|sparc64|sparcv9|sparc|noarch|alphaev6|alpha|hppa|mipsel)/;\n\n  var preamble = /^[a-zA-Z0-9()]+:/;\n  var section = /^%(debug_package|package|description|prep|build|install|files|clean|changelog|preinstall|preun|postinstall|postun|pretrans|posttrans|pre|post|triggerin|triggerun|verifyscript|check|triggerpostun|triggerprein|trigger)/;\n  var control_flow_complex = /^%(ifnarch|ifarch|if)/; // rpm control flow macros\n  var control_flow_simple = /^%(else|endif)/; // rpm control flow macros\n  var operators = /^(\\!|\\?|\\<\\=|\\<|\\>\\=|\\>|\\=\\=|\\&\\&|\\|\\|)/; // operators in control flow macros\n\n  return {\n    startState: function () {\n        return {\n          controlFlow: false,\n          macroParameters: false,\n          section: false\n        };\n    },\n    token: function (stream, state) {\n      var ch = stream.peek();\n      if (ch == \"#\") { stream.skipToEnd(); return \"comment\"; }\n\n      if (stream.sol()) {\n        if (stream.match(preamble)) { return \"header\"; }\n        if (stream.match(section)) { return \"atom\"; }\n      }\n\n      if (stream.match(/^\\$\\w+/)) { return \"def\"; } // Variables like '$RPM_BUILD_ROOT'\n      if (stream.match(/^\\$\\{\\w+\\}/)) { return \"def\"; } // Variables like '${RPM_BUILD_ROOT}'\n\n      if (stream.match(control_flow_simple)) { return \"keyword\"; }\n      if (stream.match(control_flow_complex)) {\n        state.controlFlow = true;\n        return \"keyword\";\n      }\n      if (state.controlFlow) {\n        if (stream.match(operators)) { return \"operator\"; }\n        if (stream.match(/^(\\d+)/)) { return \"number\"; }\n        if (stream.eol()) { state.controlFlow = false; }\n      }\n\n      if (stream.match(arch)) {\n        if (stream.eol()) { state.controlFlow = false; }\n        return \"number\";\n      }\n\n      // Macros like '%make_install' or '%attr(0775,root,root)'\n      if (stream.match(/^%[\\w]+/)) {\n        if (stream.match(/^\\(/)) { state.macroParameters = true; }\n        return \"keyword\";\n      }\n      if (state.macroParameters) {\n        if (stream.match(/^\\d+/)) { return \"number\";}\n        if (stream.match(/^\\)/)) {\n          state.macroParameters = false;\n          return \"keyword\";\n        }\n      }\n\n      // Macros like '%{defined fedora}'\n      if (stream.match(/^%\\{\\??[\\w \\-\\:\\!]+\\}/)) {\n        if (stream.eol()) { state.controlFlow = false; }\n        return \"def\";\n      }\n\n      //TODO: Include bash script sub-parser (CodeMirror supports that)\n      stream.next();\n      return null;\n    }\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-rpm-spec\", \"rpm-spec\");\n\n});\n"]}