Browser UI for REPtiLe - a shared REPL
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
resources/public
src/reptile/tongue
.gitignore
README.md
deps.edn
dev.cljs.edn
figwheel-main.edn
min.cljs.edn
s3-publish.sh

README.md

reptile-tongue

A re-frame based SPA for the REPtiLE shared REPL

Features

REPtiLe connectivity

  • Multi-user REPL connectivity
  • Authenticated server access
  • Real-time keystrokes from all connected users
  • Per user name spaces

Other editors

  • Visibility / sizing controls
  • Automatic visibility / sizing

Clojure code support

  • Parinfer integration
  • Colorised edits / output
  • Show matching / balancing parens
  • Code completion / suggestions
  • Expose function documentation
  • Choice of editor key mappings

Clojure evaluation

  • Shared REPL state
  • Shared, accessible history
  • Expandable exception viewing
  • Incremental feedback on long running REPL evaluations
  • Cancel long running REPL evaluations

Deps.edn

  • Add a library on demand (Maven & Git SHAs)

Development

Run application:

clojure -A:fig:build

Figwheel will automatically push cljs changes to the browser.

Wait a bit, then browse to http://localhost:9500.

The REPtiLe server will be started in the background so there is no need to start a separate server in the development process.

Configuration

The location of the back-end server is configurable.

The name of the server can be set in the min.cljs.edn by changing reptile.tongue.config/TAIL_SERVER

Please also checkout the REPtiLE configuration options

Production Build

clojure -A:fig:min

AWS S3 hosting

AWS S3 buckets can be configured to host web sites and thus be used to serve the UI.

The s3-publish.sh script is provided for building the code and syncing with an S3 bucket.

The script will also invalidate any configured CloudFront distribution.