{"id":21291688,"url":"https://github.com/jdtsmith/comint-fold","last_synced_at":"2025-03-15T16:34:28.017Z","repository":{"id":206666133,"uuid":"717418078","full_name":"jdtsmith/comint-fold","owner":"jdtsmith","description":"Fold input + output blocks in Emacs comint shells","archived":false,"fork":false,"pushed_at":"2023-12-14T12:58:14.000Z","size":34,"stargazers_count":8,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-22T06:24:18.410Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Emacs Lisp","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jdtsmith.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2023-11-11T12:44:10.000Z","updated_at":"2024-11-14T06:00:27.000Z","dependencies_parsed_at":"2023-12-14T13:49:27.910Z","dependency_job_id":null,"html_url":"https://github.com/jdtsmith/comint-fold","commit_stats":null,"previous_names":["jdtsmith/comint-fold"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jdtsmith%2Fcomint-fold","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jdtsmith%2Fcomint-fold/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jdtsmith%2Fcomint-fold/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jdtsmith%2Fcomint-fold/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jdtsmith","download_url":"https://codeload.github.com/jdtsmith/comint-fold/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243760572,"owners_count":20343654,"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-11-21T13:39:20.013Z","updated_at":"2025-03-15T16:34:27.995Z","avatar_url":"https://github.com/jdtsmith.png","language":"Emacs Lisp","funding_links":[],"categories":[],"sub_categories":[],"readme":"# comint-fold: Fold input + output blocks in Emacs shells\n\n`comint-fold` is a small Emacs global minor-mode which configures `hideshow` mode in comint buffers to allow *folding* (hiding and unhiding) blocks of input and associated output. \n\nIt can optionally bind the `Tab` key to fold such blocks (when prior to the prompt), and add a fringe indicator for folded blocks.\n\n\u003cimg width=\"449\" alt=\"comint-fold with folded input blocks\" src=\"https://github.com/jdtsmith/comint-fold/assets/93749/c7d768d9-117b-400a-ba79-153bbbf6c48d\"\u003e\n\n## Using\n\nUse normal `hideshow` commands (like `hs-show-all`), or `Tab`, if `comint-fold-remap-tab` is set.  \n\n## Install/configure\n\nNot in a package repo.  Simply `package-vc-install` or clone and:\n\n```elisp\n(use-package comint-fold\n  :load-path \"~/path/to/comint-fold/\"\n  :config\n  (comint-fold-mode 1)\n  ;; configure some modes specially; try first without this, many \"just work\"\n  (add-hook 'gdb-mode-hook\n            (comint-fold-configure-hook 0 (rx bol \"(gdb)\" (+ space))))\n  (add-hook 'ipy-mode-hook\n            (comint-fold-configure-hook 1 'ipy-prompt-regexp)))\n```\n\nNormally it should *just work* for comint-derived shells.  Prompts are identified using `comint-prompt-regexp`.  Some comint-based modes do not configure this variable.  See `comint-fold-prompt-regexp` for configuring these. \n\nSome shells add an extra line or more before the prompt, and it can be nice to leave this line unhidden.  See `comint-fold-blank-lines`.  These two variables can be locally configured for a given mode at the same time by using the convenience function `comint-fold-configure-hook` to add to their hooks:\n\n```elisp\n(add-hook 'some-comint-derived-mode-hook\n   (comint-fold-configure-hook num-extra-blanks 'prompt-regexp-var))\n```\n\nTwo additional custom variables control `Tab` rebinding and fringe indicators:\n\n- `comint-fold-remap-tab [t]`: if non-nil, remap the `Tab` key to toggle fold of the enclosing block when point is before the current active prompt position.\n- `comint-fold-fringe-indicator [top-left-angle]`: an indicator bitmap (symbol) to place in the fringe when folded (if non-nil).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjdtsmith%2Fcomint-fold","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjdtsmith%2Fcomint-fold","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjdtsmith%2Fcomint-fold/lists"}