{"id":18008203,"url":"https://github.com/dgrnbrg/redl","last_synced_at":"2025-03-26T12:32:04.333Z","repository":{"id":6094200,"uuid":"7321213","full_name":"dgrnbrg/redl","owner":"dgrnbrg","description":"A better IDE integration story for Clojure","archived":false,"fork":false,"pushed_at":"2014-08-02T16:07:02.000Z","size":242,"stargazers_count":33,"open_issues_count":2,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-21T19:12:18.196Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Clojure","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"nukomeet/nukomeet.com","license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dgrnbrg.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-12-25T23:06:01.000Z","updated_at":"2020-09-21T20:39:43.000Z","dependencies_parsed_at":"2022-08-27T14:26:33.687Z","dependency_job_id":null,"html_url":"https://github.com/dgrnbrg/redl","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dgrnbrg%2Fredl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dgrnbrg%2Fredl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dgrnbrg%2Fredl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dgrnbrg%2Fredl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dgrnbrg","download_url":"https://codeload.github.com/dgrnbrg/redl/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245654314,"owners_count":20650843,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-30T01:17:50.505Z","updated_at":"2025-03-26T12:32:04.081Z","avatar_url":"https://github.com/dgrnbrg.png","language":"Clojure","funding_links":[],"categories":["Debugging"],"sub_categories":[],"readme":"# redl\n\nRead-Eval-Debug-Loop\n\nA better Clojure IDE integration experience!\n\nRedl has been integrated into Vim, in dgrnbrg/vim-foreplay:omnicomplete\n\n## Usage\n\nNote: the namespaces are subject to refactoring, and will become separate in the future.\n\n### Omnicompletion\n\n`completions` finds fuzzy completions of a form in a given namespace. It treats `.`, `$`, and `/`\nas separators, and requires an equal number and order of separators to appear in the match target.\nThe first character in each non-separator region must be the first character in the match;\nhowever, the other characters can appear in any order.\n\nCompletions matches Clojure namespaces and aliases, namespace and alias-qualified vars, unqualified\nvars, imported Java classes, methods of imported Java classes, qualified Java classes, and static\nmethods and fields of qualified and imported Java classes.\n\nMetadata is also computed about the completions. Clojure functions and vars include docstrings\nand arglists. Java classes include the type signatures of their constructors. Java methods\ninclude all available type signatures.\n\nThe matches are scored and sorted, where the score is computed by looking at how many characters\nthat were not specified occurred between each character in the pattern, penalizing one large\nfiller group over several small ones, and prefering that the pattern characters appear towards\nthe front of the match.\n\nExamples of matches:\n\n- `clj./mp` matches `clojure.core/map`\n- `./join` matches `clojure.string/join`\n- `M/cos` matches `Math/cos`\n- `.st` matches `.start`, since `Thread` is included by default.\n\nMore examples can be found in the tests.\n\n### Debug Repl\n\n`make-repl` creates a repl and returns its id. `repl-eval` evaluates a form on an existing\nrepl, and returns the stdout, stderr, return value, and other metadata about the evaluation.\n\nRedl is a debug repl, which means that at any point you can call `break`, in which case\nyou'll drop into a sub-repl. This sub-repl has the same local scope as the `break` had,\nand can be used to inspect and explode in the middle of a function evaluation. When you're\nready to return, invoke `continue`. You can have `break` return its optional invoke if you\ninvoke `continue` with no arguments, or you can have `break` return something else by invoking\n`continue` with an argument. You can also use `step-out` to move to a higher repl level,\nto exit loops and nested loops quickly. See the tests for more examples, or below for a sample session.\n\n    redl.core=\u003e (+ 1 2)\n    3\n    redl.core=\u003e (+ 1 (break 3))\n    Encountered break, waiting for input...\n    redl.core:debug-1=\u003e (continue 8)\n    9\n    redl.core=\u003e (let [x 1 y 2] (* x y (break 3)))\n    Encountered break, waiting for input...\n    redl.core:debug-1=\u003e (println x y)\n    1 2\n    nil\n    redl.core:debug-1=\u003e (continue)\n    6\n\n## Including in a Leiningen project\n\nNote: these will be easier when I get around to it.\n\nYou'll need to clone this repository, then run `lein install` to include it in your\nlocal maven cache. Next, you'll want to add the following keys to your `.lein/profiles.clj`:\n\n- `:injections [(require '[redl core complete])]` ensure that redl is loaded on jvm startup\n- `:dependencies [[redl \"0.2.0\"]]` ensures that redl is available on the classpath\n\n## License\n\nCopyright © 2012 David Greenberg\n\nDistributed under the Eclipse Public License, the same as Clojure.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdgrnbrg%2Fredl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdgrnbrg%2Fredl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdgrnbrg%2Fredl/lists"}