| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 | 
							- module.exports = function(hljs) {
 
-   var IDENT_RE = '[A-Za-z_][0-9A-Za-z_]*';
 
-   var KEYWORDS = {
 
-     keyword:
 
-       'if for while var new function do return void else break',
 
-     literal:
 
-       'BackSlash DoubleQuote false ForwardSlash Infinity NaN NewLine null PI SingleQuote Tab TextFormatting true undefined',
 
-     built_in:
 
-       'Abs Acos Angle Attachments Area AreaGeodetic Asin Atan Atan2 Average Bearing Boolean Buffer BufferGeodetic ' +
 
-       'Ceil Centroid Clip Console Constrain Contains Cos Count Crosses Cut Date DateAdd ' +
 
-       'DateDiff Day Decode DefaultValue Dictionary Difference Disjoint Distance DistanceGeodetic Distinct ' +
 
-       'DomainCode DomainName Equals Exp Extent Feature FeatureSet FeatureSetByAssociation FeatureSetById FeatureSetByPortalItem ' +
 
-       'FeatureSetByRelationshipName FeatureSetByTitle FeatureSetByUrl Filter First Floor Geometry GroupBy Guid HasKey Hour IIf IndexOf ' +
 
-       'Intersection Intersects IsEmpty IsNan IsSelfIntersecting Length LengthGeodetic Log Max Mean Millisecond Min Minute Month ' +
 
-       'MultiPartToSinglePart Multipoint NextSequenceValue Now Number OrderBy Overlaps Point Polygon ' +
 
-       'Polyline Portal Pow Random Relate Reverse RingIsClockWise Round Second SetGeometry Sin Sort Sqrt Stdev Sum ' +
 
-       'SymmetricDifference Tan Text Timestamp Today ToLocal Top Touches ToUTC TrackCurrentTime ' +
 
-       'TrackGeometryWindow TrackIndex TrackStartTime TrackWindow TypeOf Union UrlEncode Variance ' +
 
-       'Weekday When Within Year '
 
-   };
 
-   var EXPRESSIONS;
 
-   var SYMBOL = {
 
-     className: 'symbol',
 
-     begin: '\\$[datastore|feature|layer|map|measure|sourcefeature|sourcelayer|targetfeature|targetlayer|value|view]+'
 
-   };
 
-   var NUMBER = {
 
-     className: 'number',
 
-     variants: [
 
-       { begin: '\\b(0[bB][01]+)' },
 
-       { begin: '\\b(0[oO][0-7]+)' },
 
-       { begin: hljs.C_NUMBER_RE }
 
-     ],
 
-     relevance: 0
 
-   };
 
-   var SUBST = {
 
-     className: 'subst',
 
-     begin: '\\$\\{', end: '\\}',
 
-     keywords: KEYWORDS,
 
-     contains: []  // defined later
 
-   };
 
-   var TEMPLATE_STRING = {
 
-     className: 'string',
 
-     begin: '`', end: '`',
 
-     contains: [
 
-       hljs.BACKSLASH_ESCAPE,
 
-       SUBST
 
-     ]
 
-   };
 
-   SUBST.contains = [
 
-     hljs.APOS_STRING_MODE,
 
-     hljs.QUOTE_STRING_MODE,
 
-     TEMPLATE_STRING,
 
-     NUMBER,
 
-     hljs.REGEXP_MODE
 
-   ];
 
-   var PARAMS_CONTAINS = SUBST.contains.concat([
 
-     hljs.C_BLOCK_COMMENT_MODE,
 
-     hljs.C_LINE_COMMENT_MODE
 
-   ]);
 
-   return {
 
-     aliases: ['arcade'],
 
-     keywords: KEYWORDS,
 
-     contains: [
 
-       hljs.APOS_STRING_MODE,
 
-       hljs.QUOTE_STRING_MODE,
 
-       TEMPLATE_STRING,
 
-       hljs.C_LINE_COMMENT_MODE,
 
-       hljs.C_BLOCK_COMMENT_MODE,
 
-       SYMBOL,
 
-       NUMBER,
 
-       { // object attr container
 
-         begin: /[{,]\s*/, relevance: 0,
 
-         contains: [
 
-           {
 
-             begin: IDENT_RE + '\\s*:', returnBegin: true,
 
-             relevance: 0,
 
-             contains: [{className: 'attr', begin: IDENT_RE, relevance: 0}]
 
-           }
 
-         ]
 
-       },
 
-       { // "value" container
 
-         begin: '(' + hljs.RE_STARTERS_RE + '|\\b(return)\\b)\\s*',
 
-         keywords: 'return',
 
-         contains: [
 
-           hljs.C_LINE_COMMENT_MODE,
 
-           hljs.C_BLOCK_COMMENT_MODE,
 
-           hljs.REGEXP_MODE,
 
-           {
 
-             className: 'function',
 
-             begin: '(\\(.*?\\)|' + IDENT_RE + ')\\s*=>', returnBegin: true,
 
-             end: '\\s*=>',
 
-             contains: [
 
-               {
 
-                 className: 'params',
 
-                 variants: [
 
-                   {
 
-                     begin: IDENT_RE
 
-                   },
 
-                   {
 
-                     begin: /\(\s*\)/,
 
-                   },
 
-                   {
 
-                     begin: /\(/, end: /\)/,
 
-                     excludeBegin: true, excludeEnd: true,
 
-                     keywords: KEYWORDS,
 
-                     contains: PARAMS_CONTAINS
 
-                   }
 
-                 ]
 
-               }
 
-             ]
 
-           }
 
-         ],
 
-         relevance: 0
 
-       },
 
-       {
 
-         className: 'function',
 
-         beginKeywords: 'function', end: /\{/, excludeEnd: true,
 
-         contains: [
 
-           hljs.inherit(hljs.TITLE_MODE, {begin: IDENT_RE}),
 
-           {
 
-             className: 'params',
 
-             begin: /\(/, end: /\)/,
 
-             excludeBegin: true,
 
-             excludeEnd: true,
 
-             contains: PARAMS_CONTAINS
 
-           }
 
-         ],
 
-         illegal: /\[|%/
 
-       },
 
-       {
 
-         begin: /\$[(.]/
 
-       }
 
-     ],
 
-     illegal: /#(?!!)/
 
-   };
 
- };
 
 
  |