| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765 | /*--------------------------------------------------------------------------------------------- *  Copyright (c) Microsoft Corporation. All rights reserved. *  Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/define(["require", "exports"], function (require, exports) {    'use strict';    Object.defineProperty(exports, "__esModule", { value: true });    exports.conf = {        comments: {            lineComment: ';;',        },        brackets: [            ['[', ']'],            ['(', ')'],            ['{', '}']        ],        autoClosingPairs: [            { open: '[', close: ']' },            { open: '"', close: '"' },            { open: '(', close: ')' },            { open: '{', close: '}' },        ],        surroundingPairs: [            { open: '[', close: ']' },            { open: '"', close: '"' },            { open: '(', close: ')' },            { open: '{', close: '}' },        ],    };    exports.language = {        defaultToken: '',        ignoreCase: true,        tokenPostfix: '.clj',        brackets: [            { open: '[', close: ']', token: 'delimiter.square' },            { open: '(', close: ')', token: 'delimiter.parenthesis' },            { open: '{', close: '}', token: 'delimiter.curly' },        ],        constants: ['true', 'false', 'nil'],        // delimiters: /[\\\[\]\s"#'(),;@^`{}~]|$/,        numbers: /^(?:[+\-]?\d+(?:(?:N|(?:[eE][+\-]?\d+))|(?:\.?\d*(?:M|(?:[eE][+\-]?\d+))?)|\/\d+|[xX][0-9a-fA-F]+|r[0-9a-zA-Z]+)?(?=[\\\[\]\s"#'(),;@^`{}~]|$))/,        characters: /^(?:\\(?:backspace|formfeed|newline|return|space|tab|o[0-7]{3}|u[0-9A-Fa-f]{4}|x[0-9A-Fa-f]{4}|.)?(?=[\\\[\]\s"(),;@^`{}~]|$))/,        escapes: /^\\(?:["'\\bfnrt]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,        // simple-namespace := /^[^\\\/\[\]\d\s"#'(),;@^`{}~][^\\\[\]\s"(),;@^`{}~]*/        // simple-symbol    := /^(?:\/|[^\\\/\[\]\d\s"#'(),;@^`{}~][^\\\[\]\s"(),;@^`{}~]*)/        // qualified-symbol := (<simple-namespace>(<.><simple-namespace>)*</>)?<simple-symbol>        qualifiedSymbols: /^(?:(?:[^\\\/\[\]\d\s"#'(),;@^`{}~][^\\\[\]\s"(),;@^`{}~]*(?:\.[^\\\/\[\]\d\s"#'(),;@^`{}~][^\\\[\]\s"(),;@^`{}~]*)*\/)?(?:\/|[^\\\/\[\]\d\s"#'(),;@^`{}~][^\\\[\]\s"(),;@^`{}~]*)*(?=[\\\[\]\s"(),;@^`{}~]|$))/,        specialForms: [            '.',            'catch',            'def',            'do',            'if',            'monitor-enter',            'monitor-exit',            'new',            'quote',            'recur',            'set!',            'throw',            'try',            'var',        ],        coreSymbols: [            '*',            '*\'',            '*1',            '*2',            '*3',            '*agent*',            '*allow-unresolved-vars*',            '*assert*',            '*clojure-version*',            '*command-line-args*',            '*compile-files*',            '*compile-path*',            '*compiler-options*',            '*data-readers*',            '*default-data-reader-fn*',            '*e',            '*err*',            '*file*',            '*flush-on-newline*',            '*fn-loader*',            '*in*',            '*math-context*',            '*ns*',            '*out*',            '*print-dup*',            '*print-length*',            '*print-level*',            '*print-meta*',            '*print-namespace-maps*',            '*print-readably*',            '*read-eval*',            '*reader-resolver*',            '*source-path*',            '*suppress-read*',            '*unchecked-math*',            '*use-context-classloader*',            '*verbose-defrecords*',            '*warn-on-reflection*',            '+',            '+\'',            '-',            '-\'',            '->',            '->>',            '->ArrayChunk',            '->Eduction',            '->Vec',            '->VecNode',            '->VecSeq',            '-cache-protocol-fn',            '-reset-methods',            '..',            '/',            '<',            '<=',            '=',            '==',            '>',            '>=',            'EMPTY-NODE',            'Inst',            'StackTraceElement->vec',            'Throwable->map',            'accessor',            'aclone',            'add-classpath',            'add-watch',            'agent',            'agent-error',            'agent-errors',            'aget',            'alength',            'alias',            'all-ns',            'alter',            'alter-meta!',            'alter-var-root',            'amap',            'ancestors',            'and',            'any?',            'apply',            'areduce',            'array-map',            'as->',            'aset',            'aset-boolean',            'aset-byte',            'aset-char',            'aset-double',            'aset-float',            'aset-int',            'aset-long',            'aset-short',            'assert',            'assoc',            'assoc!',            'assoc-in',            'associative?',            'atom',            'await',            'await-for',            'await1',            'bases',            'bean',            'bigdec',            'bigint',            'biginteger',            'binding',            'bit-and',            'bit-and-not',            'bit-clear',            'bit-flip',            'bit-not',            'bit-or',            'bit-set',            'bit-shift-left',            'bit-shift-right',            'bit-test',            'bit-xor',            'boolean',            'boolean-array',            'boolean?',            'booleans',            'bound-fn',            'bound-fn*',            'bound?',            'bounded-count',            'butlast',            'byte',            'byte-array',            'bytes',            'bytes?',            'case',            'cast',            'cat',            'char',            'char-array',            'char-escape-string',            'char-name-string',            'char?',            'chars',            'chunk',            'chunk-append',            'chunk-buffer',            'chunk-cons',            'chunk-first',            'chunk-next',            'chunk-rest',            'chunked-seq?',            'class',            'class?',            'clear-agent-errors',            'clojure-version',            'coll?',            'comment',            'commute',            'comp',            'comparator',            'compare',            'compare-and-set!',            'compile',            'complement',            'completing',            'concat',            'cond',            'cond->',            'cond->>',            'condp',            'conj',            'conj!',            'cons',            'constantly',            'construct-proxy',            'contains?',            'count',            'counted?',            'create-ns',            'create-struct',            'cycle',            'dec',            'dec\'',            'decimal?',            'declare',            'dedupe',            'default-data-readers',            'definline',            'definterface',            'defmacro',            'defmethod',            'defmulti',            'defn',            'defn-',            'defonce',            'defprotocol',            'defrecord',            'defstruct',            'deftype',            'delay',            'delay?',            'deliver',            'denominator',            'deref',            'derive',            'descendants',            'destructure',            'disj',            'disj!',            'dissoc',            'dissoc!',            'distinct',            'distinct?',            'doall',            'dorun',            'doseq',            'dosync',            'dotimes',            'doto',            'double',            'double-array',            'double?',            'doubles',            'drop',            'drop-last',            'drop-while',            'eduction',            'empty',            'empty?',            'ensure',            'ensure-reduced',            'enumeration-seq',            'error-handler',            'error-mode',            'eval',            'even?',            'every-pred',            'every?',            'ex-data',            'ex-info',            'extend',            'extend-protocol',            'extend-type',            'extenders',            'extends?',            'false?',            'ffirst',            'file-seq',            'filter',            'filterv',            'find',            'find-keyword',            'find-ns',            'find-protocol-impl',            'find-protocol-method',            'find-var',            'first',            'flatten',            'float',            'float-array',            'float?',            'floats',            'flush',            'fn',            'fn?',            'fnext',            'fnil',            'for',            'force',            'format',            'frequencies',            'future',            'future-call',            'future-cancel',            'future-cancelled?',            'future-done?',            'future?',            'gen-class',            'gen-interface',            'gensym',            'get',            'get-in',            'get-method',            'get-proxy-class',            'get-thread-bindings',            'get-validator',            'group-by',            'halt-when',            'hash',            'hash-combine',            'hash-map',            'hash-ordered-coll',            'hash-set',            'hash-unordered-coll',            'ident?',            'identical?',            'identity',            'if-let',            'if-not',            'if-some',            'ifn?',            'import',            'in-ns',            'inc',            'inc\'',            'indexed?',            'init-proxy',            'inst-ms',            'inst-ms*',            'inst?',            'instance?',            'int',            'int-array',            'int?',            'integer?',            'interleave',            'intern',            'interpose',            'into',            'into-array',            'ints',            'io!',            'isa?',            'iterate',            'iterator-seq',            'juxt',            'keep',            'keep-indexed',            'key',            'keys',            'keyword',            'keyword?',            'last',            'lazy-cat',            'lazy-seq',            'let',            'letfn',            'line-seq',            'list',            'list*',            'list?',            'load',            'load-file',            'load-reader',            'load-string',            'loaded-libs',            'locking',            'long',            'long-array',            'longs',            'loop',            'macroexpand',            'macroexpand-1',            'make-array',            'make-hierarchy',            'map',            'map-entry?',            'map-indexed',            'map?',            'mapcat',            'mapv',            'max',            'max-key',            'memfn',            'memoize',            'merge',            'merge-with',            'meta',            'method-sig',            'methods',            'min',            'min-key',            'mix-collection-hash',            'mod',            'munge',            'name',            'namespace',            'namespace-munge',            'nat-int?',            'neg-int?',            'neg?',            'newline',            'next',            'nfirst',            'nil?',            'nnext',            'not',            'not-any?',            'not-empty',            'not-every?',            'not=',            'ns',            'ns-aliases',            'ns-imports',            'ns-interns',            'ns-map',            'ns-name',            'ns-publics',            'ns-refers',            'ns-resolve',            'ns-unalias',            'ns-unmap',            'nth',            'nthnext',            'nthrest',            'num',            'number?',            'numerator',            'object-array',            'odd?',            'or',            'parents',            'partial',            'partition',            'partition-all',            'partition-by',            'pcalls',            'peek',            'persistent!',            'pmap',            'pop',            'pop!',            'pop-thread-bindings',            'pos-int?',            'pos?',            'pr',            'pr-str',            'prefer-method',            'prefers',            'primitives-classnames',            'print',            'print-ctor',            'print-dup',            'print-method',            'print-simple',            'print-str',            'printf',            'println',            'println-str',            'prn',            'prn-str',            'promise',            'proxy',            'proxy-call-with-super',            'proxy-mappings',            'proxy-name',            'proxy-super',            'push-thread-bindings',            'pvalues',            'qualified-ident?',            'qualified-keyword?',            'qualified-symbol?',            'quot',            'rand',            'rand-int',            'rand-nth',            'random-sample',            'range',            'ratio?',            'rational?',            'rationalize',            're-find',            're-groups',            're-matcher',            're-matches',            're-pattern',            're-seq',            'read',            'read-line',            'read-string',            'reader-conditional',            'reader-conditional?',            'realized?',            'record?',            'reduce',            'reduce-kv',            'reduced',            'reduced?',            'reductions',            'ref',            'ref-history-count',            'ref-max-history',            'ref-min-history',            'ref-set',            'refer',            'refer-clojure',            'reify',            'release-pending-sends',            'rem',            'remove',            'remove-all-methods',            'remove-method',            'remove-ns',            'remove-watch',            'repeat',            'repeatedly',            'replace',            'replicate',            'require',            'reset!',            'reset-meta!',            'reset-vals!',            'resolve',            'rest',            'restart-agent',            'resultset-seq',            'reverse',            'reversible?',            'rseq',            'rsubseq',            'run!',            'satisfies?',            'second',            'select-keys',            'send',            'send-off',            'send-via',            'seq',            'seq?',            'seqable?',            'seque',            'sequence',            'sequential?',            'set',            'set-agent-send-executor!',            'set-agent-send-off-executor!',            'set-error-handler!',            'set-error-mode!',            'set-validator!',            'set?',            'short',            'short-array',            'shorts',            'shuffle',            'shutdown-agents',            'simple-ident?',            'simple-keyword?',            'simple-symbol?',            'slurp',            'some',            'some->',            'some->>',            'some-fn',            'some?',            'sort',            'sort-by',            'sorted-map',            'sorted-map-by',            'sorted-set',            'sorted-set-by',            'sorted?',            'special-symbol?',            'spit',            'split-at',            'split-with',            'str',            'string?',            'struct',            'struct-map',            'subs',            'subseq',            'subvec',            'supers',            'swap!',            'swap-vals!',            'symbol',            'symbol?',            'sync',            'tagged-literal',            'tagged-literal?',            'take',            'take-last',            'take-nth',            'take-while',            'test',            'the-ns',            'thread-bound?',            'time',            'to-array',            'to-array-2d',            'trampoline',            'transduce',            'transient',            'tree-seq',            'true?',            'type',            'unchecked-add',            'unchecked-add-int',            'unchecked-byte',            'unchecked-char',            'unchecked-dec',            'unchecked-dec-int',            'unchecked-divide-int',            'unchecked-double',            'unchecked-float',            'unchecked-inc',            'unchecked-inc-int',            'unchecked-int',            'unchecked-long',            'unchecked-multiply',            'unchecked-multiply-int',            'unchecked-negate',            'unchecked-negate-int',            'unchecked-remainder-int',            'unchecked-short',            'unchecked-subtract',            'unchecked-subtract-int',            'underive',            'unquote',            'unquote-splicing',            'unreduced',            'unsigned-bit-shift-right',            'update',            'update-in',            'update-proxy',            'uri?',            'use',            'uuid?',            'val',            'vals',            'var-get',            'var-set',            'var?',            'vary-meta',            'vec',            'vector',            'vector-of',            'vector?',            'volatile!',            'volatile?',            'vreset!',            'vswap!',            'when',            'when-first',            'when-let',            'when-not',            'when-some',            'while',            'with-bindings',            'with-bindings*',            'with-in-str',            'with-loading-context',            'with-local-vars',            'with-meta',            'with-open',            'with-out-str',            'with-precision',            'with-redefs',            'with-redefs-fn',            'xml-seq',            'zero?',            'zipmap',        ],        tokenizer: {            root: [                // whitespaces and comments                { include: '@whitespace' },                // numbers                [/@numbers/, 'number'],                // characters                [/@characters/, 'string'],                // strings                { include: '@string' },                // brackets                [/[()\[\]{}]/, '@brackets'],                // regular expressions                [/\/#"(?:\.|(?:")|[^"\n])*"\/g/, 'regexp'],                // reader macro characters                [/[#'@^`~]/, 'meta'],                // symbols                [/@qualifiedSymbols/, {                        cases: {                            '^:.+$': 'constant',                            '@specialForms': 'keyword',                            '@coreSymbols': 'keyword',                            '@constants': 'constant',                            '@default': 'identifier',                        },                    },                ],            ],            whitespace: [                [/[\s,]+/, 'white'],                [/;.*$/, 'comment'],                [/\(comment\b/, 'comment', '@comment'],            ],            comment: [                [/\(/, 'comment', '@push'],                [/\)/, 'comment', '@pop'],                [/[^()]/, 'comment'],            ],            string: [                [/"/, 'string', '@multiLineString'],            ],            multiLineString: [                [/"/, 'string', '@popall'],                [/@escapes/, 'string.escape'],                [/./, 'string']            ],        },    };});
 |