'(' Punctuation 'ns ' Keyword.Declaration 're-frame.loggers' Name.Variable '\n ' Text.Whitespace '(' Punctuation ':require' Literal.String.Symbol '\n ' Text.Whitespace '[' Punctuation 'clojure.set' Name.Variable ' ' Text.Whitespace ':refer' Literal.String.Symbol ' ' Text.Whitespace '[' Punctuation 'difference' Name.Variable ']' Punctuation ']' Punctuation '\n ' Text.Whitespace '#' Operator '?' Name.Variable '@' Operator '(' Punctuation ':clj' Literal.String.Symbol ' ' Text.Whitespace '[' Punctuation '[' Punctuation 'clojure.string' Name.Variable ' ' Text.Whitespace ':as' Literal.String.Symbol ' ' Text.Whitespace 'str' Name.Variable ']' Punctuation '\n ' Text.Whitespace '[' Punctuation 'clojure.tools.logging' Name.Variable ' ' Text.Whitespace ':as' Literal.String.Symbol ' ' Text.Whitespace 'log' Name.Variable ']' Punctuation ']' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text.Whitespace '#' Operator '?' Name.Variable '(' Punctuation ':clj' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'defn ' Keyword.Declaration 'log' Name.Variable ' ' Text.Whitespace '[' Punctuation 'level' Name.Variable ' ' Text.Whitespace '&' Operator ' ' Text.Whitespace 'args' Name.Variable ']' Punctuation '\n ' Text.Whitespace '(' Punctuation 'log/log' Name.Function ' ' Text.Whitespace 'level' Name.Variable ' ' Text.Whitespace '(' Punctuation 'if ' Keyword '(' Punctuation '= ' Name.Builtin '1' Literal.Number.Integer ' ' Text.Whitespace '(' Punctuation 'count ' Name.Builtin 'args' Name.Variable ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'first ' Name.Builtin 'args' Name.Variable ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'str/join' Name.Function ' ' Text.Whitespace '" "' Literal.String ' ' Text.Whitespace 'args' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n\n' Text.Whitespace ';; XXX should loggers be put in the registrar ??' Comment.Single '\n' Text.Whitespace '(' Punctuation 'def ' Keyword '^' Operator ':private' Literal.String.Symbol ' ' Text.Whitespace 'loggers' Name.Variable '\n ' Text.Whitespace '"Holds the current set of logging functions.\n By default, re-frame uses the functions provided by js/console.\n Use `set-loggers!` to change these defaults\n "' Literal.String '\n ' Text.Whitespace '(' Punctuation 'atom' Name.Function ' ' Text.Whitespace '#' Operator '?' Name.Variable '(' Punctuation ':cljs' Literal.String.Symbol ' ' Text.Whitespace '{' Punctuation ':log' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'js/console.log.bind' Name.Function ' ' Text.Whitespace 'js/console' Name.Variable ')' Punctuation '\n ' Text.Whitespace ':warn' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'js/console.warn.bind' Name.Function ' ' Text.Whitespace 'js/console' Name.Variable ')' Punctuation '\n ' Text.Whitespace ':error' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'js/console.error.bind' Name.Function ' ' Text.Whitespace 'js/console' Name.Variable ')' Punctuation '\n ' Text.Whitespace ':debug' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'js/console.debug.bind' Name.Function ' ' Text.Whitespace 'js/console' Name.Variable ')' Punctuation '\n ' Text.Whitespace ':group' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'if ' Keyword '(' Punctuation '.-group' Name.Function ' ' Text.Whitespace 'js/console' Name.Variable ')' Punctuation ' ' Text.Whitespace ';; console.group does not exist < IE 11' Comment.Single '\n ' Text.Whitespace '(' Punctuation 'js/console.group.bind' Name.Function ' ' Text.Whitespace 'js/console' Name.Variable ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'js/console.log.bind' Name.Function ' ' Text.Whitespace 'js/console' Name.Variable ')' Punctuation ')' Punctuation '\n ' Text.Whitespace ':groupEnd' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'if ' Keyword '(' Punctuation '.-groupEnd' Name.Function ' ' Text.Whitespace 'js/console' Name.Variable ')' Punctuation ' ' Text.Whitespace ';; console.groupEnd does not exist < IE 11' Comment.Single '\n ' Text.Whitespace '(' Punctuation 'js/console.groupEnd.bind' Name.Function ' ' Text.Whitespace 'js/console' Name.Variable ')' Punctuation '\n ' Text.Whitespace '#' Operator '(' Punctuation ')' Punctuation ')' Punctuation '}' Punctuation ')' Punctuation '\n ' Text.Whitespace ';; clojure versions' Comment.Single '\n ' Text.Whitespace '#' Operator '?' Name.Variable '(' Punctuation ':clj' Literal.String.Symbol ' ' Text.Whitespace '{' Punctuation ':log' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'partial ' Name.Builtin 'log' Name.Variable ' ' Text.Whitespace ':info' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace ':warn' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'partial ' Name.Builtin 'log' Name.Variable ' ' Text.Whitespace ':warn' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace ':error' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'partial ' Name.Builtin 'log' Name.Variable ' ' Text.Whitespace ':error' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace ':debug' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'partial ' Name.Builtin 'log' Name.Variable ' ' Text.Whitespace ':debug' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace ':group' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'partial ' Name.Builtin 'log' Name.Variable ' ' Text.Whitespace ':info' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace ':groupEnd' Literal.String.Symbol ' ' Text.Whitespace '#' Operator '(' Punctuation ')' Punctuation '}' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text.Whitespace '(' Punctuation 'defn ' Keyword.Declaration 'console' Name.Variable '\n ' Text.Whitespace '[' Punctuation 'level' Name.Variable ' ' Text.Whitespace '&' Operator ' ' Text.Whitespace 'args' Name.Variable ']' Punctuation '\n ' Text.Whitespace '(' Punctuation 'assert ' Name.Builtin '(' Punctuation 'contains? ' Name.Builtin '@' Operator 'loggers' Name.Variable ' ' Text.Whitespace 'level' Name.Variable ')' Punctuation ' ' Text.Whitespace '(' Punctuation 'str ' Name.Builtin '"re-frame: log called with unknown level: "' Literal.String ' ' Text.Whitespace 'level' Name.Variable ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'apply ' Name.Builtin '(' Punctuation 'level' Name.Function ' ' Text.Whitespace '@' Operator 'loggers' Name.Variable ')' Punctuation ' ' Text.Whitespace 'args' Name.Variable ')' Punctuation ')' Punctuation '\n\n\n' Text.Whitespace '(' Punctuation 'defn ' Keyword.Declaration 'set-loggers!' Name.Variable '\n ' Text.Whitespace '[' Punctuation 'new-loggers' Name.Variable ']' Punctuation '\n ' Text.Whitespace '(' Punctuation 'assert ' Name.Builtin ' ' Text.Whitespace '(' Punctuation 'empty?' Name.Function ' ' Text.Whitespace '(' Punctuation 'difference ' Name.Builtin '(' Punctuation 'set ' Name.Builtin '(' Punctuation 'keys ' Name.Builtin 'new-loggers' Name.Variable ')' Punctuation ')' Punctuation ' ' Text.Whitespace '(' Punctuation '-> ' Name.Builtin '@' Operator 'loggers' Name.Variable ' ' Text.Whitespace 'keys ' Name.Builtin 'set' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ' ' Text.Whitespace '"Unknown keys in new-loggers"' Literal.String ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'swap!' Name.Function ' ' Text.Whitespace 'loggers' Name.Variable ' ' Text.Whitespace 'merge ' Name.Builtin 'new-loggers' Name.Variable ')' Punctuation ')' Punctuation '\n\n' Text.Whitespace '(' Punctuation 'defn ' Keyword.Declaration 'get-loggers' Name.Variable '\n ' Text.Whitespace '"Get the current logging functions used by re-frame."' Literal.String '\n ' Text.Whitespace '[' Punctuation ']' Punctuation '\n ' Text.Whitespace '@' Operator 'loggers' Name.Variable ')' Punctuation '\n' Text.Whitespace