n1ql function

Mode n1ql(
  1. Highlight hljs
)

Highlight.js language definition for n1ql.

Implementation

Mode n1ql(Highlight hljs) {
  final Mode mode0 = Mode();
  final Mode mode1 = Mode();
  final Mode mode2 = Mode();
  final Mode mode3 = Mode();
  mode0.begin = r'\\[\s\S]';
  mode0.relevance = 0;
  mode1.scope = r'comment';
  mode1.begin = r'/\*';
  mode1.end = r'\*/';
  mode1.contains = [mode2, mode3];
  mode2.scope = r'doctag';
  mode2.begin = r'[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)';
  mode2.end = r'(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):';
  mode2.excludeBegin = true;
  mode2.relevance = 0;
  mode3.begin =
      r"[ ]+((?:I|a|is|so|us|to|at|if|in|it|on|[A-Za-z]+['](d|ve|re|ll|t|s|n)|[A-Za-z]+[-][a-z]+|[A-Za-z][a-z]{2,})[.]?[:]?([.][ ]|[ ])){3}";
  return Mode(
    name: r'N1QL',
    caseInsensitive: true,
    contains: [
      Mode(
        beginKeywords:
            r'build create index delete drop explain infer|10 insert merge prepare select update upsert|10',
        end: r';',
        keywords: {
          r'keyword': [
            r'all',
            r'alter',
            r'analyze',
            r'and',
            r'any',
            r'array',
            r'as',
            r'asc',
            r'begin',
            r'between',
            r'binary',
            r'boolean',
            r'break',
            r'bucket',
            r'build',
            r'by',
            r'call',
            r'case',
            r'cast',
            r'cluster',
            r'collate',
            r'collection',
            r'commit',
            r'connect',
            r'continue',
            r'correlate',
            r'cover',
            r'create',
            r'database',
            r'dataset',
            r'datastore',
            r'declare',
            r'decrement',
            r'delete',
            r'derived',
            r'desc',
            r'describe',
            r'distinct',
            r'do',
            r'drop',
            r'each',
            r'element',
            r'else',
            r'end',
            r'every',
            r'except',
            r'exclude',
            r'execute',
            r'exists',
            r'explain',
            r'fetch',
            r'first',
            r'flatten',
            r'for',
            r'force',
            r'from',
            r'function',
            r'grant',
            r'group',
            r'gsi',
            r'having',
            r'if',
            r'ignore',
            r'ilike',
            r'in',
            r'include',
            r'increment',
            r'index',
            r'infer',
            r'inline',
            r'inner',
            r'insert',
            r'intersect',
            r'into',
            r'is',
            r'join',
            r'key',
            r'keys',
            r'keyspace',
            r'known',
            r'last',
            r'left',
            r'let',
            r'letting',
            r'like',
            r'limit',
            r'lsm',
            r'map',
            r'mapping',
            r'matched',
            r'materialized',
            r'merge',
            r'minus',
            r'namespace',
            r'nest',
            r'not',
            r'number',
            r'object',
            r'offset',
            r'on',
            r'option',
            r'or',
            r'order',
            r'outer',
            r'over',
            r'parse',
            r'partition',
            r'password',
            r'path',
            r'pool',
            r'prepare',
            r'primary',
            r'private',
            r'privilege',
            r'procedure',
            r'public',
            r'raw',
            r'realm',
            r'reduce',
            r'rename',
            r'return',
            r'returning',
            r'revoke',
            r'right',
            r'role',
            r'rollback',
            r'satisfies',
            r'schema',
            r'select',
            r'self',
            r'semi',
            r'set',
            r'show',
            r'some',
            r'start',
            r'statistics',
            r'string',
            r'system',
            r'then',
            r'to',
            r'transaction',
            r'trigger',
            r'truncate',
            r'under',
            r'union',
            r'unique',
            r'unknown',
            r'unnest',
            r'unset',
            r'update',
            r'upsert',
            r'use',
            r'user',
            r'using',
            r'validate',
            r'value',
            r'valued',
            r'values',
            r'via',
            r'view',
            r'when',
            r'where',
            r'while',
            r'with',
            r'within',
            r'work',
            r'xor',
          ],
          r'literal': [r'true', r'false', r'null', r'missing|5'],
          r'built_in': [
            r'array_agg',
            r'array_append',
            r'array_concat',
            r'array_contains',
            r'array_count',
            r'array_distinct',
            r'array_ifnull',
            r'array_length',
            r'array_max',
            r'array_min',
            r'array_position',
            r'array_prepend',
            r'array_put',
            r'array_range',
            r'array_remove',
            r'array_repeat',
            r'array_replace',
            r'array_reverse',
            r'array_sort',
            r'array_sum',
            r'avg',
            r'count',
            r'max',
            r'min',
            r'sum',
            r'greatest',
            r'least',
            r'ifmissing',
            r'ifmissingornull',
            r'ifnull',
            r'missingif',
            r'nullif',
            r'ifinf',
            r'ifnan',
            r'ifnanorinf',
            r'naninf',
            r'neginfif',
            r'posinfif',
            r'clock_millis',
            r'clock_str',
            r'date_add_millis',
            r'date_add_str',
            r'date_diff_millis',
            r'date_diff_str',
            r'date_part_millis',
            r'date_part_str',
            r'date_trunc_millis',
            r'date_trunc_str',
            r'duration_to_str',
            r'millis',
            r'str_to_millis',
            r'millis_to_str',
            r'millis_to_utc',
            r'millis_to_zone_name',
            r'now_millis',
            r'now_str',
            r'str_to_duration',
            r'str_to_utc',
            r'str_to_zone_name',
            r'decode_json',
            r'encode_json',
            r'encoded_size',
            r'poly_length',
            r'base64',
            r'base64_encode',
            r'base64_decode',
            r'meta',
            r'uuid',
            r'abs',
            r'acos',
            r'asin',
            r'atan',
            r'atan2',
            r'ceil',
            r'cos',
            r'degrees',
            r'e',
            r'exp',
            r'ln',
            r'log',
            r'floor',
            r'pi',
            r'power',
            r'radians',
            r'random',
            r'round',
            r'sign',
            r'sin',
            r'sqrt',
            r'tan',
            r'trunc',
            r'object_length',
            r'object_names',
            r'object_pairs',
            r'object_inner_pairs',
            r'object_values',
            r'object_inner_values',
            r'object_add',
            r'object_put',
            r'object_remove',
            r'object_unwrap',
            r'regexp_contains',
            r'regexp_like',
            r'regexp_position',
            r'regexp_replace',
            r'contains',
            r'initcap',
            r'length',
            r'lower',
            r'ltrim',
            r'position',
            r'repeat',
            r'replace',
            r'rtrim',
            r'split',
            r'substr',
            r'title',
            r'trim',
            r'upper',
            r'isarray',
            r'isatom',
            r'isboolean',
            r'isnumber',
            r'isobject',
            r'isstring',
            r'type',
            r'toarray',
            r'toatom',
            r'toboolean',
            r'tonumber',
            r'toobject',
            r'tostring',
          ],
        },
        contains: [
          Mode(scope: r'string', begin: r"'", end: r"'", contains: [mode0]),
          Mode(scope: r'string', begin: r'"', end: r'"', contains: [mode0]),
          Mode(scope: r'symbol', begin: r'`', end: r'`', contains: [mode0]),
          Mode(
            scope: r'number',
            begin:
                r'(-?)(\b0[xX][a-fA-F0-9]+|(\b\d+(\.\d*)?|\.\d+)([eE][-+]?\d+)?)',
            relevance: 0,
          ),
          mode1,
        ],
      ),
      mode1,
    ],
  );
}