di-sukharev / di-sukharev/opencommit
[Feature]: Integrated Options for Editing and Regenerating Commit Messages
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 7.5k
- Forks
- 445
- Avg merge
- 18m
- Merged PRs (30d)
- 2
Description
Description
- Consider adding an integrated option for editing the generated commit message before finalizing.
- Alongside 'accept' and 'cancel,' include an integrated feature for easy commit message regeneration.
Suggested Solution
Integrated Editing Option
Add config option to have different style of editing enabled
- UI Prompt: After a commit message is generated, present a text-based UI within the CLI that allows users to edit the message in place.
- Temporary File: Alternatively, auto-open a temporary file (e.g., in Vim or another default editor) where the generated commit message can be edited.
- Confirmation Step: Add a confirmation step after editing, so the user can review the edited message before proceeding with the commit.
Regenerate Commit Message Feature
Regenerate Option in UI: Alongside 'accept' and 'cancel,' include a 'regenerate' option in the CLI prompt. When selected, a new commit message is generated and the options are displayed again.
Alternatives
No response
Additional Context
In my experience, many generated commit messages require further refinement. I frequently find myself either copying messages to edit them manually or using git commit --amend for post-commit adjustments. Additionally, some messages are misaligned with their corresponding changes, necessitating frequent regenerations.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing the CLI flow that displays the generated commit message and the accept/cancel choices, then identify how commit generation is invoked. Define the configuration and interaction design for in-place editing, temporary-file editing, confirmation, and regeneration; done means each selected behavior works before the commit is finalized.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- git, javascript
- Domain
- cli, developer-experience
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100