Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Try out Clojure (libraries) via rebel-readline

License

NotificationsYou must be signed in to change notification settings

eval/deps-try

Repository files navigation

Quickly try out Clojure and libraries onrebel-readline:

Screenshot 2023-02-09 at 13 37 09

This README is aimed at people starting their Clojure journey as well as Clojure experts. If anything is not clear, or you learned something that might help other starters, please open an issue or start a new discussion 🌸

chat - #clojure

Rationale

This tool targets both Clojure newcomers as well as Clojure experts.

Trying out Clojure is easier when you have code completion, syntax highlighting and function documentation and examples nearby.deps-try provides a REPL with exactly these IDE functionalities (and some more).
This means there's no need to install or configure any Clojure plugins/extensions for your editor. Also you don't need to setup a project this way, so instead of diving into the nitty gritty details of adeps.edn configuration file, you can start writing Clojure.

Adding maven/git/local-libraries can be done using a convenient notation:

$ deps-try some-maven/library com.github.user/a-git-project ~/some/local/project# add additional libraries during a REPL-session (no restart needed)users=> :deps/try another/library "https://github.com/seancorfield/next-jdbc" "../other/local/project"

Again, no need to setup or adjust a project, or type out the full configuration at the command line.

Features

## Features
  • always use the latest release of Clojure.
  • conveniently use dependencies from maven/clojars, various git-hostings or local projects.
  • add dependencieswithout restarting the REPL.
  • see what versions are resolved
  • recipes
    • seed the REPL-history with steps from a file.
  • dependencies are resolved in isolation (as much as possible)
    • ...ignoring global, project or project deps.edn.
  • rebel-readline provides:
    • syntax highlighting and indentation
    • code completion
    • see the docstring and source of a function
  • deps-try extends rebel-readline with:
    • show examples of a function from clojuredocs.org
    • pprint results with syntax highlighting
    • interrupt operations without quiting the REPL
    • easier copy/paste of multiline code
    • improved support for eval-at-point (e.g. set and list literals, var quote, deref)
    • eval&tap-at-point
      • like eval-at-point and it taps the result.
      • taps the last result/exception on an empty line.
    • improved suggestions
      • more shown
      • different colors for fns and vars, private vars/fns and deprecated vars.
  • toggle Clojure settings
    • clojure.core/*print-meta*
    • clojure.core/*print-namespace-maps* (default off)

Installation

Docker

The easiest way to start.

# latest stable$ docker run -it --pull always ghcr.io/eval/deps-try# unstable (i.e. master branch)$ docker run -it --pull always ghcr.io/eval/deps-try:unstable

See-h orUsage for detailed options.

Homebrew (Linux and macOS)

Prerequisites

Ensure you have aClojure compatible Java version.

Verify that the following commands work:

$ java -version# example outputopenjdk version"21.0.2" 2024-01-16 LTSOpenJDK Runtime Environment Temurin-21.0.2+13 (build 21.0.2+13-LTS)OpenJDK 64-Bit Server VM Temurin-21.0.2+13 (build 21.0.2+13-LTS, mixed mode)

Install

$ brew install eval/brew/deps-try# For future upgrades do:$ brew update&& brew upgrade deps-try

There's also the unstable releases (the latest master):

$ brew install --head eval/brew/deps-try# For future upgrades do:$ brew update&& brew reinstall deps-try

bbin (Windows, Linux and macOS)

bbin allows for easy installation of Babashka scripts (such as deps-try).

It's currently the only way to install deps-try on Windows.

Prerequisites

Ensure you have aClojure compatible Java version.

Also:install bbin (make sure to adjust $PATH).

Verify that the following commands work:

$ java -version# example outputopenjdk version"21.0.2" 2024-01-16 LTSOpenJDK Runtime Environment Temurin-21.0.2+13 (build 21.0.2+13-LTS)OpenJDK 64-Bit Server VM Temurin-21.0.2+13 (build 21.0.2+13-LTS, mixed mode)$ bbin --version# example outputbbin 0.2.0

Install

$ bbin install https://github.com/eval/deps-try/releases/download/stable/deps-try-bb.jar --as deps-try# or the unstable version (latest master)$ bbin install https://github.com/eval/deps-try/releases/download/unstable/deps-try-bb.jar --as deps-try-unstable# Check version$ deps-try -v# Re-run the install command to upgrade

manual (Windows, Linux and macOS)

Prerequisites

Verify that the following commands work:

$ clj# REPL starts successfully, ergo Clojure and Java are correctly configured.$ bb --versionbabashka v1.3.190

Install

#!/usr/bin/env shexec bb /absolute/path/to/deps-try-bb.jar"$@"

Usage

$ deps-try -hA CLI to quickly try Clojure (libraries) on rebel-readline.VERSION  v0.12.0USAGE  $ deps-try [dep-name [dep-version] [dep2-name ...] ...] [--recipe[-ns] recipe]OPTIONS  dep-name    dependency from maven (e.g.`metosin/malli`,`org.clojure/cache`),    git (e.g.`com.github.user/project`,`ht.sr.user/project`,`https://github.com/user/project`,`https://anything.org/user/project.git`),    or alocal folder containing a file`deps.edn` (e.g.`.`,`~/projects/my-project`,`./path/to/project`).  dep-version (optional)    A maven version (e.g.`1.2.3`,`LATEST`) or git ref (e.g.`some-branch`,`v1.2.3`).    The id of a PR or MR is also an acceptable versionfor git deps (e.g.`^123`).    When not provided,`LATEST` is impliedfor maven deps and the latest SHA    of the default-branchfor git deps.  --recipe, --recipe-ns    Name of recipe (see recipes command) or a path or url to a Clojure file.    The REPL-history will be seeded with the (ns-)steps from the recipe.EXAMPLES;; The latest version of malli from maven, and git-tag v1.3.894 of the next-jdbc repository  $ deps-try metosin/malli io.github.seancorfield/next-jdbc v1.3.894COMMANDS  recipes    list built-in recipes (`recipes --refresh` to update)

More examples

# A REPL using the latest Clojure version$ deps-try# A REPL with specific dependencies (latest version implied)$ deps-try metosin/malli criterium/criterium# ...specific version$ deps-try metosin/malli 0.9.2# Dependency from GitHub/GitLab/SourceHut (gets you the latest SHA from the default branch)$ deps-try https://github.com/metosin/malli# ...a specific branch/tag/SHA$ deps-try https://github.com/metosin/malli some-branch-tag-or-sha# ...using the 'infer' notation, e.g.# com.github.<user>/<project>, com.gitlab.<user>/<project>, ht.sr.~<user>/<project>$ deps-try com.github.metosin/malli# testdriving some PR (or MR from gitlab):$ deps-try com.github.metosin/malli ^123# A local project$ deps-try . ~/some/project ../some/other/project# Loading a recipe# ...built-in recipe (to learn more about recipes)$ deps-try --recipe deps-try/recipes# ...external$ deps-try --recipe https://gist.github.com/eval/ee80ebddaa120a7732396cea8cfc96daDuring a REPL-session:# add additional dependenciesuser=> :deps/try dev.weavejester/medley "~/some/project"# see help for all optionsuser=> :repl/help

Recipes

This feature was sponsored byClojurists Together ✨ in Q3-2023.

Read all aboutrecipes here.

Bindings

BindingComment
TAB /Ctrl +IIndent or complete.deps-try-tab
Ctrl +XCtrl +AApropos. Search all public vars in loaded namespaces matching word before cursor.deps-try-apropos
Ctrl +XCtrl +DShow doc of function (or namespace) using word before cursor.Screenshot 2023-04-04 at 15 38 12
Ctrl +XCtrl +EEval expression before cursor.deps-try-eval
Ctrl +XCtrl +TEval expression before cursorandtap> the result (taps the last result/exception on empty line).
Ctrl +XCtrl +MForce accept line (when cursor is in a position whereReturn would insert a newline).deps-try-force-accept
Ctrl +XCtrl +SShow source of function using word before cursor.Screenshot 2023-04-04 at 17 26 47
Ctrl +XCtrl +XSearchesclojuredocs for examples using word before cursor.Screenshot 2023-04-04 at 15 32 26
Ctrl +RSearch termCtrl +R (backward) /Ctrl +S (forward)Searches history for commands containingSearch termdeps-try-search-history
Esc/Alt +ReturnInsert newline (whereReturn would otherwise submit line).deps-try-insert-newline
Code +Searches history for lines starting withCode (e.g. find all requires, defs etc).deps-try-arrow-up
Alt +p /Alt +nStep back-/forward through historywithout stepping through every line of a history item (as/ do).

FAQ

How to use the vendored rebel-readline in isolation?

I got you:

$ clojure -Sdeps'{:deps {com.github.eval/deps-try {:deps/root "vendor/rebel-readline/rebel-readline" :git/sha "3781e67c3afae3b51f414db1b12abe5ff33d480b"}}}' -m rebel-readline.main

Credits

Big thanks toBruce Hauman and contributors for creatingrebel-readline 🌸.
While theGitHub contributors page now only shows a meager 1 commit fromBruce Hauman, this couldn't be farther from the truth obviously.
Big thanks toAvery Quinn for coming up withlein-try which inspired the creation of this project (once tools-deps came out).

LICENSE

Copyright (c) 2024 Gert Goet, ThinkCreate.Distributed under the MIT license. See LICENSE.

Code in vendor/rebel-readline originates fromrebel-readline which is covered by the Eclipse Public License either version 1.0 or (at your option) any later version.


[8]ページ先頭

©2009-2025 Movatter.jp