1(function(a){if(typeof exports=="object"&&typeof module=="object")a(require("../../lib/codemirror"));else if(typeof define=="function"&&define.amd)define(["../../lib/codemirror"],a);else a(CodeMirror)})(function(a){"use strict";var b=function(a){return new RegExp("^(?:"+a.join("|")+")$","i")};a.defineMode("cypher",function(c){var d=function(a){var b=a.next();if(b==='"'){a.match(/.*?"/);return"string"}if(b==="'"){a.match(/.*?'/);return"string"}if(/[{}\(\),\.;\[\]]/.test(b)){h=b;return"node"}else if(b==="/"&&a.eat("/")){a.skipToEnd();return"comment"}else if(m.test(b)){a.eatWhile(m);return null}else{a.eatWhile(/[_\w\d]/);if(a.eat(":")){a.eatWhile(/[\w\d_\-]/);return"atom"}var c=a.current();if(i.test(c))return"builtin";if(j.test(c))return"def";if(k.test(c)||l.test(c))return"keyword";return"variable"}};var e=function(a,b,c){return a.context={prev:a.context,indent:a.indent,col:c,type:b}};var f=function(a){a.indent=a.context.indent;return a.context=a.context.prev};var g=c.indentUnit;var h;var i=b(["abs","acos","allShortestPaths","asin","atan","atan2","avg","ceil","coalesce","collect","cos","cot","count","degrees","e","endnode","exp","extract","filter","floor","haversin","head","id","keys","labels","last","left","length","log","log10","lower","ltrim","max","min","node","nodes","percentileCont","percentileDisc","pi","radians","rand","range","reduce","rel","relationship","relationships","replace","reverse","right","round","rtrim","shortestPath","sign","sin","size","split","sqrt","startnode","stdev","stdevp","str","substring","sum","tail","tan","timestamp","toFloat","toInt","toString","trim","type","upper"]);var j=b(["all","and","any","contains","exists","has","in","none","not","or","single","xor"]);var k=b(["as","asc","ascending","assert","by","case","commit","constraint","create","csv","cypher","delete","desc","descending","detach","distinct","drop","else","end","ends","explain","false","fieldterminator","foreach","from","headers","in","index","is","join","limit","load","match","merge","null","on","optional","order","periodic","profile","remove","return","scan","set","skip","start","starts","then","true","union","unique","unwind","using","when","where","with","call","yield"]);var l=b(["access","active","assign","all","alter","as","catalog","change","copy","create","constraint","constraints","current","database","databases","dbms","default","deny","drop","element","elements","exists","from","grant","graph","graphs","if","index","indexes","label","labels","management","match","name","names","new","node","nodes","not","of","on","or","password","populated","privileges","property","read","relationship","relationships","remove","replace","required","revoke","role","roles","set","show","start","status","stop","suspended","to","traverse","type","types","user","users","with","write"]);var m=/[*+\-<>=&|~%^]/;return{startState:function(){return{tokenize:d,context:null,indent:0,col:0}},token:function(a,b){if(a.sol()){if(b.context&&b.context.align==null){b.context.align=false}b.indent=a.indentation()}if(a.eatSpace()){return null}var c=b.tokenize(a,b);if(c!=="comment"&&b.context&&b.context.align==null&&b.context.type!=="pattern"){b.context.align=true}if(h==="("){e(b,")",a.column())}else if(h==="["){e(b,"]",a.column())}else if(h==="{"){e(b,"}",a.column())}else if(/[\]\}\)]/.test(h)){while(b.context&&b.context.type==="pattern"){f(b)}if(b.context&&h===b.context.type){f(b)}}else if(h==="."&&b.context&&b.context.type==="pattern"){f(b)}else if(/atom|string|variable/.test(c)&&b.context){if(/[\}\]]/.test(b.context.type)){e(b,"pattern",a.column())}else if(b.context.type==="pattern"&&!b.context.align){b.context.align=true;b.context.col=a.column()}}return c},indent:function(b,c){var d=c&&c.charAt(0);var e=b.context;if(/[\]\}]/.test(d)){while(e&&e.type==="pattern"){e=e.prev}}var f=e&&d===e.type;if(!e)return 0;if(e.type==="keywords")return a.commands.newlineAndIndent;if(e.align)return e.col+(f?0:1);return e.indent+(f?0:g)}}});a.modeExtensions["cypher"]={autoFormatLineBreaks:function(a){var b,c,d;var c=a.split("\n");var d=/\s+\b(return|where|order by|match|with|skip|limit|create|delete|set)\b\s/g;for(var b=0;b<c.length;b++)c[b]=c[b].replace(d," \n$1 ").trim();return c.join("\n")}};a.defineMIME("application/x-cypher-query","cypher")});
2//# sourceMappingURL=cypher.min.js.map