{"version":3,"sources":["../../node_modules/codemirror/mode/solr/solr.js"],"names":["mod","exports","module","require","define","amd","CodeMirror","defineMode","isStringChar","isOperatorChar","isOperatorString","isNumber","word","parseFloat","toString","tokenString","quote","stream","state","escaped","next","tokenize","tokenBase","tokenOperator","operator","style","eat","tokenWord","ch","peek","match","test","startState","token","eatSpace","defineMIME"],"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,OAAQ,WAC5B,YAEA,IAAIC,GAAe,2CACnB,IAAIC,GAAiB,sBACrB,IAAIC,GAAmB,oBAEvB,SAASC,GAASC,GAChB,MAAOC,YAAWD,GAAME,aAAeF,EAGzC,QAASG,GAAYC,GACnB,MAAO,UAASC,EAAQC,GACtB,GAAIC,GAAU,MAAOC,CACrB,QAAQA,EAAOH,EAAOG,SAAW,KAAM,CACrC,GAAIA,GAAQJ,IAAUG,EAAS,KAC/BA,IAAWA,GAAWC,GAAQ,KAGhC,IAAKD,EAASD,EAAMG,SAAWC,CAC/B,OAAO,UAIX,QAASC,GAAcC,GACrB,MAAO,UAASP,EAAQC,GACtB,GAAIO,GAAQ,UACZ,IAAID,GAAY,IACdC,GAAS,gBACN,IAAID,GAAY,IACnBC,GAAS,gBACN,IAAID,GAAY,IACnBP,EAAOS,IAAI,UACR,IAAIF,GAAY,IACnBP,EAAOS,IAAI,UACR,IAAIF,GAAY,IACnBC,GAAS,QAEXP,GAAMG,SAAWC,CACjB,OAAOG,IAIX,QAASE,GAAUC,GACjB,MAAO,UAASX,EAAQC,GACtB,GAAIN,GAAOgB,CACX,QAAQA,EAAKX,EAAOY,SAAWD,EAAGE,MAAMtB,IAAiB,KAAM,CAC7DI,GAAQK,EAAOG,OAGjBF,EAAMG,SAAWC,CACjB,IAAIZ,EAAiBqB,KAAKnB,GACxB,MAAO,eACJ,IAAID,EAASC,GAChB,MAAO,aACJ,IAAIK,EAAOY,QAAU,IACxB,MAAO,YAEP,OAAO,UAIb,QAASP,GAAUL,EAAQC,GACzB,GAAIU,GAAKX,EAAOG,MAChB,IAAIQ,GAAM,IACRV,EAAMG,SAAWN,EAAYa,OAC1B,IAAInB,EAAesB,KAAKH,GAC3BV,EAAMG,SAAWE,EAAcK,OAC5B,IAAIpB,EAAauB,KAAKH,GACzBV,EAAMG,SAAWM,EAAUC,EAE7B,OAAQV,GAAMG,UAAYC,EAAaJ,EAAMG,SAASJ,EAAQC,GAAS,KAGzE,OACEc,WAAY,WACV,OACEX,SAAUC,IAIdW,MAAO,SAAShB,EAAQC,GACtB,GAAID,EAAOiB,WAAY,MAAO,KAC9B,OAAOhB,GAAMG,SAASJ,EAAQC,MAKpCZ,GAAW6B,WAAW,cAAe","file":"solr.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(\"solr\", function() {\n \"use strict\";\n\n var isStringChar = /[^\\s\\|\\!\\+\\-\\*\\?\\~\\^\\&\\:\\(\\)\\[\\]\\{\\}\\\"\\\\]/;\n var isOperatorChar = /[\\|\\!\\+\\-\\*\\?\\~\\^\\&]/;\n var isOperatorString = /^(OR|AND|NOT|TO)$/i;\n\n function isNumber(word) {\n return parseFloat(word).toString() === word;\n }\n\n function tokenString(quote) {\n return function(stream, state) {\n var escaped = false, next;\n while ((next = stream.next()) != null) {\n if (next == quote && !escaped) break;\n escaped = !escaped && next == \"\\\\\";\n }\n\n if (!escaped) state.tokenize = tokenBase;\n return \"string\";\n };\n }\n\n function tokenOperator(operator) {\n return function(stream, state) {\n var style = \"operator\";\n if (operator == \"+\")\n style += \" positive\";\n else if (operator == \"-\")\n style += \" negative\";\n else if (operator == \"|\")\n stream.eat(/\\|/);\n else if (operator == \"&\")\n stream.eat(/\\&/);\n else if (operator == \"^\")\n style += \" boost\";\n\n state.tokenize = tokenBase;\n return style;\n };\n }\n\n function tokenWord(ch) {\n return function(stream, state) {\n var word = ch;\n while ((ch = stream.peek()) && ch.match(isStringChar) != null) {\n word += stream.next();\n }\n\n state.tokenize = tokenBase;\n if (isOperatorString.test(word))\n return \"operator\";\n else if (isNumber(word))\n return \"number\";\n else if (stream.peek() == \":\")\n return \"field\";\n else\n return \"string\";\n };\n }\n\n function tokenBase(stream, state) {\n var ch = stream.next();\n if (ch == '\"')\n state.tokenize = tokenString(ch);\n else if (isOperatorChar.test(ch))\n state.tokenize = tokenOperator(ch);\n else if (isStringChar.test(ch))\n state.tokenize = tokenWord(ch);\n\n return (state.tokenize != tokenBase) ? state.tokenize(stream, state) : null;\n }\n\n return {\n startState: function() {\n return {\n tokenize: tokenBase\n };\n },\n\n token: function(stream, state) {\n if (stream.eatSpace()) return null;\n return state.tokenize(stream, state);\n }\n };\n});\n\nCodeMirror.defineMIME(\"text/x-solr\", \"solr\");\n\n});\n"]}