{"id":23642424,"url":"https://github.com/sogaiu/ajrepl","last_synced_at":"2025-08-31T18:32:53.737Z","repository":{"id":118761369,"uuid":"433704128","full_name":"sogaiu/ajrepl","owner":"sogaiu","description":"A mode for interacting with a Janet REPL","archived":false,"fork":false,"pushed_at":"2024-11-18T03:37:04.000Z","size":168,"stargazers_count":6,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-11-18T04:35:40.388Z","etag":null,"topics":["editor-plugin","emacs","janet","repl"],"latest_commit_sha":null,"homepage":"","language":"Janet","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sogaiu.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-12-01T06:05:29.000Z","updated_at":"2024-10-15T12:05:29.000Z","dependencies_parsed_at":null,"dependency_job_id":"4c40a6af-bcf4-4089-b24d-e191b6fdc1cd","html_url":"https://github.com/sogaiu/ajrepl","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/sogaiu%2Fajrepl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sogaiu%2Fajrepl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sogaiu%2Fajrepl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sogaiu%2Fajrepl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sogaiu","download_url":"https://codeload.github.com/sogaiu/ajrepl/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":231615472,"owners_count":18400983,"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":["editor-plugin","emacs","janet","repl"],"created_at":"2024-12-28T10:50:54.166Z","updated_at":"2025-08-31T18:32:53.731Z","avatar_url":"https://github.com/sogaiu.png","language":"Janet","readme":"# ajrepl\n\nA mode for interacting with a Janet REPL\n\n## Setup\n\nHow to set things up varies a bit depending on how one manages one's\nEmacs, e.g. straight.el, Doom, etc.  What's common to all situations\nis likely:\n\n* Ensure [janet-ts-mode](https://github.com/sogaiu/janet-ts-mode) or\n  `janet-mode` is installed and configured.  (If using `janet-mode`,\n  replace `janet-ts-mode` and `janet-ts-mode-hook` below with\n  `janet-mode` and `janet-mode-hook` respectively.)\n\n* Clone this repository.\n\n### Manual\n\n* If you cloned to `~/src/ajrepl`, add the following to your\n  `.emacs`-equivalent:\n    ```elisp\n    (add-to-list 'load-path\n                 (expand-file-name \"~/src/ajrepl\"))\n\n    (require 'ajrepl)\n\n    (add-hook 'janet-ts-mode-hook\n              #'ajrepl-interaction-mode)\n    ```\n\n### Elpaca\n\n* Add something like the following to your `.emacs`-equivalent:\n    ```elisp\n    (use-package ajrepl\n      :elpaca (:host github\n               :repo \"sogaiu/ajrepl\"\n               :files (\"*.el\" \"ajrepl\"))\n      :config\n      (add-hook 'janet-ts-mode-hook\n                #'ajrepl-interaction-mode))\n    ```\n\n### straight.el\n\n* Add something like the following to your `.emacs`-equivalent:\n    ```elisp\n    (straight-use-package\n      '(ajrepl :host github\n               :repo \"sogaiu/ajrepl\"\n               :files (\"*.el\" \"ajrepl\")))\n\n    (use-package ajrepl\n      :straight t\n      :config\n      (add-hook 'janet-ts-mode-hook\n                #'ajrepl-interaction-mode))\n    ```\n\n### Doom\n\n* The following might work for Doom:\n    ```elisp\n    (package! ajrepl\n      :recipe (:type git\n               :host github\n               :repo \"sogaiu/ajrepl\"\n               :files (:defaults (\"ajrepl/\"\n                                  \"ajrepl/*\"))))\n\n    (use-package! ajrepl\n      :after janet-ts-mode\n      :config\n      (add-hook 'janet-ts-mode-hook\n                #'ajrepl-interaction-mode))\n    ```\n\n### package.el\n\n* Sorry, no support for that.  The manual instructions should work\n  though.\n\n## Usage\n\n0. Open a Janet file\n\n1. Start an interactive REPL for Janet by `M-x ajrepl`.\n\n    A buffer for a Janet repl should appear.\n\n2. Various forms of sending things to the REPL should be possible, e.g.\n\n    * Send buffer (`C-c C-b`)\n    * Send expression at point (`C-x C-e`)\n    * Send top-level expression at point (`C-M-x`)\n    * Send expression upscoped (`C-c C-u`) - see below for details\n    * Send region (`C-c C-r`)\n\n    If Emacs' menus are enabled, there should be a `Ajrepl` menu\n    which shows the above (and other) commands.\n\n## Misc Notes\n\n`ajrepl-send-expression-upscoped` can be handy when evaluating forms\nsuch as `(import ...)` which might otherwise lead to output one might\nnot be interested in.\n\n## Experimental Commands\n\nThere's also a file named `ajrepl-experiment.el` that contains some\nexperimental (aka \"may not stick around\") functionality.\n\nIf the file is required, it should add some additional things to the\n`Ajrepl` menu.  Alternatively, using the \"Enable Experimental\nFeatures\" menu item under the `Ajrepl` menu may work too.\n\n## Credits\n\n* sarna - discussion about repl buffer messiness\n* sbocq - discussion and code about `eval-defun`\n\n## Issues\n\n* The REPL buffer gets very messy due to prompt information from\n  `janet`.\n  \n  There are some commands in `ajrepl-experiment.el` (see above for how\n  to enable) that are an attempt to improve this situation:\n\n  * `ajrepl-simplify-repl-prompt`\n  * `ajrepl-timestampify-repl-prompt`\n\n  For more details, have a look starting at [this issue\n  comment](https://github.com/sogaiu/ajrepl/issues/4#issuecomment-3149618006)\n  and later.\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsogaiu%2Fajrepl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsogaiu%2Fajrepl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsogaiu%2Fajrepl/lists"}