├── .build.yml ├── .gitignore ├── CHANGELOG.md ├── LICENCE.txt ├── README.md ├── favicon ├── gorilla16.png ├── gorilla16.pxi ├── gorilla32.png └── gorilla32.pxi ├── project.clj ├── resources ├── gorilla-repl-client │ ├── css │ │ ├── codemirror-hint.css │ │ ├── gorilla.css │ │ ├── output.css │ │ ├── viewer.css │ │ └── worksheet.css │ ├── favicon.ico │ ├── js-viewer │ │ ├── bitbucket.js │ │ ├── github.js │ │ ├── main-viewer.js │ │ ├── segment-viewer.js │ │ └── worksheet-viewer.js │ ├── js │ │ ├── codeDialog.js │ │ ├── codemirrorVM.js │ │ ├── commandProcessor.js │ │ ├── completions.js │ │ ├── docViewer.js │ │ ├── eventbus.js │ │ ├── main.js │ │ ├── mathJaxViewer.js │ │ ├── outputViewer.js │ │ ├── palette.js │ │ ├── renderer.js │ │ ├── repl-ws.js │ │ ├── saveDialog.js │ │ ├── segment.js │ │ ├── utils.js │ │ ├── worksheet.js │ │ ├── worksheetParser.js │ │ └── worksheetParser.pegjs │ ├── jslib │ │ ├── codemirror-4.5 │ │ │ ├── addon │ │ │ │ ├── comment │ │ │ │ │ ├── comment.js │ │ │ │ │ └── continuecomment.js │ │ │ │ ├── dialog │ │ │ │ │ ├── dialog.css │ │ │ │ │ └── dialog.js │ │ │ │ ├── display │ │ │ │ │ ├── fullscreen.css │ │ │ │ │ ├── fullscreen.js │ │ │ │ │ ├── placeholder.js │ │ │ │ │ └── rulers.js │ │ │ │ ├── edit │ │ │ │ │ ├── closebrackets.js │ │ │ │ │ ├── closetag.js │ │ │ │ │ ├── continuelist.js │ │ │ │ │ ├── matchbrackets.js │ │ │ │ │ ├── matchtags.js │ │ │ │ │ └── trailingspace.js │ │ │ │ ├── fold │ │ │ │ │ ├── brace-fold.js │ │ │ │ │ ├── comment-fold.js │ │ │ │ │ ├── foldcode.js │ │ │ │ │ ├── foldgutter.css │ │ │ │ │ ├── foldgutter.js │ │ │ │ │ ├── indent-fold.js │ │ │ │ │ ├── markdown-fold.js │ │ │ │ │ └── xml-fold.js │ │ │ │ ├── hint │ │ │ │ │ ├── anyword-hint.js │ │ │ │ │ ├── css-hint.js │ │ │ │ │ ├── html-hint.js │ │ │ │ │ ├── javascript-hint.js │ │ │ │ │ ├── python-hint.js │ │ │ │ │ ├── show-hint.css │ │ │ │ │ ├── show-hint.js │ │ │ │ │ ├── sql-hint.js │ │ │ │ │ └── xml-hint.js │ │ │ │ ├── lint │ │ │ │ │ ├── coffeescript-lint.js │ │ │ │ │ ├── css-lint.js │ │ │ │ │ ├── javascript-lint.js │ │ │ │ │ ├── json-lint.js │ │ │ │ │ ├── lint.css │ │ │ │ │ ├── lint.js │ │ │ │ │ └── yaml-lint.js │ │ │ │ ├── merge │ │ │ │ │ ├── merge.css │ │ │ │ │ └── merge.js │ │ │ │ ├── mode │ │ │ │ │ ├── loadmode.js │ │ │ │ │ ├── multiplex.js │ │ │ │ │ ├── multiplex_test.js │ │ │ │ │ └── overlay.js │ │ │ │ ├── runmode │ │ │ │ │ ├── colorize.js │ │ │ │ │ ├── runmode-standalone.js │ │ │ │ │ ├── runmode.js │ │ │ │ │ └── runmode.node.js │ │ │ │ ├── scroll │ │ │ │ │ └── scrollpastend.js │ │ │ │ ├── search │ │ │ │ │ ├── match-highlighter.js │ │ │ │ │ ├── search.js │ │ │ │ │ └── searchcursor.js │ │ │ │ ├── selection │ │ │ │ │ ├── active-line.js │ │ │ │ │ └── mark-selection.js │ │ │ │ ├── tern │ │ │ │ │ ├── tern.css │ │ │ │ │ ├── tern.js │ │ │ │ │ └── worker.js │ │ │ │ └── wrap │ │ │ │ │ └── hardwrap.js │ │ │ ├── keymap │ │ │ │ ├── emacs.js │ │ │ │ ├── sublime.js │ │ │ │ └── vim.js │ │ │ ├── lib │ │ │ │ ├── codemirror.css │ │ │ │ └── codemirror.js │ │ │ ├── mode │ │ │ │ ├── apl │ │ │ │ │ ├── apl.js │ │ │ │ │ └── index.html │ │ │ │ ├── asterisk │ │ │ │ │ ├── asterisk.js │ │ │ │ │ └── index.html │ │ │ │ ├── clike │ │ │ │ │ ├── clike.js │ │ │ │ │ ├── index.html │ │ │ │ │ └── scala.html │ │ │ │ ├── clojure │ │ │ │ │ ├── clojure.js │ │ │ │ │ └── index.html │ │ │ │ ├── cobol │ │ │ │ │ ├── cobol.js │ │ │ │ │ └── index.html │ │ │ │ ├── coffeescript │ │ │ │ │ ├── coffeescript.js │ │ │ │ │ └── index.html │ │ │ │ ├── commonlisp │ │ │ │ │ ├── commonlisp.js │ │ │ │ │ └── index.html │ │ │ │ ├── css │ │ │ │ │ ├── css.js │ │ │ │ │ ├── index.html │ │ │ │ │ ├── less.html │ │ │ │ │ ├── less_test.js │ │ │ │ │ ├── scss.html │ │ │ │ │ ├── scss_test.js │ │ │ │ │ └── test.js │ │ │ │ ├── cypher │ │ │ │ │ ├── cypher.js │ │ │ │ │ └── index.html │ │ │ │ ├── d │ │ │ │ │ ├── d.js │ │ │ │ │ └── index.html │ │ │ │ ├── diff │ │ │ │ │ ├── diff.js │ │ │ │ │ └── index.html │ │ │ │ ├── django │ │ │ │ │ ├── django.js │ │ │ │ │ └── index.html │ │ │ │ ├── dtd │ │ │ │ │ ├── dtd.js │ │ │ │ │ └── index.html │ │ │ │ ├── dylan │ │ │ │ │ ├── dylan.js │ │ │ │ │ └── index.html │ │ │ │ ├── ecl │ │ │ │ │ ├── ecl.js │ │ │ │ │ └── index.html │ │ │ │ ├── eiffel │ │ │ │ │ ├── eiffel.js │ │ │ │ │ └── index.html │ │ │ │ ├── erlang │ │ │ │ │ ├── erlang.js │ │ │ │ │ └── index.html │ │ │ │ ├── fortran │ │ │ │ │ ├── fortran.js │ │ │ │ │ └── index.html │ │ │ │ ├── gas │ │ │ │ │ ├── gas.js │ │ │ │ │ └── index.html │ │ │ │ ├── gfm │ │ │ │ │ ├── gfm.js │ │ │ │ │ ├── index.html │ │ │ │ │ └── test.js │ │ │ │ ├── gherkin │ │ │ │ │ ├── gherkin.js │ │ │ │ │ └── index.html │ │ │ │ ├── go │ │ │ │ │ ├── go.js │ │ │ │ │ └── index.html │ │ │ │ ├── groovy │ │ │ │ │ ├── groovy.js │ │ │ │ │ └── index.html │ │ │ │ ├── haml │ │ │ │ │ ├── haml.js │ │ │ │ │ ├── index.html │ │ │ │ │ └── test.js │ │ │ │ ├── haskell │ │ │ │ │ ├── haskell.js │ │ │ │ │ └── index.html │ │ │ │ ├── haxe │ │ │ │ │ ├── haxe.js │ │ │ │ │ └── index.html │ │ │ │ ├── htmlembedded │ │ │ │ │ ├── htmlembedded.js │ │ │ │ │ └── index.html │ │ │ │ ├── htmlmixed │ │ │ │ │ ├── htmlmixed.js │ │ │ │ │ └── index.html │ │ │ │ ├── http │ │ │ │ │ ├── http.js │ │ │ │ │ └── index.html │ │ │ │ ├── index.html │ │ │ │ ├── jade │ │ │ │ │ ├── index.html │ │ │ │ │ └── jade.js │ │ │ │ ├── javascript │ │ │ │ │ ├── index.html │ │ │ │ │ ├── javascript.js │ │ │ │ │ ├── json-ld.html │ │ │ │ │ ├── test.js │ │ │ │ │ └── typescript.html │ │ │ │ ├── jinja2 │ │ │ │ │ ├── index.html │ │ │ │ │ └── jinja2.js │ │ │ │ ├── julia │ │ │ │ │ ├── index.html │ │ │ │ │ └── julia.js │ │ │ │ ├── kotlin │ │ │ │ │ ├── index.html │ │ │ │ │ └── kotlin.js │ │ │ │ ├── livescript │ │ │ │ │ ├── index.html │ │ │ │ │ └── livescript.js │ │ │ │ ├── lua │ │ │ │ │ ├── index.html │ │ │ │ │ └── lua.js │ │ │ │ ├── markdown │ │ │ │ │ ├── index.html │ │ │ │ │ ├── markdown.js │ │ │ │ │ └── test.js │ │ │ │ ├── meta.js │ │ │ │ ├── mirc │ │ │ │ │ ├── index.html │ │ │ │ │ └── mirc.js │ │ │ │ ├── mllike │ │ │ │ │ ├── index.html │ │ │ │ │ └── mllike.js │ │ │ │ ├── nginx │ │ │ │ │ ├── index.html │ │ │ │ │ └── nginx.js │ │ │ │ ├── ntriples │ │ │ │ │ ├── index.html │ │ │ │ │ └── ntriples.js │ │ │ │ ├── octave │ │ │ │ │ ├── index.html │ │ │ │ │ └── octave.js │ │ │ │ ├── pascal │ │ │ │ │ ├── index.html │ │ │ │ │ └── pascal.js │ │ │ │ ├── pegjs │ │ │ │ │ ├── index.html │ │ │ │ │ └── pegjs.js │ │ │ │ ├── perl │ │ │ │ │ ├── index.html │ │ │ │ │ └── perl.js │ │ │ │ ├── php │ │ │ │ │ ├── index.html │ │ │ │ │ ├── php.js │ │ │ │ │ └── test.js │ │ │ │ ├── pig │ │ │ │ │ ├── index.html │ │ │ │ │ └── pig.js │ │ │ │ ├── properties │ │ │ │ │ ├── index.html │ │ │ │ │ └── properties.js │ │ │ │ ├── puppet │ │ │ │ │ ├── index.html │ │ │ │ │ └── puppet.js │ │ │ │ ├── python │ │ │ │ │ ├── index.html │ │ │ │ │ └── python.js │ │ │ │ ├── q │ │ │ │ │ ├── index.html │ │ │ │ │ └── q.js │ │ │ │ ├── r │ │ │ │ │ ├── index.html │ │ │ │ │ └── r.js │ │ │ │ ├── rpm │ │ │ │ │ ├── changes │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── index.html │ │ │ │ │ └── rpm.js │ │ │ │ ├── rst │ │ │ │ │ ├── index.html │ │ │ │ │ └── rst.js │ │ │ │ ├── ruby │ │ │ │ │ ├── index.html │ │ │ │ │ ├── ruby.js │ │ │ │ │ └── test.js │ │ │ │ ├── rust │ │ │ │ │ ├── index.html │ │ │ │ │ └── rust.js │ │ │ │ ├── sass │ │ │ │ │ ├── index.html │ │ │ │ │ └── sass.js │ │ │ │ ├── scheme │ │ │ │ │ ├── index.html │ │ │ │ │ └── scheme.js │ │ │ │ ├── shell │ │ │ │ │ ├── index.html │ │ │ │ │ ├── shell.js │ │ │ │ │ └── test.js │ │ │ │ ├── sieve │ │ │ │ │ ├── index.html │ │ │ │ │ └── sieve.js │ │ │ │ ├── slim │ │ │ │ │ ├── index.html │ │ │ │ │ ├── slim.js │ │ │ │ │ └── test.js │ │ │ │ ├── smalltalk │ │ │ │ │ ├── index.html │ │ │ │ │ └── smalltalk.js │ │ │ │ ├── smarty │ │ │ │ │ ├── index.html │ │ │ │ │ └── smarty.js │ │ │ │ ├── smartymixed │ │ │ │ │ ├── index.html │ │ │ │ │ └── smartymixed.js │ │ │ │ ├── solr │ │ │ │ │ ├── index.html │ │ │ │ │ └── solr.js │ │ │ │ ├── sparql │ │ │ │ │ ├── index.html │ │ │ │ │ └── sparql.js │ │ │ │ ├── sql │ │ │ │ │ ├── index.html │ │ │ │ │ └── sql.js │ │ │ │ ├── stex │ │ │ │ │ ├── index.html │ │ │ │ │ ├── stex.js │ │ │ │ │ └── test.js │ │ │ │ ├── tcl │ │ │ │ │ ├── index.html │ │ │ │ │ └── tcl.js │ │ │ │ ├── tiddlywiki │ │ │ │ │ ├── index.html │ │ │ │ │ ├── tiddlywiki.css │ │ │ │ │ └── tiddlywiki.js │ │ │ │ ├── tiki │ │ │ │ │ ├── index.html │ │ │ │ │ ├── tiki.css │ │ │ │ │ └── tiki.js │ │ │ │ ├── toml │ │ │ │ │ ├── index.html │ │ │ │ │ └── toml.js │ │ │ │ ├── turtle │ │ │ │ │ ├── index.html │ │ │ │ │ └── turtle.js │ │ │ │ ├── vb │ │ │ │ │ ├── index.html │ │ │ │ │ └── vb.js │ │ │ │ ├── vbscript │ │ │ │ │ ├── index.html │ │ │ │ │ └── vbscript.js │ │ │ │ ├── velocity │ │ │ │ │ ├── index.html │ │ │ │ │ └── velocity.js │ │ │ │ ├── verilog │ │ │ │ │ ├── index.html │ │ │ │ │ ├── test.js │ │ │ │ │ └── verilog.js │ │ │ │ ├── xml │ │ │ │ │ ├── index.html │ │ │ │ │ ├── test.js │ │ │ │ │ └── xml.js │ │ │ │ ├── xquery │ │ │ │ │ ├── index.html │ │ │ │ │ ├── test.js │ │ │ │ │ └── xquery.js │ │ │ │ ├── yaml │ │ │ │ │ ├── index.html │ │ │ │ │ └── yaml.js │ │ │ │ └── z80 │ │ │ │ │ ├── index.html │ │ │ │ │ └── z80.js │ │ │ └── theme │ │ │ │ ├── 3024-day.css │ │ │ │ ├── 3024-night.css │ │ │ │ ├── ambiance-mobile.css │ │ │ │ ├── ambiance.css │ │ │ │ ├── base16-dark.css │ │ │ │ ├── base16-light.css │ │ │ │ ├── blackboard.css │ │ │ │ ├── cobalt.css │ │ │ │ ├── eclipse.css │ │ │ │ ├── elegant.css │ │ │ │ ├── erlang-dark.css │ │ │ │ ├── lesser-dark.css │ │ │ │ ├── mbo.css │ │ │ │ ├── mdn-like.css │ │ │ │ ├── midnight.css │ │ │ │ ├── monokai.css │ │ │ │ ├── neat.css │ │ │ │ ├── neo.css │ │ │ │ ├── night.css │ │ │ │ ├── paraiso-dark.css │ │ │ │ ├── paraiso-light.css │ │ │ │ ├── pastel-on-dark.css │ │ │ │ ├── rubyblue.css │ │ │ │ ├── solarized.css │ │ │ │ ├── the-matrix.css │ │ │ │ ├── tomorrow-night-eighties.css │ │ │ │ ├── twilight.css │ │ │ │ ├── vibrant-ink.css │ │ │ │ ├── xq-dark.css │ │ │ │ └── xq-light.css │ │ ├── d3 │ │ │ ├── d3.geo.projection.min.js │ │ │ └── d3.v3.min.js │ │ ├── jquery │ │ │ ├── jquery-1.10.2.min.js │ │ │ └── jquery-1.10.2.min.map │ │ ├── knockoutjs │ │ │ └── knockout-3.0.0.min.js │ │ ├── marked │ │ │ └── marked.min.js │ │ ├── mousetrap │ │ │ └── mousetrap.min.js │ │ ├── underscore │ │ │ └── underscore.min.js │ │ ├── uuid │ │ │ └── uuid.core.js │ │ └── vega │ │ │ └── vega.1.3.3.min.js │ ├── test.clj │ ├── view.html │ └── worksheet.html └── logback.xml └── src └── gorilla_repl ├── core.clj ├── files.clj ├── handle.clj ├── nrepl.clj ├── render_values_mw.clj ├── version.clj └── websocket_relay.clj /.build.yml: -------------------------------------------------------------------------------- 1 | image: debian/stretch 2 | packages: 3 | - leiningen 4 | repositories: 5 | buster: http://http.us.debian.org/debian testing main 6 | sources: 7 | - https://github.com/benfb/gorilla-repl.git 8 | secrets: 9 | - 7ebab768-e5e4-4c9d-ba57-ec41a72c5665 10 | tasks: 11 | - setup: | 12 | cd gorilla-repl 13 | lein test -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | /classes 3 | /checkouts 4 | pom.xml 5 | pom.xml.asc 6 | *.jar 7 | *.class 8 | /.lein-* 9 | /.nrepl-port 10 | /.gorilla-port 11 | .idea/workspace.xml 12 | .idea/replstate.xml 13 | .idea 14 | *.iml 15 | .DS_Store 16 | ws/ 17 | -------------------------------------------------------------------------------- /LICENCE.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2014-, Jony Hudson 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 4 | documentation files (the "Software"), to deal in the Software without restriction, including without limitation the 5 | rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit 6 | persons to whom the Software is furnished to do so, subject to the following conditions: 7 | 8 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the 9 | Software. 10 | 11 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE 12 | WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 13 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR 14 | OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Gorilla REPL 2 | 3 | Gorilla is a rich REPL for Clojure in the notebook style. If you're interested you should take a look at its 4 | [website](http://gorilla-repl.org). 5 | 6 | ## Contributing 7 | 8 | Contributions, in the form of comments, criticism, bug reports, or code are all very welcome :-) If you've got an idea for a big change drop me an email so we can coordinate work. 9 | 10 | **Notice: this, the original and canonical version of gorilla-repl, is quite stable and will remain as such. However, in the interest of collaborative expediency, it would be best if issues and pull requests were raised at one of the maintainers' fork [here](https://github.com/benfb/gorilla-repl).** 11 | 12 | ## Licence 13 | 14 | Gorilla is licensed to you under the MIT licence. See LICENCE.txt for details. 15 | 16 | Copyright © 2014- Jony Hudson and contributors 17 | -------------------------------------------------------------------------------- /favicon/gorilla16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JonyEpsilon/gorilla-repl/47fe408ddf28dc5b87ae198336126b2ce1722674/favicon/gorilla16.png -------------------------------------------------------------------------------- /favicon/gorilla16.pxi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JonyEpsilon/gorilla-repl/47fe408ddf28dc5b87ae198336126b2ce1722674/favicon/gorilla16.pxi -------------------------------------------------------------------------------- /favicon/gorilla32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JonyEpsilon/gorilla-repl/47fe408ddf28dc5b87ae198336126b2ce1722674/favicon/gorilla32.png -------------------------------------------------------------------------------- /favicon/gorilla32.pxi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JonyEpsilon/gorilla-repl/47fe408ddf28dc5b87ae198336126b2ce1722674/favicon/gorilla32.pxi -------------------------------------------------------------------------------- /project.clj: -------------------------------------------------------------------------------- 1 | ;;;; This file is part of gorilla-repl. Copyright (C) 2014-, Jony Hudson. 2 | ;;;; 3 | ;;;; gorilla-repl is licenced to you under the MIT licence. See the file LICENCE.txt for full details. 4 | 5 | (defproject org.clojars.benfb/gorilla-repl "0.5.0" 6 | :description "A rich REPL for Clojure in the notebook style." 7 | :url "https://github.com/benfb/gorilla-repl" 8 | :license {:name "MIT"} 9 | :dependencies ^:replace [[org.clojure/clojure "1.9.0"] 10 | [http-kit "2.3.0" :exclusions [ring/ring-core]] 11 | [ring/ring-json "0.4.0" :exclusions [org.clojure/clojure]] 12 | [cheshire "5.8.1"] 13 | [compojure "1.6.1" :exclusions [ring/ring-core ring/ring-json] ] 14 | [ch.qos.logback/logback-classic "1.2.3"] 15 | [gorilla-renderable "2.0.0"] 16 | [gorilla-plot "0.1.4" :exclusions [org.clojure/clojure]] 17 | [grimradical/clj-semver "0.2.0" :exclusions [org.clojure/clojure]] 18 | [cider/cider-nrepl "0.18.0" :exclusions [org.clojure/clojure]] 19 | [nrepl/nrepl "0.5.0-SNAPSHOT"]] 20 | :main ^:skip-aot gorilla-repl.core 21 | :target-path "target/%s" 22 | :jvm-opts ~(let [version (System/getProperty "java.version") 23 | [major _ _] (clojure.string/split version #"\.")] 24 | (if (>= (java.lang.Integer/parseInt major) 9) 25 | ["--add-modules" "java.xml.bind"] 26 | [])) 27 | :release-tasks [["vcs" "assert-committed"] 28 | ["change" "version" "leiningen.release/bump-version" "release"] 29 | ["vcs" "commit"] 30 | ["vcs" "tag" "v" "--no-sign"] 31 | ["deploy"] 32 | ["change" "version" "leiningen.release/bump-version"] 33 | ["vcs" "commit"] 34 | ["vcs" "push"]] 35 | :deploy-repositories {"releases" {:url "https://repo.clojars.org" :username :env :password :env :sign-releases false}}) 36 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/css/codemirror-hint.css: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of gorilla-repl. Copyright (C) 2014-, Jony Hudson. 3 | * 4 | * gorilla-repl is licenced to you under the MIT licence. See the file LICENCE.txt for full details. 5 | */ 6 | 7 | /* This is a modified version of CodeMirror/addon/hint/show-hint.css, which is published under the MIT licence. */ 8 | 9 | .CodeMirror-hints { 10 | position: absolute; 11 | z-index: 10; 12 | overflow: hidden; 13 | list-style: none; 14 | margin: 0; 15 | padding: 2px; 16 | background: #cccccc; 17 | font-size: 100%; 18 | font-family: monospace; 19 | max-height: 20em; 20 | overflow-y: auto; 21 | } 22 | 23 | .CodeMirror-hint { 24 | margin: 0; 25 | padding: 0 4px; 26 | max-width: 19em; 27 | overflow: hidden; 28 | white-space: pre; 29 | color: #333333; 30 | cursor: pointer; 31 | } 32 | 33 | .CodeMirror-hint-active { 34 | background: #FF29D2; 35 | color: white; 36 | } 37 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/css/output.css: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of gorilla-repl. Copyright (C) 2014-, Jony Hudson. 3 | * 4 | * gorilla-repl is licenced to you under the MIT licence. See the file LICENCE.txt for full details. 5 | */ 6 | 7 | .clj-vector {color: #1C005A} 8 | .clj-raw {color: red} 9 | .clj-nil {color: grey} 10 | .clj-lazy-seq {color: lightgreen} 11 | .clj-list {color: green} 12 | .clj-map {color: purple} 13 | .clj-set {color: brown} 14 | .clj-symbol {color: steelblue} 15 | .clj-keyword {color: blue} 16 | .clj-var {color: deeppink} 17 | .clj-atom {color: darkorange} 18 | .clj-agent {color: darkorange} 19 | .clj-ref {color: darkorange} 20 | .clj-string {color: grey} 21 | .clj-char {color: dimgrey} 22 | .clj-long {color: blue} 23 | .clj-double {color: darkgreen} 24 | .clj-bigint {color: blue; font-weight: bold} 25 | .clj-bigdecimal {color: darkgreen; font-weight: bold} 26 | .clj-ratio {color: darkblue} 27 | .clj-class {color: indigo} 28 | .clj-record {color: #5dcd03} 29 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/css/viewer.css: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of gorilla-repl. Copyright (C) 2014-, Jony Hudson. 3 | * 4 | * gorilla-repl is licenced to you under the MIT licence. See the file LICENCE.txt for full details. 5 | */ 6 | 7 | pre.static-code { 8 | margin: 0.3em; 9 | } 10 | 11 | div.header { 12 | position: fixed; 13 | top: 0; 14 | left: 0; 15 | width: 100%; 16 | height: 16px; 17 | background-color: #eeeeee; 18 | border-bottom: solid #4682b4; 19 | border-width: 1px; 20 | padding: 0.3em; 21 | font-family: "Arvo", sans-serif; 22 | font-size: 12px; 23 | color: #FF29D2; 24 | z-index: 100; 25 | } 26 | 27 | div.header a { 28 | color: #FF29D2; 29 | } 30 | 31 | div.header-left { 32 | float: left; 33 | } 34 | 35 | div.header-right { 36 | float: right; 37 | padding-right: 0.6em; 38 | } 39 | 40 | div.status { 41 | top: 30%; 42 | } 43 | 44 | div.copyBox { 45 | font-family: 'Lora', serif; 46 | font-size: 15px; 47 | position: fixed; 48 | top: 60px; 49 | left: 50%; 50 | width: 600px; 51 | margin-left: -300px; 52 | padding: 20px; 53 | border-style: solid; 54 | border-color: #888888; 55 | border-width: 1px; 56 | background-color: #F1F1F1; 57 | z-index: 100; 58 | line-height: 130%; 59 | } 60 | 61 | div.copyBox li { 62 | padding-bottom: 0.3em; 63 | } 64 | 65 | div#contents { 66 | padding-top: 12px; 67 | } 68 | 69 | div.veiled { 70 | opacity: 0.3; 71 | } 72 | 73 | div.button { 74 | padding: 0.5em; 75 | background: #4682b4; 76 | color: #ffffff; 77 | border: solid 1px #888888; 78 | width: 100px; 79 | margin: 0 auto; 80 | text-align: center; 81 | font-family: "Arvo", sans-serif; 82 | font-weight: 700; 83 | margin-top: 2em; 84 | } 85 | 86 | div.button:hover { 87 | color: #cccccc; 88 | } 89 | 90 | 91 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JonyEpsilon/gorilla-repl/47fe408ddf28dc5b87ae198336126b2ce1722674/resources/gorilla-repl-client/favicon.ico -------------------------------------------------------------------------------- /resources/gorilla-repl-client/js-viewer/bitbucket.js: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of gorilla-repl. Copyright (C) 2014-, Jony Hudson. 3 | * 4 | * gorilla-repl is licenced to you under the MIT licence. See the file LICENCE.txt for full details. 5 | */ 6 | 7 | var getFromBitbucket = function (user, repo, path, revision, callback) { 8 | $.get("https://bitbucket.org/api/1.0/repositories/" + user + "/" + repo + "/raw/" + revision + "/" + path, callback); 9 | }; 10 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/js-viewer/github.js: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of gorilla-repl. Copyright (C) 2014-, Jony Hudson. 3 | * 4 | * gorilla-repl is licenced to you under the MIT licence. See the file LICENCE.txt for full details. 5 | */ 6 | 7 | var getFromGithub = function (user, repo, path, callback) { 8 | $.get("https://api.github.com/repos/" + user + "/" + repo + "/contents/" + path).success(function (data) { 9 | callback(decodeGitHubBase64(data.content)); 10 | }); 11 | }; 12 | 13 | var getFromGist = function (id, filename, callback) { 14 | $.get("https://api.github.com/gists/" + id).success(function (data) { 15 | var file; 16 | // default to the only file 17 | if (_.size(data.files) == 1) file = data.files[Object.keys(data.files)[0]]; 18 | else file = data.files[filename]; 19 | console.log(file); 20 | callback(file.content); 21 | }); 22 | }; 23 | 24 | var decodeGitHubBase64 = function (data) { 25 | function b64_to_utf8(str) { 26 | return decodeURIComponent(escape(window.atob(str))); 27 | } 28 | return b64_to_utf8(data.replace(/\n/g, "")); 29 | }; 30 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/js-viewer/segment-viewer.js: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of gorilla-repl. Copyright (C) 2014-, Jony Hudson. 3 | * 4 | * gorilla-repl is licenced to you under the MIT licence. See the file LICENCE.txt for full details. 5 | */ 6 | 7 | // Stripped down segment viewmodels for the viewer. 8 | 9 | // a code segment contains code, and shows the results of running that code. 10 | var codeSegment = function (contents, consoleText, output) { 11 | var self = {}; 12 | self.renderTemplate = "code-segment-template"; 13 | self.worksheet = worksheet; 14 | self.id = UUID.generate(); 15 | self.type = "code"; 16 | 17 | 18 | self.errorText = ko.observable(""); 19 | if (consoleText) self.consoleText = ko.observable(consoleText); 20 | else self.consoleText = ko.observable(""); 21 | if (output) self.output = ko.observable(output); 22 | else self.output = ko.observable(""); 23 | 24 | if (contents) self.contents = ko.observable(contents); 25 | else self.contents = ko.observable(""); 26 | 27 | return self; 28 | }; 29 | 30 | // a free segment contains markdown 31 | var freeSegment = function (contents) { 32 | var self = {}; 33 | self.renderTemplate = "free-segment-template"; 34 | self.id = UUID.generate(); 35 | 36 | self.type = "free"; 37 | 38 | if (contents) self.contents = ko.observable(contents); 39 | else self.contents = ko.observable(""); 40 | 41 | self.renderedContent = ko.computed(function () { 42 | return marked(self.contents()); 43 | }).extend({throttle: 250}); 44 | 45 | return self; 46 | }; -------------------------------------------------------------------------------- /resources/gorilla-repl-client/js-viewer/worksheet-viewer.js: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of gorilla-repl. Copyright (C) 2014-, Jony Hudson. 3 | * 4 | * gorilla-repl is licenced to you under the MIT licence. See the file LICENCE.txt for full details. 5 | */ 6 | 7 | // A stripped down worksheet viewmodel for the viewer. 8 | 9 | var worksheet = function () { 10 | var self = {}; 11 | 12 | // the content of the worksheet is a list of segments. 13 | self.segments = ko.observableArray(); 14 | 15 | return self; 16 | }; -------------------------------------------------------------------------------- /resources/gorilla-repl-client/js/codeDialog.js: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of gorilla-repl. Copyright (C) 2014-, Jony Hudson. 3 | * 4 | * gorilla-repl is licenced to you under the MIT licence. See the file LICENCE.txt for full details. 5 | */ 6 | 7 | // The viewmodel for the code dialog user interface component, used for presenting code to the user (last-chance, value 8 | // copy-and-paste). 9 | 10 | var codeDialog = function () { 11 | 12 | var self = {}; 13 | 14 | self.shown = ko.observable(false); 15 | self.caption = ko.observable(""); 16 | self.message = ko.observable(""); 17 | self.okButtonText = ko.observable(""); 18 | // this is used to control/read the focus state of the text input. The text input is the only part of the palette 19 | // that will take the focus, and is focused when the dialog appears. 20 | self.focused = ko.observable(false); 21 | // the text the user has put in the box 22 | self.contents = ko.observable(""); 23 | // will be called when the dialog is hidden (either by clicking the button, clicking the overlay, 24 | // or hitting esc). 25 | self.hideCallback = null; 26 | 27 | // Show the dialog 28 | self.show = function (options) { 29 | self.caption(options.caption); 30 | self.contents(options.contents); 31 | self.message(options.message); 32 | self.okButtonText(options.okButtonText); 33 | self.hideCallback = options.hideCallback; 34 | self.shown(true); 35 | self.focused(true); 36 | }; 37 | 38 | self.hide = function () { 39 | self.shown(false); 40 | self.hideCallback(); 41 | }; 42 | 43 | // The overlay is a viewport sized div that sits behind the dialog, but over everything else. 44 | self.handleOverlayClick = function () { 45 | self.hide(); 46 | }; 47 | 48 | self.handleOKClick = function () { 49 | self.hide(); 50 | }; 51 | 52 | // This is bound to keypresses on the text input. 53 | self.handleKeyPress = function (d, event) { 54 | // esc 55 | if (event.keyCode === 27) { 56 | self.hide(); 57 | return false; 58 | } 59 | // Pass through keypresses to the default handler. 60 | return true; 61 | }; 62 | 63 | return self; 64 | }; -------------------------------------------------------------------------------- /resources/gorilla-repl-client/js/completions.js: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of gorilla-repl. Copyright (C) 2014-, Jony Hudson. 3 | * 4 | * gorilla-repl is licenced to you under the MIT licence. See the file LICENCE.txt for full details. 5 | */ 6 | 7 | var clojureCompleter = function (cm, callback, options) { 8 | // The gist of this is lifted from the auto-completion modes included with CodeMirror. 9 | var cur = cm.getCursor(); 10 | var token = cm.getTokenAt(cur); 11 | var word = token.string; 12 | var start = token.start; 13 | var end = token.end; 14 | 15 | // we send the whole editor contents as context, with __prefix__ inserted instead of the token. 16 | var doc = cm.getDoc().copy(false); 17 | doc.replaceRange("__prefix__", {line: cur.line, ch: start}, {line: cur.line, ch: end}); 18 | var context = doc.getValue(); 19 | 20 | // we need to know what namespace the user is currently working in, which we get from the evaluator module 21 | var ns = repl.currentNamespace; 22 | 23 | // TODO: this is a workaround for https://github.com/alexander-yakushev/compliment/issues/15 24 | if (word[0] != "/") { 25 | repl.getCompletions(word, ns, context, function (compl) { 26 | var completions = { 27 | list: compl, 28 | from: CodeMirror.Pos(cur.line, start), 29 | to: CodeMirror.Pos(cur.line, end) 30 | }; 31 | 32 | // We show docs for the selected completion 33 | CodeMirror.on(completions, "select", function (s) { 34 | // TODO: this is a workaround for https://github.com/alexander-yakushev/compliment/issues/15 35 | if (s != "/") { 36 | repl.getCompletionDoc(s, ns, function (docs) { 37 | if (docs != null && docs != "") 38 | eventBus.trigger("app:show-doc", docs); 39 | else eventBus.trigger("app:hide-doc"); 40 | }); 41 | } 42 | }); 43 | 44 | // When the autocomplete UI is dismissed, hide the docs 45 | CodeMirror.on(completions, "close", function () { 46 | eventBus.trigger("app:hide-doc"); 47 | }); 48 | 49 | // Show the UI 50 | callback(completions); 51 | }); 52 | } 53 | }; 54 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/js/docViewer.js: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of gorilla-repl. Copyright (C) 2014-, Jony Hudson. 3 | * 4 | * gorilla-repl is licenced to you under the MIT licence. See the file LICENCE.txt for full details. 5 | */ 6 | 7 | var docViewer = function () { 8 | 9 | var self = {}; 10 | 11 | self.shown = ko.observable(false); 12 | self.doc = ko.observable(""); 13 | self.show = function () { 14 | // OK, this is really, really nasty. Position the doc viewer next to the CM autocomplete pop-up. 15 | var rect = $(".CodeMirror-hints")[0].getBoundingClientRect(); 16 | var dv = $(".doc-viewer"); 17 | dv.css({top: rect.top, left: rect.right}); 18 | self.shown(true); 19 | }; 20 | 21 | self.hide = function () { 22 | self.shown(false); 23 | }; 24 | 25 | return self; 26 | }; -------------------------------------------------------------------------------- /resources/gorilla-repl-client/js/eventbus.js: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of gorilla-repl. Copyright (C) 2014-, Jony Hudson. 3 | * 4 | * gorilla-repl is licenced to you under the MIT licence. See the file LICENCE.txt for full details. 5 | */ 6 | 7 | // The event bus is nothing more than a jquery selection that can be used to register and trigger events. 8 | 9 | var eventBus = $({}); -------------------------------------------------------------------------------- /resources/gorilla-repl-client/js/mathJaxViewer.js: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of gorilla-repl. Copyright (C) 2014-, Jony Hudson. 3 | * 4 | * gorilla-repl is licenced to you under the MIT licence. See the file LICENCE.txt for full details. 5 | */ 6 | 7 | // This defines a very simple binding that displays its value, and on every update 8 | // asks MathJax to reprocess the output. 9 | ko.bindingHandlers.mathJaxViewer = { 10 | init: function (element, valueAccessor, allBindingsAccessor, viewModel) { 11 | // make sure the element has a unique ID 12 | $(element).attr('id', 'mathjax-viewer-' + UUID.generate()); 13 | }, 14 | update: function (element, valueAccessor, allBindingsAccessor, viewModel) { 15 | var value = ko.utils.unwrapObservable(valueAccessor()()); 16 | $(element).html(value); 17 | // MathJax might not be available. 18 | if ("MathJax" in window) MathJax.Hub.Queue(["Typeset", MathJax.Hub, $(element).attr('id')]); 19 | } 20 | }; 21 | 22 | // configure the MathJax library - we always guard for the case where MathJax was not loaded as it non-essential, and 23 | // not bundled with the Gorilla distribution. 24 | if ("MathJax" in window) { 25 | MathJax.Hub.Config({ 26 | messageStyle: "none", 27 | showProcessingMessages: false, 28 | skipStartupTypeset: true, 29 | tex2jax: { 30 | inlineMath: [ 31 | ['@@', '@@'] 32 | ] 33 | } 34 | }); 35 | MathJax.Hub.Configured(); 36 | } 37 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/js/outputViewer.js: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of gorilla-repl. Copyright (C) 2014-, Jony Hudson. 3 | * 4 | * gorilla-repl is licenced to you under the MIT licence. See the file LICENCE.txt for full details. 5 | */ 6 | 7 | // Takes the REPL output and views it. The real work is handed over to the renderer, the outputViewer handles parsing 8 | // the data, errors etc. 9 | 10 | ko.bindingHandlers.outputViewer = { 11 | init: function (element, valueAccessor, allBindingsAccessor, viewModel) { 12 | }, 13 | update: function (element, valueAccessor, allBindingsAccessor, viewModel) { 14 | 15 | // get the value to display 16 | var value = ko.utils.unwrapObservable(valueAccessor()()); 17 | 18 | // to handle any errors, we need to know the ID of the segment that this output belongs to 19 | var segID = allBindingsAccessor.get('segmentID'); 20 | // the errorHandler will route error messages to the segment's error div 21 | var errorHandler = function (msg) { 22 | eventBus.trigger("output:output-error", {segmentID: segID, error: msg}); 23 | }; 24 | 25 | if (value !== "") { 26 | try { 27 | var parsedValue = JSON.parse(value); 28 | // The renderer does all of the real work 29 | render(parsedValue, element, errorHandler); 30 | } catch (e) { 31 | // as a fallback, we display the value directly if we can't parse it as json. This also at least 32 | // allows worksheets that pre-date the new renderer to load, even if they look ugly! 33 | $(element).text(value); 34 | } 35 | } 36 | else $(element).html(""); 37 | } 38 | }; -------------------------------------------------------------------------------- /resources/gorilla-repl-client/js/saveDialog.js: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of gorilla-repl. Copyright (C) 2014-, Jony Hudson. 3 | * 4 | * gorilla-repl is licenced to you under the MIT licence. See the file LICENCE.txt for full details. 5 | */ 6 | 7 | // The viewmodel for the save dialog user interface component. 8 | 9 | var saveDialog = function (callback) { 10 | 11 | var self = {}; 12 | 13 | self.shown = ko.observable(false); 14 | // this is used to control/read the focus state of the text input. The text input is the only part of the palette 15 | // that will take the focus, and is focused when the dialog appears. 16 | self.focused = ko.observable(false); 17 | // the text the user has put in the box 18 | self.filename = ko.observable(".clj"); 19 | // the checkbox that determines to save with markup 20 | self.markup = ko.observable(true); 21 | 22 | // Show the dialog 23 | self.show = function ( existingFilename ) { 24 | existingFilename && (self.filename(existingFilename)); 25 | self.markup(); 26 | self.shown(true); 27 | self.focused(true); 28 | }; 29 | 30 | self.hide = function () { 31 | self.shown(false); 32 | }; 33 | 34 | // The overlay is a viewport sized div that sits behind the dialog, but over everything else. 35 | self.handleOverlayClick = function () { 36 | self.hide(); 37 | }; 38 | 39 | self.handleCancelClick = function () { 40 | self.hide(); 41 | }; 42 | 43 | self.handleOKClick = function () { 44 | self.hide(); 45 | callback(self.filename(), self.markup()); 46 | }; 47 | 48 | // This is bound to keypresses on the text input. 49 | self.handleKeyPress = function (d, event) { 50 | // esc 51 | if (event.keyCode === 27) { 52 | self.hide(); 53 | return false; 54 | } 55 | // enter 56 | if (event.keyCode === 13) { 57 | self.hide(); 58 | callback(self.filename(), self.markup()); 59 | return false; 60 | } 61 | // Pass through keypresses to the default handler. 62 | return true; 63 | }; 64 | 65 | return self; 66 | }; 67 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/js/worksheetParser.pegjs: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of gorilla-repl. Copyright (C) 2014-, Jony Hudson. 3 | * 4 | * gorilla-repl is licenced to you under the MIT licence. See the file LICENCE.txt for full details. 5 | */ 6 | 7 | // The parser takes a worksheet persisted as a marked up clojure file and returns a list of segments. 8 | 9 | worksheet = worksheetHeader seg:segmentWithBlankLine* {return seg;} 10 | 11 | lineEnd = "\n" / "\r\n" 12 | 13 | worksheetHeader = ";; gorilla-repl.fileformat = 1" lineEnd lineEnd 14 | 15 | segmentWithBlankLine = seg:segment lineEnd? {return seg;} 16 | 17 | segment = freeSegment / codeSegment 18 | 19 | freeSegment = freeSegmentOpenTag content:stringNoDelim? freeSegmentCloseTag 20 | {return freeSegment(unmakeClojureComment(content));} 21 | 22 | freeSegmentOpenTag = ";; **" lineEnd 23 | 24 | freeSegmentCloseTag = lineEnd ";; **" lineEnd 25 | 26 | codeSegment = codeSegmentOpenTag content:stringNoDelim? codeSegmentCloseTag cs:consoleSection? out:outputSection? 27 | {return codeSegment(content, unmakeClojureComment(cs), unmakeClojureComment(out));} 28 | 29 | codeSegmentOpenTag = ";; @@" lineEnd 30 | 31 | codeSegmentCloseTag = lineEnd ";; @@" lineEnd 32 | 33 | outputSection = outputOpenTag output:stringNoDelim outputCloseTag {return output;} 34 | 35 | outputOpenTag = ";; =>" lineEnd 36 | 37 | outputCloseTag = lineEnd ";; <=" lineEnd 38 | 39 | consoleSection = consoleOpenTag cs:stringNoDelim consoleCloseTag {return cs;} 40 | 41 | consoleOpenTag = ";; ->" lineEnd 42 | 43 | consoleCloseTag = lineEnd ";; <-" lineEnd 44 | 45 | stringNoDelim = cs:noDelimChar+ {return cs.join("");} 46 | 47 | delimiter = freeSegmentOpenTag / freeSegmentCloseTag /codeSegmentOpenTag / codeSegmentCloseTag / outputOpenTag / 48 | outputCloseTag / consoleOpenTag / consoleCloseTag 49 | 50 | noDelimChar = !delimiter c:. {return c;} -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/addon/dialog/dialog.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-dialog { 2 | position: absolute; 3 | left: 0; right: 0; 4 | background: white; 5 | z-index: 15; 6 | padding: .1em .8em; 7 | overflow: hidden; 8 | color: #333; 9 | } 10 | 11 | .CodeMirror-dialog-top { 12 | border-bottom: 1px solid #eee; 13 | top: 0; 14 | } 15 | 16 | .CodeMirror-dialog-bottom { 17 | border-top: 1px solid #eee; 18 | bottom: 0; 19 | } 20 | 21 | .CodeMirror-dialog input { 22 | border: none; 23 | outline: none; 24 | background: transparent; 25 | width: 20em; 26 | color: inherit; 27 | font-family: monospace; 28 | } 29 | 30 | .CodeMirror-dialog button { 31 | font-size: 70%; 32 | } 33 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/addon/display/fullscreen.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-fullscreen { 2 | position: fixed; 3 | top: 0; left: 0; right: 0; bottom: 0; 4 | height: auto; 5 | z-index: 9; 6 | } 7 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/addon/display/fullscreen.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | "use strict"; 13 | 14 | CodeMirror.defineOption("fullScreen", false, function(cm, val, old) { 15 | if (old == CodeMirror.Init) old = false; 16 | if (!old == !val) return; 17 | if (val) setFullscreen(cm); 18 | else setNormal(cm); 19 | }); 20 | 21 | function setFullscreen(cm) { 22 | var wrap = cm.getWrapperElement(); 23 | cm.state.fullScreenRestore = {scrollTop: window.pageYOffset, scrollLeft: window.pageXOffset, 24 | width: wrap.style.width, height: wrap.style.height}; 25 | wrap.style.width = ""; 26 | wrap.style.height = "auto"; 27 | wrap.className += " CodeMirror-fullscreen"; 28 | document.documentElement.style.overflow = "hidden"; 29 | cm.refresh(); 30 | } 31 | 32 | function setNormal(cm) { 33 | var wrap = cm.getWrapperElement(); 34 | wrap.className = wrap.className.replace(/\s*CodeMirror-fullscreen\b/, ""); 35 | document.documentElement.style.overflow = ""; 36 | var info = cm.state.fullScreenRestore; 37 | wrap.style.width = info.width; wrap.style.height = info.height; 38 | window.scrollTo(info.scrollLeft, info.scrollTop); 39 | cm.refresh(); 40 | } 41 | }); 42 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/addon/display/placeholder.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | CodeMirror.defineOption("placeholder", "", function(cm, val, old) { 13 | var prev = old && old != CodeMirror.Init; 14 | if (val && !prev) { 15 | cm.on("blur", onBlur); 16 | cm.on("change", onChange); 17 | onChange(cm); 18 | } else if (!val && prev) { 19 | cm.off("blur", onBlur); 20 | cm.off("change", onChange); 21 | clearPlaceholder(cm); 22 | var wrapper = cm.getWrapperElement(); 23 | wrapper.className = wrapper.className.replace(" CodeMirror-empty", ""); 24 | } 25 | 26 | if (val && !cm.hasFocus()) onBlur(cm); 27 | }); 28 | 29 | function clearPlaceholder(cm) { 30 | if (cm.state.placeholder) { 31 | cm.state.placeholder.parentNode.removeChild(cm.state.placeholder); 32 | cm.state.placeholder = null; 33 | } 34 | } 35 | function setPlaceholder(cm) { 36 | clearPlaceholder(cm); 37 | var elt = cm.state.placeholder = document.createElement("pre"); 38 | elt.style.cssText = "height: 0; overflow: visible"; 39 | elt.className = "CodeMirror-placeholder"; 40 | elt.appendChild(document.createTextNode(cm.getOption("placeholder"))); 41 | cm.display.lineSpace.insertBefore(elt, cm.display.lineSpace.firstChild); 42 | } 43 | 44 | function onBlur(cm) { 45 | if (isEmpty(cm)) setPlaceholder(cm); 46 | } 47 | function onChange(cm) { 48 | var wrapper = cm.getWrapperElement(), empty = isEmpty(cm); 49 | wrapper.className = wrapper.className.replace(" CodeMirror-empty", "") + (empty ? " CodeMirror-empty" : ""); 50 | 51 | if (empty) setPlaceholder(cm); 52 | else clearPlaceholder(cm); 53 | } 54 | 55 | function isEmpty(cm) { 56 | return (cm.lineCount() === 1) && (cm.getLine(0) === ""); 57 | } 58 | }); 59 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/addon/display/rulers.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | "use strict"; 13 | 14 | CodeMirror.defineOption("rulers", false, function(cm, val, old) { 15 | if (old && old != CodeMirror.Init) { 16 | clearRulers(cm); 17 | cm.off("refresh", refreshRulers); 18 | } 19 | if (val && val.length) { 20 | setRulers(cm); 21 | cm.on("refresh", refreshRulers); 22 | } 23 | }); 24 | 25 | function clearRulers(cm) { 26 | for (var i = cm.display.lineSpace.childNodes.length - 1; i >= 0; i--) { 27 | var node = cm.display.lineSpace.childNodes[i]; 28 | if (/(^|\s)CodeMirror-ruler($|\s)/.test(node.className)) 29 | node.parentNode.removeChild(node); 30 | } 31 | } 32 | 33 | function setRulers(cm) { 34 | var val = cm.getOption("rulers"); 35 | var cw = cm.defaultCharWidth(); 36 | var left = cm.charCoords(CodeMirror.Pos(cm.firstLine(), 0), "div").left; 37 | var minH = cm.display.scroller.offsetHeight + 30; 38 | for (var i = 0; i < val.length; i++) { 39 | var elt = document.createElement("div"); 40 | elt.className = "CodeMirror-ruler"; 41 | var col, cls = null, conf = val[i]; 42 | if (typeof conf == "number") { 43 | col = conf; 44 | } else { 45 | col = conf.column; 46 | if (conf.className) elt.className += " " + conf.className; 47 | if (conf.color) elt.style.borderColor = conf.color; 48 | if (conf.lineStyle) elt.style.borderLeftStyle = conf.lineStyle; 49 | if (conf.width) elt.style.borderLeftWidth = conf.width; 50 | cls = val[i].className; 51 | } 52 | elt.style.left = (left + col * cw) + "px"; 53 | elt.style.top = "-50px"; 54 | elt.style.bottom = "-20px"; 55 | elt.style.minHeight = minH + "px"; 56 | cm.display.lineSpace.insertBefore(elt, cm.display.cursorDiv); 57 | } 58 | } 59 | 60 | function refreshRulers(cm) { 61 | clearRulers(cm); 62 | setRulers(cm); 63 | } 64 | }); 65 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/addon/edit/continuelist.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | "use strict"; 13 | 14 | var listRE = /^(\s*)([*+-]|(\d+)\.)(\s+)/, 15 | unorderedBullets = "*+-"; 16 | 17 | CodeMirror.commands.newlineAndIndentContinueMarkdownList = function(cm) { 18 | if (cm.getOption("disableInput")) return CodeMirror.Pass; 19 | var ranges = cm.listSelections(), replacements = []; 20 | for (var i = 0; i < ranges.length; i++) { 21 | var pos = ranges[i].head, match; 22 | var inList = cm.getStateAfter(pos.line).list !== false; 23 | 24 | if (!ranges[i].empty() || !inList || !(match = cm.getLine(pos.line).match(listRE))) { 25 | cm.execCommand("newlineAndIndent"); 26 | return; 27 | } 28 | var indent = match[1], after = match[4]; 29 | var bullet = unorderedBullets.indexOf(match[2]) >= 0 30 | ? match[2] 31 | : (parseInt(match[3], 10) + 1) + "."; 32 | 33 | replacements[i] = "\n" + indent + bullet + after; 34 | } 35 | 36 | cm.replaceSelections(replacements); 37 | }; 38 | }); 39 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/addon/edit/matchtags.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror"), require("../fold/xml-fold")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror", "../fold/xml-fold"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | "use strict"; 13 | 14 | CodeMirror.defineOption("matchTags", false, function(cm, val, old) { 15 | if (old && old != CodeMirror.Init) { 16 | cm.off("cursorActivity", doMatchTags); 17 | cm.off("viewportChange", maybeUpdateMatch); 18 | clear(cm); 19 | } 20 | if (val) { 21 | cm.state.matchBothTags = typeof val == "object" && val.bothTags; 22 | cm.on("cursorActivity", doMatchTags); 23 | cm.on("viewportChange", maybeUpdateMatch); 24 | doMatchTags(cm); 25 | } 26 | }); 27 | 28 | function clear(cm) { 29 | if (cm.state.tagHit) cm.state.tagHit.clear(); 30 | if (cm.state.tagOther) cm.state.tagOther.clear(); 31 | cm.state.tagHit = cm.state.tagOther = null; 32 | } 33 | 34 | function doMatchTags(cm) { 35 | cm.state.failedTagMatch = false; 36 | cm.operation(function() { 37 | clear(cm); 38 | if (cm.somethingSelected()) return; 39 | var cur = cm.getCursor(), range = cm.getViewport(); 40 | range.from = Math.min(range.from, cur.line); range.to = Math.max(cur.line + 1, range.to); 41 | var match = CodeMirror.findMatchingTag(cm, cur, range); 42 | if (!match) return; 43 | if (cm.state.matchBothTags) { 44 | var hit = match.at == "open" ? match.open : match.close; 45 | if (hit) cm.state.tagHit = cm.markText(hit.from, hit.to, {className: "CodeMirror-matchingtag"}); 46 | } 47 | var other = match.at == "close" ? match.open : match.close; 48 | if (other) 49 | cm.state.tagOther = cm.markText(other.from, other.to, {className: "CodeMirror-matchingtag"}); 50 | else 51 | cm.state.failedTagMatch = true; 52 | }); 53 | } 54 | 55 | function maybeUpdateMatch(cm) { 56 | if (cm.state.failedTagMatch) doMatchTags(cm); 57 | } 58 | 59 | CodeMirror.commands.toMatchingTag = function(cm) { 60 | var found = CodeMirror.findMatchingTag(cm, cm.getCursor()); 61 | if (found) { 62 | var other = found.at == "close" ? found.open : found.close; 63 | if (other) cm.extendSelection(other.to, other.from); 64 | } 65 | }; 66 | }); 67 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/addon/edit/trailingspace.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | CodeMirror.defineOption("showTrailingSpace", false, function(cm, val, prev) { 13 | if (prev == CodeMirror.Init) prev = false; 14 | if (prev && !val) 15 | cm.removeOverlay("trailingspace"); 16 | else if (!prev && val) 17 | cm.addOverlay({ 18 | token: function(stream) { 19 | for (var l = stream.string.length, i = l; i && /\s/.test(stream.string.charAt(i - 1)); --i) {} 20 | if (i > stream.pos) { stream.pos = i; return null; } 21 | stream.pos = l; 22 | return "trailingspace"; 23 | }, 24 | name: "trailingspace" 25 | }); 26 | }); 27 | }); 28 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/addon/fold/comment-fold.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | "use strict"; 13 | 14 | CodeMirror.registerGlobalHelper("fold", "comment", function(mode) { 15 | return mode.blockCommentStart && mode.blockCommentEnd; 16 | }, function(cm, start) { 17 | var mode = cm.getModeAt(start), startToken = mode.blockCommentStart, endToken = mode.blockCommentEnd; 18 | if (!startToken || !endToken) return; 19 | var line = start.line, lineText = cm.getLine(line); 20 | 21 | var startCh; 22 | for (var at = start.ch, pass = 0;;) { 23 | var found = at <= 0 ? -1 : lineText.lastIndexOf(startToken, at - 1); 24 | if (found == -1) { 25 | if (pass == 1) return; 26 | pass = 1; 27 | at = lineText.length; 28 | continue; 29 | } 30 | if (pass == 1 && found < start.ch) return; 31 | if (/comment/.test(cm.getTokenTypeAt(CodeMirror.Pos(line, found + 1)))) { 32 | startCh = found + startToken.length; 33 | break; 34 | } 35 | at = found - 1; 36 | } 37 | 38 | var depth = 1, lastLine = cm.lastLine(), end, endCh; 39 | outer: for (var i = line; i <= lastLine; ++i) { 40 | var text = cm.getLine(i), pos = i == line ? startCh : 0; 41 | for (;;) { 42 | var nextOpen = text.indexOf(startToken, pos), nextClose = text.indexOf(endToken, pos); 43 | if (nextOpen < 0) nextOpen = text.length; 44 | if (nextClose < 0) nextClose = text.length; 45 | pos = Math.min(nextOpen, nextClose); 46 | if (pos == text.length) break; 47 | if (pos == nextOpen) ++depth; 48 | else if (!--depth) { end = i; endCh = pos; break outer; } 49 | ++pos; 50 | } 51 | } 52 | if (end == null || line == end && endCh == startCh) return; 53 | return {from: CodeMirror.Pos(line, startCh), 54 | to: CodeMirror.Pos(end, endCh)}; 55 | }); 56 | 57 | }); 58 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/addon/fold/foldgutter.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-foldmarker { 2 | color: blue; 3 | text-shadow: #b9f 1px 1px 2px, #b9f -1px -1px 2px, #b9f 1px -1px 2px, #b9f -1px 1px 2px; 4 | font-family: arial; 5 | line-height: .3; 6 | cursor: pointer; 7 | } 8 | .CodeMirror-foldgutter { 9 | width: .7em; 10 | } 11 | .CodeMirror-foldgutter-open, 12 | .CodeMirror-foldgutter-folded { 13 | cursor: pointer; 14 | } 15 | .CodeMirror-foldgutter-open:after { 16 | content: "\25BE"; 17 | } 18 | .CodeMirror-foldgutter-folded:after { 19 | content: "\25B8"; 20 | } 21 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/addon/fold/indent-fold.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | "use strict"; 13 | 14 | CodeMirror.registerHelper("fold", "indent", function(cm, start) { 15 | var tabSize = cm.getOption("tabSize"), firstLine = cm.getLine(start.line); 16 | if (!/\S/.test(firstLine)) return; 17 | var getIndent = function(line) { 18 | return CodeMirror.countColumn(line, null, tabSize); 19 | }; 20 | var myIndent = getIndent(firstLine); 21 | var lastLineInFold = null; 22 | // Go through lines until we find a line that definitely doesn't belong in 23 | // the block we're folding, or to the end. 24 | for (var i = start.line + 1, end = cm.lastLine(); i <= end; ++i) { 25 | var curLine = cm.getLine(i); 26 | var curIndent = getIndent(curLine); 27 | if (curIndent > myIndent) { 28 | // Lines with a greater indent are considered part of the block. 29 | lastLineInFold = i; 30 | } else if (!/\S/.test(curLine)) { 31 | // Empty lines might be breaks within the block we're trying to fold. 32 | } else { 33 | // A non-empty line at an indent equal to or less than ours marks the 34 | // start of another block. 35 | break; 36 | } 37 | } 38 | if (lastLineInFold) return { 39 | from: CodeMirror.Pos(start.line, firstLine.length), 40 | to: CodeMirror.Pos(lastLineInFold, cm.getLine(lastLineInFold).length) 41 | }; 42 | }); 43 | 44 | }); 45 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/addon/fold/markdown-fold.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | "use strict"; 13 | 14 | CodeMirror.registerHelper("fold", "markdown", function(cm, start) { 15 | var maxDepth = 100; 16 | 17 | function isHeader(lineNo) { 18 | var tokentype = cm.getTokenTypeAt(CodeMirror.Pos(lineNo, 0)); 19 | return tokentype && /\bheader\b/.test(tokentype); 20 | } 21 | 22 | function headerLevel(lineNo, line, nextLine) { 23 | var match = line && line.match(/^#+/); 24 | if (match && isHeader(lineNo)) return match[0].length; 25 | match = nextLine && nextLine.match(/^[=\-]+\s*$/); 26 | if (match && isHeader(lineNo + 1)) return nextLine[0] == "=" ? 1 : 2; 27 | return maxDepth; 28 | } 29 | 30 | var firstLine = cm.getLine(start.line), nextLine = cm.getLine(start.line + 1); 31 | var level = headerLevel(start.line, firstLine, nextLine); 32 | if (level === maxDepth) return undefined; 33 | 34 | var lastLineNo = cm.lastLine(); 35 | var end = start.line, nextNextLine = cm.getLine(end + 2); 36 | while (end < lastLineNo) { 37 | if (headerLevel(end + 1, nextLine, nextNextLine) <= level) break; 38 | ++end; 39 | nextLine = nextNextLine; 40 | nextNextLine = cm.getLine(end + 2); 41 | } 42 | 43 | return { 44 | from: CodeMirror.Pos(start.line, firstLine.length), 45 | to: CodeMirror.Pos(end, cm.getLine(end).length) 46 | }; 47 | }); 48 | 49 | }); 50 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/addon/hint/anyword-hint.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | "use strict"; 13 | 14 | var WORD = /[\w$]+/, RANGE = 500; 15 | 16 | CodeMirror.registerHelper("hint", "anyword", function(editor, options) { 17 | var word = options && options.word || WORD; 18 | var range = options && options.range || RANGE; 19 | var cur = editor.getCursor(), curLine = editor.getLine(cur.line); 20 | var start = cur.ch, end = start; 21 | while (end < curLine.length && word.test(curLine.charAt(end))) ++end; 22 | while (start && word.test(curLine.charAt(start - 1))) --start; 23 | var curWord = start != end && curLine.slice(start, end); 24 | 25 | var list = [], seen = {}; 26 | var re = new RegExp(word.source, "g"); 27 | for (var dir = -1; dir <= 1; dir += 2) { 28 | var line = cur.line, endLine = Math.min(Math.max(line + dir * range, editor.firstLine()), editor.lastLine()) + dir; 29 | for (; line != endLine; line += dir) { 30 | var text = editor.getLine(line), m; 31 | while (m = re.exec(text)) { 32 | if (line == cur.line && m[0] === curWord) continue; 33 | if ((!curWord || m[0].lastIndexOf(curWord, 0) == 0) && !Object.prototype.hasOwnProperty.call(seen, m[0])) { 34 | seen[m[0]] = true; 35 | list.push(m[0]); 36 | } 37 | } 38 | } 39 | } 40 | return {list: list, from: CodeMirror.Pos(cur.line, start), to: CodeMirror.Pos(cur.line, end)}; 41 | }); 42 | }); 43 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/addon/hint/css-hint.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror"), require("../../mode/css/css")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror", "../../mode/css/css"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | "use strict"; 13 | 14 | var pseudoClasses = {link: 1, visited: 1, active: 1, hover: 1, focus: 1, 15 | "first-letter": 1, "first-line": 1, "first-child": 1, 16 | before: 1, after: 1, lang: 1}; 17 | 18 | CodeMirror.registerHelper("hint", "css", function(cm) { 19 | var cur = cm.getCursor(), token = cm.getTokenAt(cur); 20 | var inner = CodeMirror.innerMode(cm.getMode(), token.state); 21 | if (inner.mode.name != "css") return; 22 | 23 | var word = token.string, start = token.start, end = token.end; 24 | if (/[^\w$_-]/.test(word)) { 25 | word = ""; start = end = cur.ch; 26 | } 27 | 28 | var spec = CodeMirror.resolveMode("text/css"); 29 | 30 | var result = []; 31 | function add(keywords) { 32 | for (var name in keywords) 33 | if (!word || name.lastIndexOf(word, 0) == 0) 34 | result.push(name); 35 | } 36 | 37 | var st = inner.state.state; 38 | if (st == "pseudo" || token.type == "variable-3") { 39 | add(pseudoClasses); 40 | } else if (st == "block" || st == "maybeprop") { 41 | add(spec.propertyKeywords); 42 | } else if (st == "prop" || st == "parens" || st == "at" || st == "params") { 43 | add(spec.valueKeywords); 44 | add(spec.colorKeywords); 45 | } else if (st == "media" || st == "media_parens") { 46 | add(spec.mediaTypes); 47 | add(spec.mediaFeatures); 48 | } 49 | 50 | if (result.length) return { 51 | list: result, 52 | from: CodeMirror.Pos(cur.line, start), 53 | to: CodeMirror.Pos(cur.line, end) 54 | }; 55 | }); 56 | }); 57 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/addon/hint/show-hint.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-hints { 2 | position: absolute; 3 | z-index: 10; 4 | overflow: hidden; 5 | list-style: none; 6 | 7 | margin: 0; 8 | padding: 2px; 9 | 10 | -webkit-box-shadow: 2px 3px 5px rgba(0,0,0,.2); 11 | -moz-box-shadow: 2px 3px 5px rgba(0,0,0,.2); 12 | box-shadow: 2px 3px 5px rgba(0,0,0,.2); 13 | border-radius: 3px; 14 | border: 1px solid silver; 15 | 16 | background: white; 17 | font-size: 90%; 18 | font-family: monospace; 19 | 20 | max-height: 20em; 21 | overflow-y: auto; 22 | } 23 | 24 | .CodeMirror-hint { 25 | margin: 0; 26 | padding: 0 4px; 27 | border-radius: 2px; 28 | max-width: 19em; 29 | overflow: hidden; 30 | white-space: pre; 31 | color: black; 32 | cursor: pointer; 33 | } 34 | 35 | .CodeMirror-hint-active { 36 | background: #08f; 37 | color: white; 38 | } 39 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/addon/lint/coffeescript-lint.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | // Depends on coffeelint.js from http://www.coffeelint.org/js/coffeelint.js 5 | 6 | // declare global: coffeelint 7 | 8 | (function(mod) { 9 | if (typeof exports == "object" && typeof module == "object") // CommonJS 10 | mod(require("../../lib/codemirror")); 11 | else if (typeof define == "function" && define.amd) // AMD 12 | define(["../../lib/codemirror"], mod); 13 | else // Plain browser env 14 | mod(CodeMirror); 15 | })(function(CodeMirror) { 16 | "use strict"; 17 | 18 | CodeMirror.registerHelper("lint", "coffeescript", function(text) { 19 | var found = []; 20 | var parseError = function(err) { 21 | var loc = err.lineNumber; 22 | found.push({from: CodeMirror.Pos(loc-1, 0), 23 | to: CodeMirror.Pos(loc, 0), 24 | severity: err.level, 25 | message: err.message}); 26 | }; 27 | try { 28 | var res = coffeelint.lint(text); 29 | for(var i = 0; i < res.length; i++) { 30 | parseError(res[i]); 31 | } 32 | } catch(e) { 33 | found.push({from: CodeMirror.Pos(e.location.first_line, 0), 34 | to: CodeMirror.Pos(e.location.last_line, e.location.last_column), 35 | severity: 'error', 36 | message: e.message}); 37 | } 38 | return found; 39 | }); 40 | 41 | }); 42 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/addon/lint/css-lint.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | // Depends on csslint.js from https://github.com/stubbornella/csslint 5 | 6 | // declare global: CSSLint 7 | 8 | (function(mod) { 9 | if (typeof exports == "object" && typeof module == "object") // CommonJS 10 | mod(require("../../lib/codemirror")); 11 | else if (typeof define == "function" && define.amd) // AMD 12 | define(["../../lib/codemirror"], mod); 13 | else // Plain browser env 14 | mod(CodeMirror); 15 | })(function(CodeMirror) { 16 | "use strict"; 17 | 18 | CodeMirror.registerHelper("lint", "css", function(text) { 19 | var found = []; 20 | if (!window.CSSLint) return found; 21 | var results = CSSLint.verify(text), messages = results.messages, message = null; 22 | for ( var i = 0; i < messages.length; i++) { 23 | message = messages[i]; 24 | var startLine = message.line -1, endLine = message.line -1, startCol = message.col -1, endCol = message.col; 25 | found.push({ 26 | from: CodeMirror.Pos(startLine, startCol), 27 | to: CodeMirror.Pos(endLine, endCol), 28 | message: message.message, 29 | severity : message.type 30 | }); 31 | } 32 | return found; 33 | }); 34 | 35 | }); 36 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/addon/lint/json-lint.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | // Depends on jsonlint.js from https://github.com/zaach/jsonlint 5 | 6 | // declare global: jsonlint 7 | 8 | (function(mod) { 9 | if (typeof exports == "object" && typeof module == "object") // CommonJS 10 | mod(require("../../lib/codemirror")); 11 | else if (typeof define == "function" && define.amd) // AMD 12 | define(["../../lib/codemirror"], mod); 13 | else // Plain browser env 14 | mod(CodeMirror); 15 | })(function(CodeMirror) { 16 | "use strict"; 17 | 18 | CodeMirror.registerHelper("lint", "json", function(text) { 19 | var found = []; 20 | jsonlint.parseError = function(str, hash) { 21 | var loc = hash.loc; 22 | found.push({from: CodeMirror.Pos(loc.first_line - 1, loc.first_column), 23 | to: CodeMirror.Pos(loc.last_line - 1, loc.last_column), 24 | message: str}); 25 | }; 26 | try { jsonlint.parse(text); } 27 | catch(e) {} 28 | return found; 29 | }); 30 | 31 | }); 32 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/addon/lint/yaml-lint.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | "use strict"; 13 | 14 | // Depends on js-yaml.js from https://github.com/nodeca/js-yaml 15 | 16 | // declare global: jsyaml 17 | 18 | CodeMirror.registerHelper("lint", "yaml", function(text) { 19 | var found = []; 20 | try { jsyaml.load(text); } 21 | catch(e) { 22 | var loc = e.mark; 23 | found.push({ from: CodeMirror.Pos(loc.line, loc.column), to: CodeMirror.Pos(loc.line, loc.column), message: e.message }); 24 | } 25 | return found; 26 | }); 27 | 28 | }); 29 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/addon/mode/loadmode.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | if (!CodeMirror.modeURL) CodeMirror.modeURL = "../mode/%N/%N.js"; 13 | 14 | var loading = {}; 15 | function splitCallback(cont, n) { 16 | var countDown = n; 17 | return function() { if (--countDown == 0) cont(); }; 18 | } 19 | function ensureDeps(mode, cont) { 20 | var deps = CodeMirror.modes[mode].dependencies; 21 | if (!deps) return cont(); 22 | var missing = []; 23 | for (var i = 0; i < deps.length; ++i) { 24 | if (!CodeMirror.modes.hasOwnProperty(deps[i])) 25 | missing.push(deps[i]); 26 | } 27 | if (!missing.length) return cont(); 28 | var split = splitCallback(cont, missing.length); 29 | for (var i = 0; i < missing.length; ++i) 30 | CodeMirror.requireMode(missing[i], split); 31 | } 32 | 33 | CodeMirror.requireMode = function(mode, cont) { 34 | if (typeof mode != "string") mode = mode.name; 35 | if (CodeMirror.modes.hasOwnProperty(mode)) return ensureDeps(mode, cont); 36 | if (loading.hasOwnProperty(mode)) return loading[mode].push(cont); 37 | 38 | var script = document.createElement("script"); 39 | script.src = CodeMirror.modeURL.replace(/%N/g, mode); 40 | var others = document.getElementsByTagName("script")[0]; 41 | others.parentNode.insertBefore(script, others); 42 | var list = loading[mode] = [cont]; 43 | var count = 0, poll = setInterval(function() { 44 | if (++count > 100) return clearInterval(poll); 45 | if (CodeMirror.modes.hasOwnProperty(mode)) { 46 | clearInterval(poll); 47 | loading[mode] = null; 48 | ensureDeps(mode, function() { 49 | for (var i = 0; i < list.length; ++i) list[i](); 50 | }); 51 | } 52 | }, 200); 53 | }; 54 | 55 | CodeMirror.autoLoadMode = function(instance, mode) { 56 | if (!CodeMirror.modes.hasOwnProperty(mode)) 57 | CodeMirror.requireMode(mode, function() { 58 | instance.setOption("mode", instance.getOption("mode")); 59 | }); 60 | }; 61 | }); 62 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/addon/mode/multiplex_test.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | (function() { 5 | CodeMirror.defineMode("markdown_with_stex", function(){ 6 | var inner = CodeMirror.getMode({}, "stex"); 7 | var outer = CodeMirror.getMode({}, "markdown"); 8 | 9 | var innerOptions = { 10 | open: '$', 11 | close: '$', 12 | mode: inner, 13 | delimStyle: 'delim', 14 | innerStyle: 'inner' 15 | }; 16 | 17 | return CodeMirror.multiplexingMode(outer, innerOptions); 18 | }); 19 | 20 | var mode = CodeMirror.getMode({}, "markdown_with_stex"); 21 | 22 | function MT(name) { 23 | test.mode( 24 | name, 25 | mode, 26 | Array.prototype.slice.call(arguments, 1), 27 | 'multiplexing'); 28 | } 29 | 30 | MT( 31 | "stexInsideMarkdown", 32 | "[strong **Equation:**] [delim $][inner&tag \\pi][delim $]"); 33 | })(); 34 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/addon/runmode/colorize.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror"), require("./runmode")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror", "./runmode"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | "use strict"; 13 | 14 | var isBlock = /^(p|li|div|h\\d|pre|blockquote|td)$/; 15 | 16 | function textContent(node, out) { 17 | if (node.nodeType == 3) return out.push(node.nodeValue); 18 | for (var ch = node.firstChild; ch; ch = ch.nextSibling) { 19 | textContent(ch, out); 20 | if (isBlock.test(node.nodeType)) out.push("\n"); 21 | } 22 | } 23 | 24 | CodeMirror.colorize = function(collection, defaultMode) { 25 | if (!collection) collection = document.body.getElementsByTagName("pre"); 26 | 27 | for (var i = 0; i < collection.length; ++i) { 28 | var node = collection[i]; 29 | var mode = node.getAttribute("data-lang") || defaultMode; 30 | if (!mode) continue; 31 | 32 | var text = []; 33 | textContent(node, text); 34 | node.innerHTML = ""; 35 | CodeMirror.runMode(text.join(""), mode, node); 36 | 37 | node.className += " cm-s-default"; 38 | } 39 | }; 40 | }); 41 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/addon/scroll/scrollpastend.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | "use strict"; 13 | 14 | CodeMirror.defineOption("scrollPastEnd", false, function(cm, val, old) { 15 | if (old && old != CodeMirror.Init) { 16 | cm.off("change", onChange); 17 | cm.off("refresh", updateBottomMargin); 18 | cm.display.lineSpace.parentNode.style.paddingBottom = ""; 19 | cm.state.scrollPastEndPadding = null; 20 | } 21 | if (val) { 22 | cm.on("change", onChange); 23 | cm.on("refresh", updateBottomMargin); 24 | updateBottomMargin(cm); 25 | } 26 | }); 27 | 28 | function onChange(cm, change) { 29 | if (CodeMirror.changeEnd(change).line == cm.lastLine()) 30 | updateBottomMargin(cm); 31 | } 32 | 33 | function updateBottomMargin(cm) { 34 | var padding = ""; 35 | if (cm.lineCount() > 1) { 36 | var totalH = cm.display.scroller.clientHeight - 30, 37 | lastLineH = cm.getLineHandle(cm.lastLine()).height; 38 | padding = (totalH - lastLineH) + "px"; 39 | } 40 | if (cm.state.scrollPastEndPadding != padding) { 41 | cm.state.scrollPastEndPadding = padding; 42 | cm.display.lineSpace.parentNode.style.paddingBottom = padding; 43 | cm.setSize(); 44 | } 45 | } 46 | }); 47 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/addon/tern/tern.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-Tern-completion { 2 | padding-left: 22px; 3 | position: relative; 4 | } 5 | .CodeMirror-Tern-completion:before { 6 | position: absolute; 7 | left: 2px; 8 | bottom: 2px; 9 | border-radius: 50%; 10 | font-size: 12px; 11 | font-weight: bold; 12 | height: 15px; 13 | width: 15px; 14 | line-height: 16px; 15 | text-align: center; 16 | color: white; 17 | -moz-box-sizing: border-box; 18 | box-sizing: border-box; 19 | } 20 | .CodeMirror-Tern-completion-unknown:before { 21 | content: "?"; 22 | background: #4bb; 23 | } 24 | .CodeMirror-Tern-completion-object:before { 25 | content: "O"; 26 | background: #77c; 27 | } 28 | .CodeMirror-Tern-completion-fn:before { 29 | content: "F"; 30 | background: #7c7; 31 | } 32 | .CodeMirror-Tern-completion-array:before { 33 | content: "A"; 34 | background: #c66; 35 | } 36 | .CodeMirror-Tern-completion-number:before { 37 | content: "1"; 38 | background: #999; 39 | } 40 | .CodeMirror-Tern-completion-string:before { 41 | content: "S"; 42 | background: #999; 43 | } 44 | .CodeMirror-Tern-completion-bool:before { 45 | content: "B"; 46 | background: #999; 47 | } 48 | 49 | .CodeMirror-Tern-completion-guess { 50 | color: #999; 51 | } 52 | 53 | .CodeMirror-Tern-tooltip { 54 | border: 1px solid silver; 55 | border-radius: 3px; 56 | color: #444; 57 | padding: 2px 5px; 58 | font-size: 90%; 59 | font-family: monospace; 60 | background-color: white; 61 | white-space: pre-wrap; 62 | 63 | max-width: 40em; 64 | position: absolute; 65 | z-index: 10; 66 | -webkit-box-shadow: 2px 3px 5px rgba(0,0,0,.2); 67 | -moz-box-shadow: 2px 3px 5px rgba(0,0,0,.2); 68 | box-shadow: 2px 3px 5px rgba(0,0,0,.2); 69 | 70 | transition: opacity 1s; 71 | -moz-transition: opacity 1s; 72 | -webkit-transition: opacity 1s; 73 | -o-transition: opacity 1s; 74 | -ms-transition: opacity 1s; 75 | } 76 | 77 | .CodeMirror-Tern-hint-doc { 78 | max-width: 25em; 79 | margin-top: -3px; 80 | } 81 | 82 | .CodeMirror-Tern-fname { color: black; } 83 | .CodeMirror-Tern-farg { color: #70a; } 84 | .CodeMirror-Tern-farg-current { text-decoration: underline; } 85 | .CodeMirror-Tern-type { color: #07c; } 86 | .CodeMirror-Tern-fhint-guess { opacity: .7; } 87 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/addon/tern/worker.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | // declare global: tern, server 5 | 6 | var server; 7 | 8 | this.onmessage = function(e) { 9 | var data = e.data; 10 | switch (data.type) { 11 | case "init": return startServer(data.defs, data.plugins, data.scripts); 12 | case "add": return server.addFile(data.name, data.text); 13 | case "del": return server.delFile(data.name); 14 | case "req": return server.request(data.body, function(err, reqData) { 15 | postMessage({id: data.id, body: reqData, err: err && String(err)}); 16 | }); 17 | case "getFile": 18 | var c = pending[data.id]; 19 | delete pending[data.id]; 20 | return c(data.err, data.text); 21 | default: throw new Error("Unknown message type: " + data.type); 22 | } 23 | }; 24 | 25 | var nextId = 0, pending = {}; 26 | function getFile(file, c) { 27 | postMessage({type: "getFile", name: file, id: ++nextId}); 28 | pending[nextId] = c; 29 | } 30 | 31 | function startServer(defs, plugins, scripts) { 32 | if (scripts) importScripts.apply(null, scripts); 33 | 34 | server = new tern.Server({ 35 | getFile: getFile, 36 | async: true, 37 | defs: defs, 38 | plugins: plugins 39 | }); 40 | } 41 | 42 | var console = { 43 | log: function(v) { postMessage({type: "debug", message: v}); } 44 | }; 45 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/mode/apl/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: APL mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 14 | 27 | 28 |
29 |

APL mode

30 |
56 | 57 | 64 | 65 |

Simple mode that tries to handle APL as well as it can.

66 |

It attempts to label functions/operators based upon 67 | monadic/dyadic usage (but this is far from fully fleshed out). 68 | This means there are meaningful classnames so hover states can 69 | have popups etc.

70 | 71 |

MIME types defined: text/apl (APL code)

72 |
73 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/mode/css/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: CSS mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 24 | 25 |
26 |

CSS mode

27 |
62 | 65 | 66 |

MIME types defined: text/css, text/x-scss (demo), text/x-less (demo).

67 | 68 |

Parsing/Highlighting Tests: normal, verbose.

69 | 70 |
71 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/mode/css/less_test.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | (function() { 5 | "use strict"; 6 | 7 | var mode = CodeMirror.getMode({indentUnit: 2}, "text/x-less"); 8 | function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1), "less"); } 9 | 10 | MT("variable", 11 | "[variable-2 @base]: [atom #f04615];", 12 | "[qualifier .class] {", 13 | " [property width]: [variable percentage]([number 0.5]); [comment // returns `50%`]", 14 | " [property color]: [variable saturate]([variable-2 @base], [number 5%]);", 15 | "}"); 16 | 17 | MT("amp", 18 | "[qualifier .child], [qualifier .sibling] {", 19 | " [qualifier .parent] [atom &] {", 20 | " [property color]: [keyword black];", 21 | " }", 22 | " [atom &] + [atom &] {", 23 | " [property color]: [keyword red];", 24 | " }", 25 | "}"); 26 | 27 | MT("mixin", 28 | "[qualifier .mixin] ([variable dark]; [variable-2 @color]) {", 29 | " [property color]: [variable darken]([variable-2 @color], [number 10%]);", 30 | "}", 31 | "[qualifier .mixin] ([variable light]; [variable-2 @color]) {", 32 | " [property color]: [variable lighten]([variable-2 @color], [number 10%]);", 33 | "}", 34 | "[qualifier .mixin] ([variable-2 @_]; [variable-2 @color]) {", 35 | " [property display]: [atom block];", 36 | "}", 37 | "[variable-2 @switch]: [variable light];", 38 | "[qualifier .class] {", 39 | " [qualifier .mixin]([variable-2 @switch]; [atom #888]);", 40 | "}"); 41 | 42 | MT("nest", 43 | "[qualifier .one] {", 44 | " [def @media] ([property width]: [number 400px]) {", 45 | " [property font-size]: [number 1.2em];", 46 | " [def @media] [attribute print] [keyword and] [property color] {", 47 | " [property color]: [keyword blue];", 48 | " }", 49 | " }", 50 | "}"); 51 | })(); 52 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/mode/cypher/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: Cypher Mode for CodeMirror 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 17 | 30 | 31 |
32 |

Cypher Mode for CodeMirror

33 |
34 | 40 |
41 |

MIME types defined: 42 | application/x-cypher-query 43 |

44 | 62 | 63 |
64 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/mode/diff/diff.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | "use strict"; 13 | 14 | CodeMirror.defineMode("diff", function() { 15 | 16 | var TOKEN_NAMES = { 17 | '+': 'positive', 18 | '-': 'negative', 19 | '@': 'meta' 20 | }; 21 | 22 | return { 23 | token: function(stream) { 24 | var tw_pos = stream.string.search(/[\t ]+?$/); 25 | 26 | if (!stream.sol() || tw_pos === 0) { 27 | stream.skipToEnd(); 28 | return ("error " + ( 29 | TOKEN_NAMES[stream.string.charAt(0)] || '')).replace(/ $/, ''); 30 | } 31 | 32 | var token_name = TOKEN_NAMES[stream.peek()] || stream.skipToEnd(); 33 | 34 | if (tw_pos === -1) { 35 | stream.skipToEnd(); 36 | } else { 37 | stream.pos = tw_pos; 38 | } 39 | 40 | return token_name; 41 | } 42 | }; 43 | }); 44 | 45 | CodeMirror.defineMIME("text/x-diff", "diff"); 46 | 47 | }); 48 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/mode/django/django.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror"), require("../htmlmixed/htmlmixed"), 7 | require("../../addon/mode/overlay")); 8 | else if (typeof define == "function" && define.amd) // AMD 9 | define(["../../lib/codemirror", "../htmlmixed/htmlmixed", 10 | "../../addon/mode/overlay"], mod); 11 | else // Plain browser env 12 | mod(CodeMirror); 13 | })(function(CodeMirror) { 14 | "use strict"; 15 | 16 | CodeMirror.defineMode("django:inner", function() { 17 | var keywords = ["block", "endblock", "for", "endfor", "in", "true", "false", 18 | "loop", "none", "self", "super", "if", "endif", "as", "not", "and", 19 | "else", "import", "with", "endwith", "without", "context", "ifequal", "endifequal", 20 | "ifnotequal", "endifnotequal", "extends", "include", "load", "length", "comment", 21 | "endcomment", "empty"]; 22 | keywords = new RegExp("^((" + keywords.join(")|(") + "))\\b"); 23 | 24 | function tokenBase (stream, state) { 25 | stream.eatWhile(/[^\{]/); 26 | var ch = stream.next(); 27 | if (ch == "{") { 28 | if (ch = stream.eat(/\{|%|#/)) { 29 | state.tokenize = inTag(ch); 30 | return "tag"; 31 | } 32 | } 33 | } 34 | function inTag (close) { 35 | if (close == "{") { 36 | close = "}"; 37 | } 38 | return function (stream, state) { 39 | var ch = stream.next(); 40 | if ((ch == close) && stream.eat("}")) { 41 | state.tokenize = tokenBase; 42 | return "tag"; 43 | } 44 | if (stream.match(keywords)) { 45 | return "keyword"; 46 | } 47 | return close == "#" ? "comment" : "string"; 48 | }; 49 | } 50 | return { 51 | startState: function () { 52 | return {tokenize: tokenBase}; 53 | }, 54 | token: function (stream, state) { 55 | return state.tokenize(stream, state); 56 | } 57 | }; 58 | }); 59 | 60 | CodeMirror.defineMode("django", function(config) { 61 | var htmlBase = CodeMirror.getMode(config, "text/html"); 62 | var djangoInner = CodeMirror.getMode(config, "django:inner"); 63 | return CodeMirror.overlayMode(htmlBase, djangoInner); 64 | }); 65 | 66 | CodeMirror.defineMIME("text/x-django", "django"); 67 | }); 68 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/mode/django/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: Django template mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 27 | 28 |
29 |

Django template mode

30 |
50 | 51 | 59 | 60 |

Mode for HTML with embedded Django template markup.

61 | 62 |

MIME types defined: text/x-django

63 |
64 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/mode/ecl/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: ECL mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 24 | 25 |
26 |

ECL mode

27 |
45 | 48 | 49 |

Based on CodeMirror's clike mode. For more information see HPCC Systems web site.

50 |

MIME types defined: text/x-ecl.

51 | 52 |
53 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/mode/erlang/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: Erlang mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 26 | 27 |
28 |

Erlang mode

29 |
65 | 66 | 74 | 75 |

MIME types defined: text/x-erlang.

76 |
77 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/mode/gas/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: Gas mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 24 | 25 |
26 |

Gas mode

27 |
28 | 50 |
51 | 52 | 58 | 59 |

Handles AT&T assembler syntax (more specifically this handles 60 | the GNU Assembler (gas) syntax.) 61 | It takes a single optional configuration parameter: 62 | architecture, which can be one of "ARM", 63 | "ARMv6" or "x86". 64 | Including the parameter adds syntax for the registers and special 65 | directives for the supplied architecture. 66 | 67 |

MIME types defined: text/x-gas

68 |
69 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/mode/gfm/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: GFM mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 31 | 32 |
33 |

GFM mode

34 |
69 | 70 | 77 | 78 |

Optionally depends on other modes for properly highlighted code blocks.

79 | 80 |

Parsing/Highlighting Tests: normal, verbose.

81 | 82 |
83 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/mode/gherkin/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: Gherkin mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 24 | 25 |
26 |

Gherkin mode

27 |
42 | 45 | 46 |

MIME types defined: text/x-feature.

47 | 48 |
49 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/mode/go/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: Go mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 26 | 27 |
28 |

Go mode

29 |
72 | 73 | 83 | 84 |

MIME type: text/x-go

85 |
86 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/mode/groovy/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: Groovy mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 25 | 26 |
27 |

Groovy mode

28 |
74 | 75 | 82 | 83 |

MIME types defined: text/x-groovy

84 |
85 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/mode/haml/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: HAML mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 28 | 29 |
30 |

HAML mode

31 |
68 | 74 | 75 |

MIME types defined: text/x-haml.

76 | 77 |

Parsing/Highlighting Tests: normal, verbose.

78 | 79 |
80 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/mode/haskell/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: Haskell mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 26 | 27 |
28 |

Haskell mode

29 |
63 | 64 | 71 | 72 |

MIME types defined: text/x-haskell.

73 |
74 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/mode/htmlembedded/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: Html Embedded Scripts mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 28 | 29 |
30 |

Html Embedded Scripts mode

31 |
43 | 44 | 52 | 53 |

Mode for html embedded scripts like JSP and ASP.NET. Depends on HtmlMixed which in turn depends on 54 | JavaScript, CSS and XML.
Other dependancies include those of the scriping language chosen.

55 | 56 |

MIME types defined: application/x-aspx (ASP.NET), 57 | application/x-ejs (Embedded Javascript), application/x-jsp (JavaServer Pages)

58 |
59 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/mode/http/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: HTTP mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 24 | 25 |
26 |

HTTP mode

27 | 28 | 29 |
39 | 40 | 43 | 44 |

MIME types defined: message/http.

45 |
46 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/mode/javascript/json-ld.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: JSON-LD mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 27 | 28 |
29 |

JSON-LD mode

30 | 31 | 32 |
61 | 62 | 70 | 71 |

This is a specialization of the JavaScript mode.

72 |
73 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/mode/javascript/typescript.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: TypeScript mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 24 | 25 |
26 |

TypeScript mode

27 | 28 | 29 |
51 | 52 | 59 | 60 |

This is a specialization of the JavaScript mode.

61 |
62 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/mode/jinja2/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: Jinja2 mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 24 | 25 |
26 |

Jinja2 mode

27 |
49 | 54 |
55 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/mode/lua/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: Lua mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 26 | 27 |
28 |

Lua mode

29 |
70 | 76 | 77 |

Loosely based on Franciszek 78 | Wawrzak's CodeMirror 79 | 1 mode. One configuration parameter is 80 | supported, specials, to which you can provide an 81 | array of strings to have those identifiers highlighted with 82 | the lua-special style.

83 |

MIME types defined: text/x-lua.

84 | 85 |
86 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/mode/ntriples/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: NTriples mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 15 | 28 | 29 |
30 |

NTriples mode

31 |
32 | 39 |
40 | 41 | 44 |

MIME types defined: text/n-triples.

45 |
46 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/mode/octave/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: Octave mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 24 | 25 |
26 |

Octave mode

27 | 28 |
71 | 81 | 82 |

MIME types defined: text/x-octave.

83 |
84 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/mode/pascal/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: Pascal mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 24 | 25 |
26 |

Pascal mode

27 | 28 | 29 |
52 | 53 | 59 | 60 |

MIME types defined: text/x-pascal.

61 |
62 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/mode/pegjs/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | CodeMirror: PEG.js Mode 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 28 | 29 |
30 |

PEG.js Mode

31 |
56 | 62 |

The PEG.js Mode

63 |

Created by Forbes Lindesay.

64 |
65 | 66 | 67 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/mode/perl/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: Perl mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 24 | 25 |
26 |

Perl mode

27 | 28 | 29 |
67 | 68 | 73 | 74 |

MIME types defined: text/x-perl.

75 |
76 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/mode/php/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: PHP mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 30 | 31 |
32 |

PHP mode

33 |
48 | 49 | 58 | 59 |

Simple HTML/PHP mode based on 60 | the C-like mode. Depends on XML, 61 | JavaScript, CSS, HTMLMixed, and C-like modes.

62 | 63 |

MIME types defined: application/x-httpd-php (HTML with PHP code), text/x-php (plain, non-wrapped PHP code).

64 |
65 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/mode/pig/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: Pig Latin mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 24 | 25 |
26 |

Pig Latin mode

27 |
39 | 40 | 47 | 48 |

49 | Simple mode that handles Pig Latin language. 50 |

51 | 52 |

MIME type defined: text/x-pig 53 | (PIG code) 54 | 55 |

56 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/mode/properties/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: Properties files mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 24 | 25 |
26 |

Properties files mode

27 |
46 | 49 | 50 |

MIME types defined: text/x-properties, 51 | text/x-ini.

52 | 53 |
54 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/mode/properties/properties.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | "use strict"; 13 | 14 | CodeMirror.defineMode("properties", function() { 15 | return { 16 | token: function(stream, state) { 17 | var sol = stream.sol() || state.afterSection; 18 | var eol = stream.eol(); 19 | 20 | state.afterSection = false; 21 | 22 | if (sol) { 23 | if (state.nextMultiline) { 24 | state.inMultiline = true; 25 | state.nextMultiline = false; 26 | } else { 27 | state.position = "def"; 28 | } 29 | } 30 | 31 | if (eol && ! state.nextMultiline) { 32 | state.inMultiline = false; 33 | state.position = "def"; 34 | } 35 | 36 | if (sol) { 37 | while(stream.eatSpace()); 38 | } 39 | 40 | var ch = stream.next(); 41 | 42 | if (sol && (ch === "#" || ch === "!" || ch === ";")) { 43 | state.position = "comment"; 44 | stream.skipToEnd(); 45 | return "comment"; 46 | } else if (sol && ch === "[") { 47 | state.afterSection = true; 48 | stream.skipTo("]"); stream.eat("]"); 49 | return "header"; 50 | } else if (ch === "=" || ch === ":") { 51 | state.position = "quote"; 52 | return null; 53 | } else if (ch === "\\" && state.position === "quote") { 54 | if (stream.next() !== "u") { // u = Unicode sequence \u1234 55 | // Multiline value 56 | state.nextMultiline = true; 57 | } 58 | } 59 | 60 | return state.position; 61 | }, 62 | 63 | startState: function() { 64 | return { 65 | position : "def", // Current position, "def", "quote" or "comment" 66 | nextMultiline : false, // Is the next line multiline value 67 | inMultiline : false, // Is the current line a multiline value 68 | afterSection : false // Did we just open a section 69 | }; 70 | } 71 | 72 | }; 73 | }); 74 | 75 | CodeMirror.defineMIME("text/x-properties", "properties"); 76 | CodeMirror.defineMIME("text/x-ini", "properties"); 77 | 78 | }); 79 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/mode/rpm/changes/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: RPM changes mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 26 | 27 |
28 |

RPM changes mode

29 | 30 |
57 | 64 | 65 |

MIME types defined: text/x-rpm-changes.

66 |
67 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/mode/ruby/test.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | (function() { 5 | var mode = CodeMirror.getMode({indentUnit: 2}, "ruby"); 6 | function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); } 7 | 8 | MT("divide_equal_operator", 9 | "[variable bar] [operator /=] [variable foo]"); 10 | 11 | MT("divide_equal_operator_no_spacing", 12 | "[variable foo][operator /=][number 42]"); 13 | 14 | })(); 15 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/mode/rust/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: Rust mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 24 | 25 |
26 |

Rust mode

27 | 28 | 29 |
52 | 53 | 58 | 59 |

MIME types defined: text/x-rustsrc.

60 |
61 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/mode/sass/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: Sass mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 25 | 26 |
27 |

Sass mode

28 |
58 | 64 | 65 |

MIME types defined: text/x-sass.

66 |
67 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/mode/shell/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: Shell mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 14 | 27 | 28 |
29 |

Shell mode

30 | 31 | 32 | 56 | 57 | 64 | 65 |

MIME types defined: text/x-sh.

66 |
67 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/mode/shell/test.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | (function() { 5 | var mode = CodeMirror.getMode({}, "shell"); 6 | function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); } 7 | 8 | MT("var", 9 | "text [def $var] text"); 10 | MT("varBraces", 11 | "text[def ${var}]text"); 12 | MT("varVar", 13 | "text [def $a$b] text"); 14 | MT("varBracesVarBraces", 15 | "text[def ${a}${b}]text"); 16 | 17 | MT("singleQuotedVar", 18 | "[string 'text $var text']"); 19 | MT("singleQuotedVarBraces", 20 | "[string 'text ${var} text']"); 21 | 22 | MT("doubleQuotedVar", 23 | '[string "text ][def $var][string text"]'); 24 | MT("doubleQuotedVarBraces", 25 | '[string "text][def ${var}][string text"]'); 26 | MT("doubleQuotedVarPunct", 27 | '[string "text ][def $@][string text"]'); 28 | MT("doubleQuotedVarVar", 29 | '[string "][def $a$b][string "]'); 30 | MT("doubleQuotedVarBracesVarBraces", 31 | '[string "][def ${a}${b}][string "]'); 32 | 33 | MT("notAString", 34 | "text\\'text"); 35 | MT("escapes", 36 | "outside\\'\\\"\\`\\\\[string \"inside\\`\\'\\\"\\\\`\\$notAVar\"]outside\\$\\(notASubShell\\)"); 37 | 38 | MT("subshell", 39 | "[builtin echo] [quote $(whoami)] s log, stardate [quote `date`]."); 40 | MT("doubleQuotedSubshell", 41 | "[builtin echo] [string \"][quote $(whoami)][string 's log, stardate `date`.\"]"); 42 | 43 | MT("hashbang", 44 | "[meta #!/bin/bash]"); 45 | MT("comment", 46 | "text [comment # Blurb]"); 47 | 48 | MT("numbers", 49 | "[number 0] [number 1] [number 2]"); 50 | MT("keywords", 51 | "[keyword while] [atom true]; [keyword do]", 52 | " [builtin sleep] [number 3]", 53 | "[keyword done]"); 54 | MT("options", 55 | "[builtin ls] [attribute -l] [attribute --human-readable]"); 56 | MT("operator", 57 | "[def var][operator =]value"); 58 | })(); 59 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/mode/smalltalk/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: Smalltalk mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 16 | 29 | 30 |
31 |

Smalltalk mode

32 |
55 | 56 | 64 | 65 |

Simple Smalltalk mode.

66 | 67 |

MIME types defined: text/x-stsrc.

68 |
69 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/mode/solr/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: Solr mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 20 | 33 | 34 |
35 |

Solr mode

36 | 37 |
38 | 47 |
48 | 49 | 55 | 56 |

MIME types defined: text/x-solr.

57 |
58 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/mode/sparql/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: SPARQL mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 25 | 26 |
27 |

SPARQL mode

28 |
44 | 50 | 51 |

MIME types defined: application/x-sparql-query.

52 | 53 |
54 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/mode/tiddlywiki/tiddlywiki.css: -------------------------------------------------------------------------------- 1 | span.cm-underlined { 2 | text-decoration: underline; 3 | } 4 | span.cm-strikethrough { 5 | text-decoration: line-through; 6 | } 7 | span.cm-brace { 8 | color: #170; 9 | font-weight: bold; 10 | } 11 | span.cm-table { 12 | color: blue; 13 | font-weight: bold; 14 | } 15 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/mode/tiki/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: Tiki wiki mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 25 | 26 |
27 |

Tiki wiki mode

28 | 29 | 30 |
87 | 88 | 94 | 95 |
96 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/mode/tiki/tiki.css: -------------------------------------------------------------------------------- 1 | .cm-tw-syntaxerror { 2 | color: #FFF; 3 | background-color: #900; 4 | } 5 | 6 | .cm-tw-deleted { 7 | text-decoration: line-through; 8 | } 9 | 10 | .cm-tw-header5 { 11 | font-weight: bold; 12 | } 13 | .cm-tw-listitem:first-child { /*Added first child to fix duplicate padding when highlighting*/ 14 | padding-left: 10px; 15 | } 16 | 17 | .cm-tw-box { 18 | border-top-width: 0px ! important; 19 | border-style: solid; 20 | border-width: 1px; 21 | border-color: inherit; 22 | } 23 | 24 | .cm-tw-underline { 25 | text-decoration: underline; 26 | } -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/mode/toml/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: TOML Mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 24 | 25 |
26 |

TOML Mode

27 |
64 | 70 |

The TOML Mode

71 |

Created by Forbes Lindesay.

72 |

MIME type defined: text/x-toml.

73 |
74 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/mode/turtle/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: Turtle mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 24 | 25 |
26 |

Turtle mode

27 |
41 | 47 | 48 |

MIME types defined: text/turtle.

49 | 50 |
51 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/mode/vbscript/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: VBScript mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 24 | 25 |
26 |

VBScript mode

27 | 28 | 29 |
46 | 47 | 53 | 54 |

MIME types defined: text/vbscript.

55 |
56 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/mode/xml/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: XML mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 24 | 25 |
26 |

XML mode

27 |
39 | 45 |

The XML mode supports two configuration parameters:

46 |
47 |
htmlMode (boolean)
48 |
This switches the mode to parse HTML instead of XML. This 49 | means attributes do not have to be quoted, and some elements 50 | (such as br) do not require a closing tag.
51 |
alignCDATA (boolean)
52 |
Setting this to true will force the opening tag of CDATA 53 | blocks to not be indented.
54 |
55 | 56 |

MIME types defined: application/xml, text/html.

57 |
58 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/mode/xml/test.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | (function() { 5 | var mode = CodeMirror.getMode({indentUnit: 2}, "xml"), mname = "xml"; 6 | function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1), mname); } 7 | 8 | MT("matching", 9 | "[tag&bracket <][tag top][tag&bracket >]", 10 | " text", 11 | " [tag&bracket <][tag inner][tag&bracket />]", 12 | "[tag&bracket ]"); 13 | 14 | MT("nonmatching", 15 | "[tag&bracket <][tag top][tag&bracket >]", 16 | " [tag&bracket <][tag inner][tag&bracket />]", 17 | " [tag&bracket ]"); 18 | 19 | MT("doctype", 20 | "[meta ]", 21 | "[tag&bracket <][tag top][tag&bracket />]"); 22 | 23 | MT("cdata", 24 | "[tag&bracket <][tag top][tag&bracket >]", 25 | " [atom ]", 27 | "[tag&bracket ]"); 28 | 29 | // HTML tests 30 | mode = CodeMirror.getMode({indentUnit: 2}, "text/html"); 31 | 32 | MT("selfclose", 33 | "[tag&bracket <][tag html][tag&bracket >]", 34 | " [tag&bracket <][tag link] [attribute rel]=[string stylesheet] [attribute href]=[string \"/foobar\"][tag&bracket >]", 35 | "[tag&bracket ]"); 36 | 37 | MT("list", 38 | "[tag&bracket <][tag ol][tag&bracket >]", 39 | " [tag&bracket <][tag li][tag&bracket >]one", 40 | " [tag&bracket <][tag li][tag&bracket >]two", 41 | "[tag&bracket ]"); 42 | 43 | MT("valueless", 44 | "[tag&bracket <][tag input] [attribute type]=[string checkbox] [attribute checked][tag&bracket />]"); 45 | 46 | MT("pThenArticle", 47 | "[tag&bracket <][tag p][tag&bracket >]", 48 | " foo", 49 | "[tag&bracket <][tag article][tag&bracket >]bar"); 50 | 51 | })(); 52 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/mode/yaml/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: YAML mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 24 | 25 |
26 |

YAML mode

27 |
74 | 77 | 78 |

MIME types defined: text/x-yaml.

79 | 80 |
81 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/mode/z80/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: Z80 assembly mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 24 | 25 |
26 |

Z80 assembly mode

27 | 28 | 29 |
44 | 45 | 50 | 51 |

MIME type defined: text/x-z80.

52 |
53 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/theme/3024-day.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Name: 3024 day 4 | Author: Jan T. Sott (http://github.com/idleberg) 5 | 6 | CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror) 7 | Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) 8 | 9 | */ 10 | 11 | .cm-s-3024-day.CodeMirror {background: #f7f7f7; color: #3a3432;} 12 | .cm-s-3024-day div.CodeMirror-selected {background: #d6d5d4 !important;} 13 | 14 | .cm-s-3024-day .CodeMirror-gutters {background: #f7f7f7; border-right: 0px;} 15 | .cm-s-3024-day .CodeMirror-guttermarker { color: #db2d20; } 16 | .cm-s-3024-day .CodeMirror-guttermarker-subtle { color: #807d7c; } 17 | .cm-s-3024-day .CodeMirror-linenumber {color: #807d7c;} 18 | 19 | .cm-s-3024-day .CodeMirror-cursor {border-left: 1px solid #5c5855 !important;} 20 | 21 | .cm-s-3024-day span.cm-comment {color: #cdab53;} 22 | .cm-s-3024-day span.cm-atom {color: #a16a94;} 23 | .cm-s-3024-day span.cm-number {color: #a16a94;} 24 | 25 | .cm-s-3024-day span.cm-property, .cm-s-3024-day span.cm-attribute {color: #01a252;} 26 | .cm-s-3024-day span.cm-keyword {color: #db2d20;} 27 | .cm-s-3024-day span.cm-string {color: #fded02;} 28 | 29 | .cm-s-3024-day span.cm-variable {color: #01a252;} 30 | .cm-s-3024-day span.cm-variable-2 {color: #01a0e4;} 31 | .cm-s-3024-day span.cm-def {color: #e8bbd0;} 32 | .cm-s-3024-day span.cm-bracket {color: #3a3432;} 33 | .cm-s-3024-day span.cm-tag {color: #db2d20;} 34 | .cm-s-3024-day span.cm-link {color: #a16a94;} 35 | .cm-s-3024-day span.cm-error {background: #db2d20; color: #5c5855;} 36 | 37 | .cm-s-3024-day .CodeMirror-activeline-background {background: #e8f2ff !important;} 38 | .cm-s-3024-day .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;} 39 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/theme/3024-night.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Name: 3024 night 4 | Author: Jan T. Sott (http://github.com/idleberg) 5 | 6 | CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror) 7 | Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) 8 | 9 | */ 10 | 11 | .cm-s-3024-night.CodeMirror {background: #090300; color: #d6d5d4;} 12 | .cm-s-3024-night div.CodeMirror-selected {background: #3a3432 !important;} 13 | .cm-s-3024-night .CodeMirror-gutters {background: #090300; border-right: 0px;} 14 | .cm-s-3024-night .CodeMirror-guttermarker { color: #db2d20; } 15 | .cm-s-3024-night .CodeMirror-guttermarker-subtle { color: #5c5855; } 16 | .cm-s-3024-night .CodeMirror-linenumber {color: #5c5855;} 17 | 18 | .cm-s-3024-night .CodeMirror-cursor {border-left: 1px solid #807d7c !important;} 19 | 20 | .cm-s-3024-night span.cm-comment {color: #cdab53;} 21 | .cm-s-3024-night span.cm-atom {color: #a16a94;} 22 | .cm-s-3024-night span.cm-number {color: #a16a94;} 23 | 24 | .cm-s-3024-night span.cm-property, .cm-s-3024-night span.cm-attribute {color: #01a252;} 25 | .cm-s-3024-night span.cm-keyword {color: #db2d20;} 26 | .cm-s-3024-night span.cm-string {color: #fded02;} 27 | 28 | .cm-s-3024-night span.cm-variable {color: #01a252;} 29 | .cm-s-3024-night span.cm-variable-2 {color: #01a0e4;} 30 | .cm-s-3024-night span.cm-def {color: #e8bbd0;} 31 | .cm-s-3024-night span.cm-bracket {color: #d6d5d4;} 32 | .cm-s-3024-night span.cm-tag {color: #db2d20;} 33 | .cm-s-3024-night span.cm-link {color: #a16a94;} 34 | .cm-s-3024-night span.cm-error {background: #db2d20; color: #807d7c;} 35 | 36 | .cm-s-3024-night .CodeMirror-activeline-background {background: #2F2F2F !important;} 37 | .cm-s-3024-night .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;} 38 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/theme/ambiance-mobile.css: -------------------------------------------------------------------------------- 1 | .cm-s-ambiance.CodeMirror { 2 | -webkit-box-shadow: none; 3 | -moz-box-shadow: none; 4 | box-shadow: none; 5 | } 6 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/theme/base16-dark.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Name: Base16 Default Dark 4 | Author: Chris Kempson (http://chriskempson.com) 5 | 6 | CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-chrome-devtools) 7 | Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) 8 | 9 | */ 10 | 11 | .cm-s-base16-dark.CodeMirror {background: #151515; color: #e0e0e0;} 12 | .cm-s-base16-dark div.CodeMirror-selected {background: #202020 !important;} 13 | .cm-s-base16-dark .CodeMirror-gutters {background: #151515; border-right: 0px;} 14 | .cm-s-base16-dark .CodeMirror-guttermarker { color: #ac4142; } 15 | .cm-s-base16-dark .CodeMirror-guttermarker-subtle { color: #505050; } 16 | .cm-s-base16-dark .CodeMirror-linenumber {color: #505050;} 17 | .cm-s-base16-dark .CodeMirror-cursor {border-left: 1px solid #b0b0b0 !important;} 18 | 19 | .cm-s-base16-dark span.cm-comment {color: #8f5536;} 20 | .cm-s-base16-dark span.cm-atom {color: #aa759f;} 21 | .cm-s-base16-dark span.cm-number {color: #aa759f;} 22 | 23 | .cm-s-base16-dark span.cm-property, .cm-s-base16-dark span.cm-attribute {color: #90a959;} 24 | .cm-s-base16-dark span.cm-keyword {color: #ac4142;} 25 | .cm-s-base16-dark span.cm-string {color: #f4bf75;} 26 | 27 | .cm-s-base16-dark span.cm-variable {color: #90a959;} 28 | .cm-s-base16-dark span.cm-variable-2 {color: #6a9fb5;} 29 | .cm-s-base16-dark span.cm-def {color: #d28445;} 30 | .cm-s-base16-dark span.cm-bracket {color: #e0e0e0;} 31 | .cm-s-base16-dark span.cm-tag {color: #ac4142;} 32 | .cm-s-base16-dark span.cm-link {color: #aa759f;} 33 | .cm-s-base16-dark span.cm-error {background: #ac4142; color: #b0b0b0;} 34 | 35 | .cm-s-base16-dark .CodeMirror-activeline-background {background: #2F2F2F !important;} 36 | .cm-s-base16-dark .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;} 37 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/theme/base16-light.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Name: Base16 Default Light 4 | Author: Chris Kempson (http://chriskempson.com) 5 | 6 | CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-chrome-devtools) 7 | Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) 8 | 9 | */ 10 | 11 | .cm-s-base16-light.CodeMirror {background: #f5f5f5; color: #202020;} 12 | .cm-s-base16-light div.CodeMirror-selected {background: #e0e0e0 !important;} 13 | .cm-s-base16-light .CodeMirror-gutters {background: #f5f5f5; border-right: 0px;} 14 | .cm-s-base16-light .CodeMirror-guttermarker { color: #ac4142; } 15 | .cm-s-base16-light .CodeMirror-guttermarker-subtle { color: #b0b0b0; } 16 | .cm-s-base16-light .CodeMirror-linenumber {color: #b0b0b0;} 17 | .cm-s-base16-light .CodeMirror-cursor {border-left: 1px solid #505050 !important;} 18 | 19 | .cm-s-base16-light span.cm-comment {color: #8f5536;} 20 | .cm-s-base16-light span.cm-atom {color: #aa759f;} 21 | .cm-s-base16-light span.cm-number {color: #aa759f;} 22 | 23 | .cm-s-base16-light span.cm-property, .cm-s-base16-light span.cm-attribute {color: #90a959;} 24 | .cm-s-base16-light span.cm-keyword {color: #ac4142;} 25 | .cm-s-base16-light span.cm-string {color: #f4bf75;} 26 | 27 | .cm-s-base16-light span.cm-variable {color: #90a959;} 28 | .cm-s-base16-light span.cm-variable-2 {color: #6a9fb5;} 29 | .cm-s-base16-light span.cm-def {color: #d28445;} 30 | .cm-s-base16-light span.cm-bracket {color: #202020;} 31 | .cm-s-base16-light span.cm-tag {color: #ac4142;} 32 | .cm-s-base16-light span.cm-link {color: #aa759f;} 33 | .cm-s-base16-light span.cm-error {background: #ac4142; color: #505050;} 34 | 35 | .cm-s-base16-light .CodeMirror-activeline-background {background: #DDDCDC !important;} 36 | .cm-s-base16-light .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;} 37 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/theme/blackboard.css: -------------------------------------------------------------------------------- 1 | /* Port of TextMate's Blackboard theme */ 2 | 3 | .cm-s-blackboard.CodeMirror { background: #0C1021; color: #F8F8F8; } 4 | .cm-s-blackboard .CodeMirror-selected { background: #253B76 !important; } 5 | .cm-s-blackboard .CodeMirror-gutters { background: #0C1021; border-right: 0; } 6 | .cm-s-blackboard .CodeMirror-guttermarker { color: #FBDE2D; } 7 | .cm-s-blackboard .CodeMirror-guttermarker-subtle { color: #888; } 8 | .cm-s-blackboard .CodeMirror-linenumber { color: #888; } 9 | .cm-s-blackboard .CodeMirror-cursor { border-left: 1px solid #A7A7A7 !important; } 10 | 11 | .cm-s-blackboard .cm-keyword { color: #FBDE2D; } 12 | .cm-s-blackboard .cm-atom { color: #D8FA3C; } 13 | .cm-s-blackboard .cm-number { color: #D8FA3C; } 14 | .cm-s-blackboard .cm-def { color: #8DA6CE; } 15 | .cm-s-blackboard .cm-variable { color: #FF6400; } 16 | .cm-s-blackboard .cm-operator { color: #FBDE2D;} 17 | .cm-s-blackboard .cm-comment { color: #AEAEAE; } 18 | .cm-s-blackboard .cm-string { color: #61CE3C; } 19 | .cm-s-blackboard .cm-string-2 { color: #61CE3C; } 20 | .cm-s-blackboard .cm-meta { color: #D8FA3C; } 21 | .cm-s-blackboard .cm-builtin { color: #8DA6CE; } 22 | .cm-s-blackboard .cm-tag { color: #8DA6CE; } 23 | .cm-s-blackboard .cm-attribute { color: #8DA6CE; } 24 | .cm-s-blackboard .cm-header { color: #FF6400; } 25 | .cm-s-blackboard .cm-hr { color: #AEAEAE; } 26 | .cm-s-blackboard .cm-link { color: #8DA6CE; } 27 | .cm-s-blackboard .cm-error { background: #9D1E15; color: #F8F8F8; } 28 | 29 | .cm-s-blackboard .CodeMirror-activeline-background {background: #3C3636 !important;} 30 | .cm-s-blackboard .CodeMirror-matchingbracket {outline:1px solid grey;color:white !important} -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/theme/cobalt.css: -------------------------------------------------------------------------------- 1 | .cm-s-cobalt.CodeMirror { background: #002240; color: white; } 2 | .cm-s-cobalt div.CodeMirror-selected { background: #b36539 !important; } 3 | .cm-s-cobalt .CodeMirror-gutters { background: #002240; border-right: 1px solid #aaa; } 4 | .cm-s-cobalt .CodeMirror-guttermarker { color: #ffee80; } 5 | .cm-s-cobalt .CodeMirror-guttermarker-subtle { color: #d0d0d0; } 6 | .cm-s-cobalt .CodeMirror-linenumber { color: #d0d0d0; } 7 | .cm-s-cobalt .CodeMirror-cursor { border-left: 1px solid white !important; } 8 | 9 | .cm-s-cobalt span.cm-comment { color: #08f; } 10 | .cm-s-cobalt span.cm-atom { color: #845dc4; } 11 | .cm-s-cobalt span.cm-number, .cm-s-cobalt span.cm-attribute { color: #ff80e1; } 12 | .cm-s-cobalt span.cm-keyword { color: #ffee80; } 13 | .cm-s-cobalt span.cm-string { color: #3ad900; } 14 | .cm-s-cobalt span.cm-meta { color: #ff9d00; } 15 | .cm-s-cobalt span.cm-variable-2, .cm-s-cobalt span.cm-tag { color: #9effff; } 16 | .cm-s-cobalt span.cm-variable-3, .cm-s-cobalt span.cm-def { color: white; } 17 | .cm-s-cobalt span.cm-bracket { color: #d8d8d8; } 18 | .cm-s-cobalt span.cm-builtin, .cm-s-cobalt span.cm-special { color: #ff9e59; } 19 | .cm-s-cobalt span.cm-link { color: #845dc4; } 20 | .cm-s-cobalt span.cm-error { color: #9d1e15; } 21 | 22 | .cm-s-cobalt .CodeMirror-activeline-background {background: #002D57 !important;} 23 | .cm-s-cobalt .CodeMirror-matchingbracket {outline:1px solid grey;color:white !important} 24 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/theme/eclipse.css: -------------------------------------------------------------------------------- 1 | .cm-s-eclipse span.cm-meta {color: #FF1717;} 2 | .cm-s-eclipse span.cm-keyword { line-height: 1em; font-weight: bold; color: #7F0055; } 3 | .cm-s-eclipse span.cm-atom {color: #219;} 4 | .cm-s-eclipse span.cm-number {color: #164;} 5 | .cm-s-eclipse span.cm-def {color: #00f;} 6 | .cm-s-eclipse span.cm-variable {color: black;} 7 | .cm-s-eclipse span.cm-variable-2 {color: #0000C0;} 8 | .cm-s-eclipse span.cm-variable-3 {color: #0000C0;} 9 | .cm-s-eclipse span.cm-property {color: black;} 10 | .cm-s-eclipse span.cm-operator {color: black;} 11 | .cm-s-eclipse span.cm-comment {color: #3F7F5F;} 12 | .cm-s-eclipse span.cm-string {color: #2A00FF;} 13 | .cm-s-eclipse span.cm-string-2 {color: #f50;} 14 | .cm-s-eclipse span.cm-qualifier {color: #555;} 15 | .cm-s-eclipse span.cm-builtin {color: #30a;} 16 | .cm-s-eclipse span.cm-bracket {color: #cc7;} 17 | .cm-s-eclipse span.cm-tag {color: #170;} 18 | .cm-s-eclipse span.cm-attribute {color: #00c;} 19 | .cm-s-eclipse span.cm-link {color: #219;} 20 | .cm-s-eclipse span.cm-error {color: #f00;} 21 | 22 | .cm-s-eclipse .CodeMirror-activeline-background {background: #e8f2ff !important;} 23 | .cm-s-eclipse .CodeMirror-matchingbracket {outline:1px solid grey; color:black !important;} 24 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/theme/elegant.css: -------------------------------------------------------------------------------- 1 | .cm-s-elegant span.cm-number, .cm-s-elegant span.cm-string, .cm-s-elegant span.cm-atom {color: #762;} 2 | .cm-s-elegant span.cm-comment {color: #262; font-style: italic; line-height: 1em;} 3 | .cm-s-elegant span.cm-meta {color: #555; font-style: italic; line-height: 1em;} 4 | .cm-s-elegant span.cm-variable {color: black;} 5 | .cm-s-elegant span.cm-variable-2 {color: #b11;} 6 | .cm-s-elegant span.cm-qualifier {color: #555;} 7 | .cm-s-elegant span.cm-keyword {color: #730;} 8 | .cm-s-elegant span.cm-builtin {color: #30a;} 9 | .cm-s-elegant span.cm-link {color: #762;} 10 | .cm-s-elegant span.cm-error {background-color: #fdd;} 11 | 12 | .cm-s-elegant .CodeMirror-activeline-background {background: #e8f2ff !important;} 13 | .cm-s-elegant .CodeMirror-matchingbracket {outline:1px solid grey; color:black !important;} 14 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/theme/erlang-dark.css: -------------------------------------------------------------------------------- 1 | .cm-s-erlang-dark.CodeMirror { background: #002240; color: white; } 2 | .cm-s-erlang-dark div.CodeMirror-selected { background: #b36539 !important; } 3 | .cm-s-erlang-dark .CodeMirror-gutters { background: #002240; border-right: 1px solid #aaa; } 4 | .cm-s-erlang-dark .CodeMirror-guttermarker { color: white; } 5 | .cm-s-erlang-dark .CodeMirror-guttermarker-subtle { color: #d0d0d0; } 6 | .cm-s-erlang-dark .CodeMirror-linenumber { color: #d0d0d0; } 7 | .cm-s-erlang-dark .CodeMirror-cursor { border-left: 1px solid white !important; } 8 | 9 | .cm-s-erlang-dark span.cm-atom { color: #f133f1; } 10 | .cm-s-erlang-dark span.cm-attribute { color: #ff80e1; } 11 | .cm-s-erlang-dark span.cm-bracket { color: #ff9d00; } 12 | .cm-s-erlang-dark span.cm-builtin { color: #eaa; } 13 | .cm-s-erlang-dark span.cm-comment { color: #77f; } 14 | .cm-s-erlang-dark span.cm-def { color: #e7a; } 15 | .cm-s-erlang-dark span.cm-keyword { color: #ffee80; } 16 | .cm-s-erlang-dark span.cm-meta { color: #50fefe; } 17 | .cm-s-erlang-dark span.cm-number { color: #ffd0d0; } 18 | .cm-s-erlang-dark span.cm-operator { color: #d55; } 19 | .cm-s-erlang-dark span.cm-property { color: #ccc; } 20 | .cm-s-erlang-dark span.cm-qualifier { color: #ccc; } 21 | .cm-s-erlang-dark span.cm-quote { color: #ccc; } 22 | .cm-s-erlang-dark span.cm-special { color: #ffbbbb; } 23 | .cm-s-erlang-dark span.cm-string { color: #3ad900; } 24 | .cm-s-erlang-dark span.cm-string-2 { color: #ccc; } 25 | .cm-s-erlang-dark span.cm-tag { color: #9effff; } 26 | .cm-s-erlang-dark span.cm-variable { color: #50fe50; } 27 | .cm-s-erlang-dark span.cm-variable-2 { color: #e0e; } 28 | .cm-s-erlang-dark span.cm-variable-3 { color: #ccc; } 29 | .cm-s-erlang-dark span.cm-error { color: #9d1e15; } 30 | 31 | .cm-s-erlang-dark .CodeMirror-activeline-background {background: #013461 !important;} 32 | .cm-s-erlang-dark .CodeMirror-matchingbracket {outline:1px solid grey; color:white !important;} 33 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/theme/lesser-dark.css: -------------------------------------------------------------------------------- 1 | /* 2 | http://lesscss.org/ dark theme 3 | Ported to CodeMirror by Peter Kroon 4 | */ 5 | .cm-s-lesser-dark { 6 | line-height: 1.3em; 7 | } 8 | .cm-s-lesser-dark.CodeMirror { background: #262626; color: #EBEFE7; text-shadow: 0 -1px 1px #262626; } 9 | .cm-s-lesser-dark div.CodeMirror-selected {background: #45443B !important;} /* 33322B*/ 10 | .cm-s-lesser-dark .CodeMirror-cursor { border-left: 1px solid white !important; } 11 | .cm-s-lesser-dark pre { padding: 0 8px; }/*editable code holder*/ 12 | 13 | .cm-s-lesser-dark.CodeMirror span.CodeMirror-matchingbracket { color: #7EFC7E; }/*65FC65*/ 14 | 15 | .cm-s-lesser-dark .CodeMirror-gutters { background: #262626; border-right:1px solid #aaa; } 16 | .cm-s-lesser-dark .CodeMirror-guttermarker { color: #599eff; } 17 | .cm-s-lesser-dark .CodeMirror-guttermarker-subtle { color: #777; } 18 | .cm-s-lesser-dark .CodeMirror-linenumber { color: #777; } 19 | 20 | .cm-s-lesser-dark span.cm-keyword { color: #599eff; } 21 | .cm-s-lesser-dark span.cm-atom { color: #C2B470; } 22 | .cm-s-lesser-dark span.cm-number { color: #B35E4D; } 23 | .cm-s-lesser-dark span.cm-def {color: white;} 24 | .cm-s-lesser-dark span.cm-variable { color:#D9BF8C; } 25 | .cm-s-lesser-dark span.cm-variable-2 { color: #669199; } 26 | .cm-s-lesser-dark span.cm-variable-3 { color: white; } 27 | .cm-s-lesser-dark span.cm-property {color: #92A75C;} 28 | .cm-s-lesser-dark span.cm-operator {color: #92A75C;} 29 | .cm-s-lesser-dark span.cm-comment { color: #666; } 30 | .cm-s-lesser-dark span.cm-string { color: #BCD279; } 31 | .cm-s-lesser-dark span.cm-string-2 {color: #f50;} 32 | .cm-s-lesser-dark span.cm-meta { color: #738C73; } 33 | .cm-s-lesser-dark span.cm-qualifier {color: #555;} 34 | .cm-s-lesser-dark span.cm-builtin { color: #ff9e59; } 35 | .cm-s-lesser-dark span.cm-bracket { color: #EBEFE7; } 36 | .cm-s-lesser-dark span.cm-tag { color: #669199; } 37 | .cm-s-lesser-dark span.cm-attribute {color: #00c;} 38 | .cm-s-lesser-dark span.cm-header {color: #a0a;} 39 | .cm-s-lesser-dark span.cm-quote {color: #090;} 40 | .cm-s-lesser-dark span.cm-hr {color: #999;} 41 | .cm-s-lesser-dark span.cm-link {color: #00c;} 42 | .cm-s-lesser-dark span.cm-error { color: #9d1e15; } 43 | 44 | .cm-s-lesser-dark .CodeMirror-activeline-background {background: #3C3A3A !important;} 45 | .cm-s-lesser-dark .CodeMirror-matchingbracket {outline:1px solid grey; color:white !important;} 46 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/theme/mbo.css: -------------------------------------------------------------------------------- 1 | /* Based on mbonaci's Brackets mbo theme */ 2 | 3 | .cm-s-mbo.CodeMirror {background: #2c2c2c; color: #ffffe9;} 4 | .cm-s-mbo div.CodeMirror-selected {background: #716C62 !important;} 5 | .cm-s-mbo .CodeMirror-gutters {background: #4e4e4e; border-right: 0px;} 6 | .cm-s-mbo .CodeMirror-guttermarker { color: white; } 7 | .cm-s-mbo .CodeMirror-guttermarker-subtle { color: grey; } 8 | .cm-s-mbo .CodeMirror-linenumber {color: #dadada;} 9 | .cm-s-mbo .CodeMirror-cursor {border-left: 1px solid #ffffec !important;} 10 | 11 | .cm-s-mbo span.cm-comment {color: #95958a;} 12 | .cm-s-mbo span.cm-atom {color: #00a8c6;} 13 | .cm-s-mbo span.cm-number {color: #00a8c6;} 14 | 15 | .cm-s-mbo span.cm-property, .cm-s-mbo span.cm-attribute {color: #9ddfe9;} 16 | .cm-s-mbo span.cm-keyword {color: #ffb928;} 17 | .cm-s-mbo span.cm-string {color: #ffcf6c;} 18 | 19 | .cm-s-mbo span.cm-variable {color: #ffffec;} 20 | .cm-s-mbo span.cm-variable-2 {color: #00a8c6;} 21 | .cm-s-mbo span.cm-def {color: #ffffec;} 22 | .cm-s-mbo span.cm-bracket {color: #fffffc; font-weight: bold;} 23 | .cm-s-mbo span.cm-tag {color: #9ddfe9;} 24 | .cm-s-mbo span.cm-link {color: #f54b07;} 25 | .cm-s-mbo span.cm-error {border-bottom: #636363; color: #ffffec;} 26 | 27 | .cm-s-mbo .CodeMirror-activeline-background {background: #494b41 !important;} 28 | .cm-s-mbo .CodeMirror-matchingbracket { 29 | text-decoration: underline; 30 | color: #f5e107 !important; 31 | } 32 | 33 | .cm-s-mbo .CodeMirror-matchingtag { background: rgba(255, 255, 255, .37); } 34 | 35 | .cm-s-mbo span.cm-searching { 36 | background-color: none; 37 | background: none; 38 | box-shadow: 0 0 0 1px #ffffec; 39 | } 40 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/theme/midnight.css: -------------------------------------------------------------------------------- 1 | /* Based on the theme at http://bonsaiden.github.com/JavaScript-Garden */ 2 | 3 | /**/ 4 | .cm-s-midnight span.CodeMirror-matchhighlight { background: #494949; } 5 | .cm-s-midnight.CodeMirror-focused span.CodeMirror-matchhighlight { background: #314D67 !important; } 6 | 7 | /**/ 8 | .cm-s-midnight .CodeMirror-activeline-background {background: #253540 !important;} 9 | 10 | .cm-s-midnight.CodeMirror { 11 | background: #0F192A; 12 | color: #D1EDFF; 13 | } 14 | 15 | .cm-s-midnight.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;} 16 | 17 | .cm-s-midnight div.CodeMirror-selected {background: #314D67 !important;} 18 | .cm-s-midnight .CodeMirror-gutters {background: #0F192A; border-right: 1px solid;} 19 | .cm-s-midnight .CodeMirror-guttermarker { color: white; } 20 | .cm-s-midnight .CodeMirror-guttermarker-subtle { color: #d0d0d0; } 21 | .cm-s-midnight .CodeMirror-linenumber {color: #D0D0D0;} 22 | .cm-s-midnight .CodeMirror-cursor { 23 | border-left: 1px solid #F8F8F0 !important; 24 | } 25 | 26 | .cm-s-midnight span.cm-comment {color: #428BDD;} 27 | .cm-s-midnight span.cm-atom {color: #AE81FF;} 28 | .cm-s-midnight span.cm-number {color: #D1EDFF;} 29 | 30 | .cm-s-midnight span.cm-property, .cm-s-midnight span.cm-attribute {color: #A6E22E;} 31 | .cm-s-midnight span.cm-keyword {color: #E83737;} 32 | .cm-s-midnight span.cm-string {color: #1DC116;} 33 | 34 | .cm-s-midnight span.cm-variable {color: #FFAA3E;} 35 | .cm-s-midnight span.cm-variable-2 {color: #FFAA3E;} 36 | .cm-s-midnight span.cm-def {color: #4DD;} 37 | .cm-s-midnight span.cm-bracket {color: #D1EDFF;} 38 | .cm-s-midnight span.cm-tag {color: #449;} 39 | .cm-s-midnight span.cm-link {color: #AE81FF;} 40 | .cm-s-midnight span.cm-error {background: #F92672; color: #F8F8F0;} 41 | 42 | .cm-s-midnight .CodeMirror-matchingbracket { 43 | text-decoration: underline; 44 | color: white !important; 45 | } 46 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/theme/monokai.css: -------------------------------------------------------------------------------- 1 | /* Based on Sublime Text's Monokai theme */ 2 | 3 | .cm-s-monokai.CodeMirror {background: #272822; color: #f8f8f2;} 4 | .cm-s-monokai div.CodeMirror-selected {background: #49483E !important;} 5 | .cm-s-monokai .CodeMirror-gutters {background: #272822; border-right: 0px;} 6 | .cm-s-monokai .CodeMirror-guttermarker { color: white; } 7 | .cm-s-monokai .CodeMirror-guttermarker-subtle { color: #d0d0d0; } 8 | .cm-s-monokai .CodeMirror-linenumber {color: #d0d0d0;} 9 | .cm-s-monokai .CodeMirror-cursor {border-left: 1px solid #f8f8f0 !important;} 10 | 11 | .cm-s-monokai span.cm-comment {color: #75715e;} 12 | .cm-s-monokai span.cm-atom {color: #ae81ff;} 13 | .cm-s-monokai span.cm-number {color: #ae81ff;} 14 | 15 | .cm-s-monokai span.cm-property, .cm-s-monokai span.cm-attribute {color: #a6e22e;} 16 | .cm-s-monokai span.cm-keyword {color: #f92672;} 17 | .cm-s-monokai span.cm-string {color: #e6db74;} 18 | 19 | .cm-s-monokai span.cm-variable {color: #a6e22e;} 20 | .cm-s-monokai span.cm-variable-2 {color: #9effff;} 21 | .cm-s-monokai span.cm-def {color: #fd971f;} 22 | .cm-s-monokai span.cm-bracket {color: #f8f8f2;} 23 | .cm-s-monokai span.cm-tag {color: #f92672;} 24 | .cm-s-monokai span.cm-link {color: #ae81ff;} 25 | .cm-s-monokai span.cm-error {background: #f92672; color: #f8f8f0;} 26 | 27 | .cm-s-monokai .CodeMirror-activeline-background {background: #373831 !important;} 28 | .cm-s-monokai .CodeMirror-matchingbracket { 29 | text-decoration: underline; 30 | color: white !important; 31 | } 32 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/theme/neat.css: -------------------------------------------------------------------------------- 1 | .cm-s-neat span.cm-comment { color: #a86; } 2 | .cm-s-neat span.cm-keyword { line-height: 1em; font-weight: bold; color: blue; } 3 | .cm-s-neat span.cm-string { color: #a22; } 4 | .cm-s-neat span.cm-builtin { line-height: 1em; font-weight: bold; color: #077; } 5 | .cm-s-neat span.cm-special { line-height: 1em; font-weight: bold; color: #0aa; } 6 | .cm-s-neat span.cm-variable { color: black; } 7 | .cm-s-neat span.cm-number, .cm-s-neat span.cm-atom { color: #3a3; } 8 | .cm-s-neat span.cm-meta {color: #555;} 9 | .cm-s-neat span.cm-link { color: #3a3; } 10 | 11 | .cm-s-neat .CodeMirror-activeline-background {background: #e8f2ff !important;} 12 | .cm-s-neat .CodeMirror-matchingbracket {outline:1px solid grey; color:black !important;} 13 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/theme/neo.css: -------------------------------------------------------------------------------- 1 | /* neo theme for codemirror */ 2 | 3 | /* Color scheme */ 4 | 5 | .cm-s-neo.CodeMirror { 6 | background-color:#ffffff; 7 | color:#2e383c; 8 | line-height:1.4375; 9 | } 10 | .cm-s-neo .cm-comment {color:#75787b} 11 | .cm-s-neo .cm-keyword, .cm-s-neo .cm-property {color:#1d75b3} 12 | .cm-s-neo .cm-atom,.cm-s-neo .cm-number {color:#75438a} 13 | .cm-s-neo .cm-node,.cm-s-neo .cm-tag {color:#9c3328} 14 | .cm-s-neo .cm-string {color:#b35e14} 15 | .cm-s-neo .cm-variable,.cm-s-neo .cm-qualifier {color:#047d65} 16 | 17 | 18 | /* Editor styling */ 19 | 20 | .cm-s-neo pre { 21 | padding:0; 22 | } 23 | 24 | .cm-s-neo .CodeMirror-gutters { 25 | border:none; 26 | border-right:10px solid transparent; 27 | background-color:transparent; 28 | } 29 | 30 | .cm-s-neo .CodeMirror-linenumber { 31 | padding:0; 32 | color:#e0e2e5; 33 | } 34 | 35 | .cm-s-neo .CodeMirror-guttermarker { color: #1d75b3; } 36 | .cm-s-neo .CodeMirror-guttermarker-subtle { color: #e0e2e5; } 37 | 38 | .cm-s-neo div.CodeMirror-cursor { 39 | width: auto; 40 | border: 0; 41 | background: rgba(155,157,162,0.37); 42 | z-index: 1; 43 | } 44 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/theme/night.css: -------------------------------------------------------------------------------- 1 | /* Loosely based on the Midnight Textmate theme */ 2 | 3 | .cm-s-night.CodeMirror { background: #0a001f; color: #f8f8f8; } 4 | .cm-s-night div.CodeMirror-selected { background: #447 !important; } 5 | .cm-s-night .CodeMirror-gutters { background: #0a001f; border-right: 1px solid #aaa; } 6 | .cm-s-night .CodeMirror-guttermarker { color: white; } 7 | .cm-s-night .CodeMirror-guttermarker-subtle { color: #bbb; } 8 | .cm-s-night .CodeMirror-linenumber { color: #f8f8f8; } 9 | .cm-s-night .CodeMirror-cursor { border-left: 1px solid white !important; } 10 | 11 | .cm-s-night span.cm-comment { color: #6900a1; } 12 | .cm-s-night span.cm-atom { color: #845dc4; } 13 | .cm-s-night span.cm-number, .cm-s-night span.cm-attribute { color: #ffd500; } 14 | .cm-s-night span.cm-keyword { color: #599eff; } 15 | .cm-s-night span.cm-string { color: #37f14a; } 16 | .cm-s-night span.cm-meta { color: #7678e2; } 17 | .cm-s-night span.cm-variable-2, .cm-s-night span.cm-tag { color: #99b2ff; } 18 | .cm-s-night span.cm-variable-3, .cm-s-night span.cm-def { color: white; } 19 | .cm-s-night span.cm-bracket { color: #8da6ce; } 20 | .cm-s-night span.cm-comment { color: #6900a1; } 21 | .cm-s-night span.cm-builtin, .cm-s-night span.cm-special { color: #ff9e59; } 22 | .cm-s-night span.cm-link { color: #845dc4; } 23 | .cm-s-night span.cm-error { color: #9d1e15; } 24 | 25 | .cm-s-night .CodeMirror-activeline-background {background: #1C005A !important;} 26 | .cm-s-night .CodeMirror-matchingbracket {outline:1px solid grey; color:white !important;} 27 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/theme/paraiso-dark.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Name: Paraíso (Dark) 4 | Author: Jan T. Sott 5 | 6 | Color scheme by Jan T. Sott (https://github.com/idleberg/Paraiso-CodeMirror) 7 | Inspired by the art of Rubens LP (http://www.rubenslp.com.br) 8 | 9 | */ 10 | 11 | .cm-s-paraiso-dark.CodeMirror {background: #2f1e2e; color: #b9b6b0;} 12 | .cm-s-paraiso-dark div.CodeMirror-selected {background: #41323f !important;} 13 | .cm-s-paraiso-dark .CodeMirror-gutters {background: #2f1e2e; border-right: 0px;} 14 | .cm-s-paraiso-dark .CodeMirror-guttermarker { color: #ef6155; } 15 | .cm-s-paraiso-dark .CodeMirror-guttermarker-subtle { color: #776e71; } 16 | .cm-s-paraiso-dark .CodeMirror-linenumber {color: #776e71;} 17 | .cm-s-paraiso-dark .CodeMirror-cursor {border-left: 1px solid #8d8687 !important;} 18 | 19 | .cm-s-paraiso-dark span.cm-comment {color: #e96ba8;} 20 | .cm-s-paraiso-dark span.cm-atom {color: #815ba4;} 21 | .cm-s-paraiso-dark span.cm-number {color: #815ba4;} 22 | 23 | .cm-s-paraiso-dark span.cm-property, .cm-s-paraiso-dark span.cm-attribute {color: #48b685;} 24 | .cm-s-paraiso-dark span.cm-keyword {color: #ef6155;} 25 | .cm-s-paraiso-dark span.cm-string {color: #fec418;} 26 | 27 | .cm-s-paraiso-dark span.cm-variable {color: #48b685;} 28 | .cm-s-paraiso-dark span.cm-variable-2 {color: #06b6ef;} 29 | .cm-s-paraiso-dark span.cm-def {color: #f99b15;} 30 | .cm-s-paraiso-dark span.cm-bracket {color: #b9b6b0;} 31 | .cm-s-paraiso-dark span.cm-tag {color: #ef6155;} 32 | .cm-s-paraiso-dark span.cm-link {color: #815ba4;} 33 | .cm-s-paraiso-dark span.cm-error {background: #ef6155; color: #8d8687;} 34 | 35 | .cm-s-paraiso-dark .CodeMirror-activeline-background {background: #4D344A !important;} 36 | .cm-s-paraiso-dark .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;} 37 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/theme/paraiso-light.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Name: Paraíso (Light) 4 | Author: Jan T. Sott 5 | 6 | Color scheme by Jan T. Sott (https://github.com/idleberg/Paraiso-CodeMirror) 7 | Inspired by the art of Rubens LP (http://www.rubenslp.com.br) 8 | 9 | */ 10 | 11 | .cm-s-paraiso-light.CodeMirror {background: #e7e9db; color: #41323f;} 12 | .cm-s-paraiso-light div.CodeMirror-selected {background: #b9b6b0 !important;} 13 | .cm-s-paraiso-light .CodeMirror-gutters {background: #e7e9db; border-right: 0px;} 14 | .cm-s-paraiso-light .CodeMirror-guttermarker { color: black; } 15 | .cm-s-paraiso-light .CodeMirror-guttermarker-subtle { color: #8d8687; } 16 | .cm-s-paraiso-light .CodeMirror-linenumber {color: #8d8687;} 17 | .cm-s-paraiso-light .CodeMirror-cursor {border-left: 1px solid #776e71 !important;} 18 | 19 | .cm-s-paraiso-light span.cm-comment {color: #e96ba8;} 20 | .cm-s-paraiso-light span.cm-atom {color: #815ba4;} 21 | .cm-s-paraiso-light span.cm-number {color: #815ba4;} 22 | 23 | .cm-s-paraiso-light span.cm-property, .cm-s-paraiso-light span.cm-attribute {color: #48b685;} 24 | .cm-s-paraiso-light span.cm-keyword {color: #ef6155;} 25 | .cm-s-paraiso-light span.cm-string {color: #fec418;} 26 | 27 | .cm-s-paraiso-light span.cm-variable {color: #48b685;} 28 | .cm-s-paraiso-light span.cm-variable-2 {color: #06b6ef;} 29 | .cm-s-paraiso-light span.cm-def {color: #f99b15;} 30 | .cm-s-paraiso-light span.cm-bracket {color: #41323f;} 31 | .cm-s-paraiso-light span.cm-tag {color: #ef6155;} 32 | .cm-s-paraiso-light span.cm-link {color: #815ba4;} 33 | .cm-s-paraiso-light span.cm-error {background: #ef6155; color: #776e71;} 34 | 35 | .cm-s-paraiso-light .CodeMirror-activeline-background {background: #CFD1C4 !important;} 36 | .cm-s-paraiso-light .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;} 37 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/theme/pastel-on-dark.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Pastel On Dark theme ported from ACE editor 3 | * @license MIT 4 | * @copyright AtomicPages LLC 2014 5 | * @author Dennis Thompson, AtomicPages LLC 6 | * @version 1.1 7 | * @source https://github.com/atomicpages/codemirror-pastel-on-dark-theme 8 | */ 9 | 10 | .cm-s-pastel-on-dark.CodeMirror { 11 | background: #2c2827; 12 | color: #8F938F; 13 | line-height: 1.5; 14 | font-size: 14px; 15 | } 16 | .cm-s-pastel-on-dark div.CodeMirror-selected { background: rgba(221,240,255,0.2) !important; } 17 | .cm-s-pastel-on-dark .CodeMirror-gutters { 18 | background: #34302f; 19 | border-right: 0px; 20 | padding: 0 3px; 21 | } 22 | .cm-s-pastel-on-dark .CodeMirror-guttermarker { color: white; } 23 | .cm-s-pastel-on-dark .CodeMirror-guttermarker-subtle { color: #8F938F; } 24 | .cm-s-pastel-on-dark .CodeMirror-linenumber { color: #8F938F; } 25 | .cm-s-pastel-on-dark .CodeMirror-cursor { border-left: 1px solid #A7A7A7 !important; } 26 | .cm-s-pastel-on-dark span.cm-comment { color: #A6C6FF; } 27 | .cm-s-pastel-on-dark span.cm-atom { color: #DE8E30; } 28 | .cm-s-pastel-on-dark span.cm-number { color: #CCCCCC; } 29 | .cm-s-pastel-on-dark span.cm-property { color: #8F938F; } 30 | .cm-s-pastel-on-dark span.cm-attribute { color: #a6e22e; } 31 | .cm-s-pastel-on-dark span.cm-keyword { color: #AEB2F8; } 32 | .cm-s-pastel-on-dark span.cm-string { color: #66A968; } 33 | .cm-s-pastel-on-dark span.cm-variable { color: #AEB2F8; } 34 | .cm-s-pastel-on-dark span.cm-variable-2 { color: #BEBF55; } 35 | .cm-s-pastel-on-dark span.cm-variable-3 { color: #DE8E30; } 36 | .cm-s-pastel-on-dark span.cm-def { color: #757aD8; } 37 | .cm-s-pastel-on-dark span.cm-bracket { color: #f8f8f2; } 38 | .cm-s-pastel-on-dark span.cm-tag { color: #C1C144; } 39 | .cm-s-pastel-on-dark span.cm-link { color: #ae81ff; } 40 | .cm-s-pastel-on-dark span.cm-qualifier,.cm-s-pastel-on-dark span.cm-builtin { color: #C1C144; } 41 | .cm-s-pastel-on-dark span.cm-error { 42 | background: #757aD8; 43 | color: #f8f8f0; 44 | } 45 | .cm-s-pastel-on-dark .CodeMirror-activeline-background { background: rgba(255, 255, 255, 0.031) !important; } 46 | .cm-s-pastel-on-dark .CodeMirror-matchingbracket { 47 | border: 1px solid rgba(255,255,255,0.25); 48 | color: #8F938F !important; 49 | margin: -1px -1px 0 -1px; 50 | } 51 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/theme/rubyblue.css: -------------------------------------------------------------------------------- 1 | .cm-s-rubyblue.CodeMirror { background: #112435; color: white; } 2 | .cm-s-rubyblue div.CodeMirror-selected { background: #38566F !important; } 3 | .cm-s-rubyblue .CodeMirror-gutters { background: #1F4661; border-right: 7px solid #3E7087; } 4 | .cm-s-rubyblue .CodeMirror-guttermarker { color: white; } 5 | .cm-s-rubyblue .CodeMirror-guttermarker-subtle { color: #3E7087; } 6 | .cm-s-rubyblue .CodeMirror-linenumber { color: white; } 7 | .cm-s-rubyblue .CodeMirror-cursor { border-left: 1px solid white !important; } 8 | 9 | .cm-s-rubyblue span.cm-comment { color: #999; font-style:italic; line-height: 1em; } 10 | .cm-s-rubyblue span.cm-atom { color: #F4C20B; } 11 | .cm-s-rubyblue span.cm-number, .cm-s-rubyblue span.cm-attribute { color: #82C6E0; } 12 | .cm-s-rubyblue span.cm-keyword { color: #F0F; } 13 | .cm-s-rubyblue span.cm-string { color: #F08047; } 14 | .cm-s-rubyblue span.cm-meta { color: #F0F; } 15 | .cm-s-rubyblue span.cm-variable-2, .cm-s-rubyblue span.cm-tag { color: #7BD827; } 16 | .cm-s-rubyblue span.cm-variable-3, .cm-s-rubyblue span.cm-def { color: white; } 17 | .cm-s-rubyblue span.cm-bracket { color: #F0F; } 18 | .cm-s-rubyblue span.cm-link { color: #F4C20B; } 19 | .cm-s-rubyblue span.CodeMirror-matchingbracket { color:#F0F !important; } 20 | .cm-s-rubyblue span.cm-builtin, .cm-s-rubyblue span.cm-special { color: #FF9D00; } 21 | .cm-s-rubyblue span.cm-error { color: #AF2018; } 22 | 23 | .cm-s-rubyblue .CodeMirror-activeline-background {background: #173047 !important;} 24 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/theme/the-matrix.css: -------------------------------------------------------------------------------- 1 | .cm-s-the-matrix.CodeMirror { background: #000000; color: #00FF00; } 2 | .cm-s-the-matrix div.CodeMirror-selected { background: #2D2D2D !important; } 3 | .cm-s-the-matrix .CodeMirror-gutters { background: #060; border-right: 2px solid #00FF00; } 4 | .cm-s-the-matrix .CodeMirror-guttermarker { color: #0f0; } 5 | .cm-s-the-matrix .CodeMirror-guttermarker-subtle { color: white; } 6 | .cm-s-the-matrix .CodeMirror-linenumber { color: #FFFFFF; } 7 | .cm-s-the-matrix .CodeMirror-cursor { border-left: 1px solid #00FF00 !important; } 8 | 9 | .cm-s-the-matrix span.cm-keyword {color: #008803; font-weight: bold;} 10 | .cm-s-the-matrix span.cm-atom {color: #3FF;} 11 | .cm-s-the-matrix span.cm-number {color: #FFB94F;} 12 | .cm-s-the-matrix span.cm-def {color: #99C;} 13 | .cm-s-the-matrix span.cm-variable {color: #F6C;} 14 | .cm-s-the-matrix span.cm-variable-2 {color: #C6F;} 15 | .cm-s-the-matrix span.cm-variable-3 {color: #96F;} 16 | .cm-s-the-matrix span.cm-property {color: #62FFA0;} 17 | .cm-s-the-matrix span.cm-operator {color: #999} 18 | .cm-s-the-matrix span.cm-comment {color: #CCCCCC;} 19 | .cm-s-the-matrix span.cm-string {color: #39C;} 20 | .cm-s-the-matrix span.cm-meta {color: #C9F;} 21 | .cm-s-the-matrix span.cm-qualifier {color: #FFF700;} 22 | .cm-s-the-matrix span.cm-builtin {color: #30a;} 23 | .cm-s-the-matrix span.cm-bracket {color: #cc7;} 24 | .cm-s-the-matrix span.cm-tag {color: #FFBD40;} 25 | .cm-s-the-matrix span.cm-attribute {color: #FFF700;} 26 | .cm-s-the-matrix span.cm-error {color: #FF0000;} 27 | 28 | .cm-s-the-matrix .CodeMirror-activeline-background {background: #040;} 29 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/theme/tomorrow-night-eighties.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Name: Tomorrow Night - Eighties 4 | Author: Chris Kempson 5 | 6 | CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror) 7 | Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) 8 | 9 | */ 10 | 11 | .cm-s-tomorrow-night-eighties.CodeMirror {background: #000000; color: #CCCCCC;} 12 | .cm-s-tomorrow-night-eighties div.CodeMirror-selected {background: #2D2D2D !important;} 13 | .cm-s-tomorrow-night-eighties .CodeMirror-gutters {background: #000000; border-right: 0px;} 14 | .cm-s-tomorrow-night-eighties .CodeMirror-guttermarker { color: #f2777a; } 15 | .cm-s-tomorrow-night-eighties .CodeMirror-guttermarker-subtle { color: #777; } 16 | .cm-s-tomorrow-night-eighties .CodeMirror-linenumber {color: #515151;} 17 | .cm-s-tomorrow-night-eighties .CodeMirror-cursor {border-left: 1px solid #6A6A6A !important;} 18 | 19 | .cm-s-tomorrow-night-eighties span.cm-comment {color: #d27b53;} 20 | .cm-s-tomorrow-night-eighties span.cm-atom {color: #a16a94;} 21 | .cm-s-tomorrow-night-eighties span.cm-number {color: #a16a94;} 22 | 23 | .cm-s-tomorrow-night-eighties span.cm-property, .cm-s-tomorrow-night-eighties span.cm-attribute {color: #99cc99;} 24 | .cm-s-tomorrow-night-eighties span.cm-keyword {color: #f2777a;} 25 | .cm-s-tomorrow-night-eighties span.cm-string {color: #ffcc66;} 26 | 27 | .cm-s-tomorrow-night-eighties span.cm-variable {color: #99cc99;} 28 | .cm-s-tomorrow-night-eighties span.cm-variable-2 {color: #6699cc;} 29 | .cm-s-tomorrow-night-eighties span.cm-def {color: #f99157;} 30 | .cm-s-tomorrow-night-eighties span.cm-bracket {color: #CCCCCC;} 31 | .cm-s-tomorrow-night-eighties span.cm-tag {color: #f2777a;} 32 | .cm-s-tomorrow-night-eighties span.cm-link {color: #a16a94;} 33 | .cm-s-tomorrow-night-eighties span.cm-error {background: #f2777a; color: #6A6A6A;} 34 | 35 | .cm-s-tomorrow-night-eighties .CodeMirror-activeline-background {background: #343600 !important;} 36 | .cm-s-tomorrow-night-eighties .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;} 37 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/theme/twilight.css: -------------------------------------------------------------------------------- 1 | .cm-s-twilight.CodeMirror { background: #141414; color: #f7f7f7; } /**/ 2 | .cm-s-twilight .CodeMirror-selected { background: #323232 !important; } /**/ 3 | 4 | .cm-s-twilight .CodeMirror-gutters { background: #222; border-right: 1px solid #aaa; } 5 | .cm-s-twilight .CodeMirror-guttermarker { color: white; } 6 | .cm-s-twilight .CodeMirror-guttermarker-subtle { color: #aaa; } 7 | .cm-s-twilight .CodeMirror-linenumber { color: #aaa; } 8 | .cm-s-twilight .CodeMirror-cursor { border-left: 1px solid white !important; } 9 | 10 | .cm-s-twilight .cm-keyword { color: #f9ee98; } /**/ 11 | .cm-s-twilight .cm-atom { color: #FC0; } 12 | .cm-s-twilight .cm-number { color: #ca7841; } /**/ 13 | .cm-s-twilight .cm-def { color: #8DA6CE; } 14 | .cm-s-twilight span.cm-variable-2, .cm-s-twilight span.cm-tag { color: #607392; } /**/ 15 | .cm-s-twilight span.cm-variable-3, .cm-s-twilight span.cm-def { color: #607392; } /**/ 16 | .cm-s-twilight .cm-operator { color: #cda869; } /**/ 17 | .cm-s-twilight .cm-comment { color:#777; font-style:italic; font-weight:normal; } /**/ 18 | .cm-s-twilight .cm-string { color:#8f9d6a; font-style:italic; } /**/ 19 | .cm-s-twilight .cm-string-2 { color:#bd6b18 } /*?*/ 20 | .cm-s-twilight .cm-meta { background-color:#141414; color:#f7f7f7; } /*?*/ 21 | .cm-s-twilight .cm-builtin { color: #cda869; } /*?*/ 22 | .cm-s-twilight .cm-tag { color: #997643; } /**/ 23 | .cm-s-twilight .cm-attribute { color: #d6bb6d; } /*?*/ 24 | .cm-s-twilight .cm-header { color: #FF6400; } 25 | .cm-s-twilight .cm-hr { color: #AEAEAE; } 26 | .cm-s-twilight .cm-link { color:#ad9361; font-style:italic; text-decoration:none; } /**/ 27 | .cm-s-twilight .cm-error { border-bottom: 1px solid red; } 28 | 29 | .cm-s-twilight .CodeMirror-activeline-background {background: #27282E !important;} 30 | .cm-s-twilight .CodeMirror-matchingbracket {outline:1px solid grey; color:white !important;} 31 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/theme/vibrant-ink.css: -------------------------------------------------------------------------------- 1 | /* Taken from the popular Visual Studio Vibrant Ink Schema */ 2 | 3 | .cm-s-vibrant-ink.CodeMirror { background: black; color: white; } 4 | .cm-s-vibrant-ink .CodeMirror-selected { background: #35493c !important; } 5 | 6 | .cm-s-vibrant-ink .CodeMirror-gutters { background: #002240; border-right: 1px solid #aaa; } 7 | .cm-s-vibrant-ink .CodeMirror-guttermarker { color: white; } 8 | .cm-s-vibrant-ink .CodeMirror-guttermarker-subtle { color: #d0d0d0; } 9 | .cm-s-vibrant-ink .CodeMirror-linenumber { color: #d0d0d0; } 10 | .cm-s-vibrant-ink .CodeMirror-cursor { border-left: 1px solid white !important; } 11 | 12 | .cm-s-vibrant-ink .cm-keyword { color: #CC7832; } 13 | .cm-s-vibrant-ink .cm-atom { color: #FC0; } 14 | .cm-s-vibrant-ink .cm-number { color: #FFEE98; } 15 | .cm-s-vibrant-ink .cm-def { color: #8DA6CE; } 16 | .cm-s-vibrant-ink span.cm-variable-2, .cm-s-vibrant span.cm-tag { color: #FFC66D } 17 | .cm-s-vibrant-ink span.cm-variable-3, .cm-s-vibrant span.cm-def { color: #FFC66D } 18 | .cm-s-vibrant-ink .cm-operator { color: #888; } 19 | .cm-s-vibrant-ink .cm-comment { color: gray; font-weight: bold; } 20 | .cm-s-vibrant-ink .cm-string { color: #A5C25C } 21 | .cm-s-vibrant-ink .cm-string-2 { color: red } 22 | .cm-s-vibrant-ink .cm-meta { color: #D8FA3C; } 23 | .cm-s-vibrant-ink .cm-builtin { color: #8DA6CE; } 24 | .cm-s-vibrant-ink .cm-tag { color: #8DA6CE; } 25 | .cm-s-vibrant-ink .cm-attribute { color: #8DA6CE; } 26 | .cm-s-vibrant-ink .cm-header { color: #FF6400; } 27 | .cm-s-vibrant-ink .cm-hr { color: #AEAEAE; } 28 | .cm-s-vibrant-ink .cm-link { color: blue; } 29 | .cm-s-vibrant-ink .cm-error { border-bottom: 1px solid red; } 30 | 31 | .cm-s-vibrant-ink .CodeMirror-activeline-background {background: #27282E !important;} 32 | .cm-s-vibrant-ink .CodeMirror-matchingbracket {outline:1px solid grey; color:white !important;} 33 | -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/codemirror-4.5/theme/xq-light.css: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (C) 2011 by MarkLogic Corporation 3 | Author: Mike Brevoort 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | */ 23 | .cm-s-xq-light span.cm-keyword {line-height: 1em; font-weight: bold; color: #5A5CAD; } 24 | .cm-s-xq-light span.cm-atom {color: #6C8CD5;} 25 | .cm-s-xq-light span.cm-number {color: #164;} 26 | .cm-s-xq-light span.cm-def {text-decoration:underline;} 27 | .cm-s-xq-light span.cm-variable {color: black; } 28 | .cm-s-xq-light span.cm-variable-2 {color:black;} 29 | .cm-s-xq-light span.cm-variable-3 {color: black; } 30 | .cm-s-xq-light span.cm-property {} 31 | .cm-s-xq-light span.cm-operator {} 32 | .cm-s-xq-light span.cm-comment {color: #0080FF; font-style: italic;} 33 | .cm-s-xq-light span.cm-string {color: red;} 34 | .cm-s-xq-light span.cm-meta {color: yellow;} 35 | .cm-s-xq-light span.cm-qualifier {color: grey} 36 | .cm-s-xq-light span.cm-builtin {color: #7EA656;} 37 | .cm-s-xq-light span.cm-bracket {color: #cc7;} 38 | .cm-s-xq-light span.cm-tag {color: #3F7F7F;} 39 | .cm-s-xq-light span.cm-attribute {color: #7F007F;} 40 | .cm-s-xq-light span.cm-error {color: #f00;} 41 | 42 | .cm-s-xq-light .CodeMirror-activeline-background {background: #e8f2ff !important;} 43 | .cm-s-xq-light .CodeMirror-matchingbracket {outline:1px solid grey;color:black !important;background:yellow;} -------------------------------------------------------------------------------- /resources/gorilla-repl-client/jslib/uuid/uuid.core.js: -------------------------------------------------------------------------------- 1 | /* 2 | Version: core-1.0 3 | The MIT License: Copyright (c) 2012 LiosK. 4 | */ 5 | function UUID(){}UUID.generate=function(){var a=UUID._gri,b=UUID._ha;return b(a(32),8)+"-"+b(a(16),4)+"-"+b(16384|a(12),4)+"-"+b(32768|a(14),4)+"-"+b(a(48),12)};UUID._gri=function(a){return 0>a?NaN:30>=a?0|Math.random()*(1<=a?(0|1073741824*Math.random())+1073741824*(0|Math.random()*(1<>>=1,e+=e)d&1&&(c=e+c);return c}; -------------------------------------------------------------------------------- /resources/logback.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/gorilla_repl/files.clj: -------------------------------------------------------------------------------- 1 | (ns gorilla-repl.files 2 | "Utility functions to help with scanning for and loading gorilla files." 3 | (:require [clojure.string :as str] 4 | [clojure.java.io :as io])) 5 | 6 | (defn ends-with 7 | [string ending] 8 | (if (< (count string) (count ending)) 9 | false 10 | (let [l (count string) 11 | le (count ending)] 12 | (= (subs string (- l le) l) ending)))) 13 | 14 | (defn clj-file? 15 | [file] 16 | (ends-with (.getName file) ".clj")) 17 | 18 | (defn cljs-file? 19 | [file] 20 | (ends-with (.getName file) ".cljs")) 21 | 22 | (defn cljc-file? 23 | [file] 24 | (ends-with (.getName file) ".cljc")) 25 | 26 | (defn cljw-file? 27 | [file] 28 | (ends-with (.getName file) ".cljw")) 29 | 30 | (defn hl-file? 31 | [file] 32 | (ends-with (.getName file) ".hl")) 33 | 34 | 35 | (defn gorilla-file? 36 | [file] 37 | (when (.isFile file) 38 | (with-open [r (java.io.BufferedReader. (java.io.FileReader. file))] 39 | (let [first-line (.readLine r)] 40 | (if (> (count first-line) 26) 41 | (let [header (subs first-line 0 26)] 42 | (= header ";; gorilla-repl.fileformat"))))))) 43 | 44 | (defn excluded-file-seq 45 | [file excludes] 46 | (tree-seq 47 | (fn [f] (and (.isDirectory f) (not (contains? excludes (.getName f))))) 48 | (fn [f] (.listFiles f)) 49 | file)) 50 | 51 | (defn include-file? 52 | "Should a file be included in the 'load file' list? Currently all .cljw, .cljs, .cljc, .hl and .clj files with a Gorilla header 53 | are included." 54 | [file] 55 | (or (cljw-file? file) (cljs-file? file) (cljc-file? file) (clj-file? file) (hl-file? file))) 56 | 57 | (defn gorilla-filepaths-in-current-directory 58 | [excludes] 59 | (map #(str/replace-first (. % getPath) "./" "") 60 | (filter include-file? (excluded-file-seq 61 | (io/file ".") 62 | excludes)))) 63 | -------------------------------------------------------------------------------- /src/gorilla_repl/nrepl.clj: -------------------------------------------------------------------------------- 1 | (ns gorilla-repl.nrepl 2 | (:require [gorilla-repl.websocket-relay :as ws-relay] 3 | [nrepl.server :as nrepl-server] 4 | [nrepl.middleware.pr-values :as pr-values] 5 | [cider.nrepl :as cider] 6 | [clojure.java.io :as io])) 7 | 8 | (def nrepl (atom nil)) 9 | 10 | (defn start-and-connect 11 | ([nrepl-requested-port repl-port-file] 12 | (let [cider-mw (map resolve cider/cider-middleware) 13 | middleware (conj cider-mw #'pr-values/pr-values) 14 | nr (nrepl-server/start-server :port nrepl-requested-port 15 | :handler (apply nrepl-server/default-handler middleware)) 16 | nrepl-port (:port nr)] 17 | (println "Started nREPL server on port" nrepl-port) 18 | (swap! nrepl (fn [x] nr)) 19 | (ws-relay/connect-to-nrepl nrepl-port) 20 | (spit (doto repl-port-file .deleteOnExit) nrepl-port)))) 21 | -------------------------------------------------------------------------------- /src/gorilla_repl/render_values_mw.clj: -------------------------------------------------------------------------------- 1 | ;;;; This file is part of gorilla-repl. Copyright (C) 2014-, Jony Hudson. 2 | ;;;; 3 | ;;;; gorilla-repl is licenced to you under the MIT licence. See the file LICENCE.txt for full details. 4 | 5 | (ns gorilla-repl.render-values-mw 6 | (:require [nrepl.transport :as transport] 7 | [nrepl.middleware :as middleware] 8 | [nrepl.middleware.pr-values :as pr-values] 9 | [gorilla-renderable.core :as render] 10 | [cheshire.core :as json]) 11 | (:import nrepl.transport.Transport)) 12 | 13 | (defn custom-renderer 14 | [value opts] 15 | (if (:as-html opts) 16 | (let [printer (if *print-dup* print-dup print-method) 17 | writer (java.io.StringWriter.)] 18 | (printer (json/generate-string (render/render value)) writer) 19 | (str writer)))) 20 | -------------------------------------------------------------------------------- /src/gorilla_repl/version.clj: -------------------------------------------------------------------------------- 1 | (ns gorilla-repl.version 2 | "Checks whether a newer version of Gorilla REPL is availble." 3 | (:require [org.httpkit.client :as http] 4 | [clj-semver.core :as semver])) 5 | 6 | (def update-url "https://updates.gorilla-repl.org/latest-version?v=") 7 | 8 | (defn version-check 9 | "Compares the latest version to the running version and prints a message to the console if there's an update 10 | available." 11 | [latest current] 12 | (if (not= current "develop") 13 | (if (semver/newer? latest current) 14 | (println "A newer version of Gorilla REPL, version" latest ", is available.")))) 15 | 16 | (defn check-for-update 17 | "This runs asynchronously, and can be fired off and forgotten." 18 | [current] 19 | (http/get 20 | (str update-url current) 21 | {:timeout 30000 :as :text} 22 | (fn [{:keys [status headers body error]}] 23 | (if error 24 | (println "Unable to reach update server.") 25 | (let [body-map (apply hash-map (read-string body))] 26 | (version-check (:version body-map) current)))))) -------------------------------------------------------------------------------- /src/gorilla_repl/websocket_relay.clj: -------------------------------------------------------------------------------- 1 | ;;;; This file is part of gorilla-repl. Copyright (C) 2014-, Jony Hudson. 2 | ;;;; 3 | ;;;; gorilla-repl is licenced to you under the MIT licence. See the file LICENCE.txt for full details. 4 | 5 | ;;; A websocket handler that passes messages back and forth to an already running nREPL server. 6 | 7 | (ns gorilla-repl.websocket-relay 8 | (:require [org.httpkit.server :as server] 9 | [nrepl.core :as nrepl] 10 | [gorilla-repl.render-values-mw :as render-mw] 11 | [cheshire.core :as json])) 12 | 13 | ;; We will open a single connection to the nREPL server for the life of the application. It will be stored here. 14 | (def conn (atom nil)) 15 | 16 | ;; Doing it this way with an atom feels wrong, but I can't figure out how to thread an argument into Compojure's 17 | ;; routing macro, so I can't pass the connection around, to give a more functional API. 18 | (defn connect-to-nrepl 19 | "Connect to the nREPL server and store the connection." 20 | [port] 21 | (let [new-conn (nrepl/connect :port port)] 22 | (swap! conn (fn [x] new-conn)))) 23 | 24 | (defn- send-json-over-ws 25 | [channel data] 26 | (let [json-data (json/generate-string data)] 27 | #_(println json-data) 28 | (server/send! channel json-data)))) 29 | 30 | (defn- process-message 31 | [channel data] 32 | (let [parsed-message (assoc (json/parse-string data true) :printer `render-mw/custom-renderer :print-options {:as-html 1}) 33 | client (nrepl/client @conn Long/MAX_VALUE) 34 | replies (nrepl/message client parsed-message)] 35 | ;; send the messages out over the WS connection one-by-one. 36 | (doall (map (partial send-json-over-ws channel) replies)))) 37 | 38 | (defn ring-handler 39 | "This ring handler expects the client to make a websocket connection to the endpoint. It relays messages back and 40 | forth to an nREPL server. A connection to the nREPL server must have previously been made with 'connect-to-nrepl'. 41 | Messages are mapped back and forth to JSON as they pass through the relay." 42 | [request] 43 | (server/with-channel 44 | request 45 | channel 46 | (server/on-receive channel (partial process-message channel)))) --------------------------------------------------------------------------------