c2p 是根據code2prompt修改的自用工具。 c2p 簡化了 code2prompt 的操作方式,同時也修復了一些在使用時發現的小問題。
- 移除
c2p <path>
命令,因為增加另的子命令,所以這個命令需要轉為子命令
- 增加
c2p clone <url>
子命令,此功能會將網上的項目clone
到臨時文件夾並進行提示生成處理。 - 增加
c2p path <path>
子命令,等於原來的c2p <path>
- 增加
-l / --lang
配置,設定AI 回答的語言,如--lang zh-hant
是使用繁體中文回答。如沒有使用-l
,會自動進入語言選擇介面 - 增加
--hbs <.hbs path>
配置,用於使用自定義 Handlebars 模板文件 - 增加
--in
配置,同原有的--include
- 增加
--nor
配置,同原有的--exclude
- 修改
-t / --template <template name>
配置,專注於使用預定義的 Handlebars 模板文件- 直接使用
-t
而不填寫<template name>
,會顯示所有預定義的 Handlebars 模板文件,並提供交互的方式來選擇使用相關 Handlebars 模板。 - 使用
-t <template name>
時,不需要填寫.hbs
,如-t write-git-commit
即可
- 直接使用
- 移除
-d / --diff
配置,程式會自動根據 Handlebars 模板文件查詢是否需要相關內容 - 移除
--git-diff-branch
配置,程式會自動根據 Handlebars 模板文件查詢是否需要相關內容,並用交互的方式獲取所需資料 - 移除
--git-log-branch
配置,對我來說有點用不上,在git.rs 直接移除了相關Function - 移除
--token
配置,因為已經是標配,只能為 True - 移除
--include
配置,改由--in
處理 - 移除
--exclude
配置,改由--nor
處理
- 增加
write-github-changelog-daily
,以每天總結一次的方式來總結所有提交 - 增加
write-github-changelog-biweekly
,以每兩周總結一次的方式來總結所有提交 - 增加
write-installation-manual
,撰寫安裝文件 - 增加
write-operation-manual
,撰寫操作文件 - 增加
write-maintenance-manual
,撰寫維護文件 - 增加
write-api-manual
,撰寫API使用文件 - 修改
write-git-commit
,根據opencommit 項目的 Prompt 來進行修改 - 修改
refactor
,簡單修改提示詞 - 修改
document-the-code
,簡單修改提示詞
- 增加
git_log_date
,等同於git log -p --since="YYYY-MM-DD" --until="YYYY-MM-DD"
,相關日期會通過交互的方式要求使用者填寫 - 移除
git_log_branch
,對我來說有點用不上
- 從代碼庫生成 LLM 提示
- 支持多種模板,包括 Git 提交、GitHub 拉取請求、文檔生成等
- 提供過濾選項,包括包含和排除模式
- 支持自定義 Handlebars 模板
- 計算生成的提示的令牌數量
- 支持將生成的提示複製到剪貼板或寫入文件
從 Releases 下載適用於您操作系統的最新二進制文件,或使用 cargo
安裝:
cargo install --git https://github.com/jeromeleong/c2p
您需要安裝以下工具:
git clone https://github.com/jeromeleong/c2p.git
cd c2p/
cargo build --release
在項目根目錄中,使用
c2p path ./
[2024-08-29T14:49:27Z INFO c2p] 遍歷目錄並構建樹...
[2024-08-29T14:49:27Z INFO c2p] 完成!
> 請選擇回覆使用的語言: zh-hant (繁體中文)
[i] Token 數量: 30119, 模型資訊: GPT-4o models
[✓] 成功複製到剪貼板。
成功🏅
生成默認提示:
c2p path /path/to/codebase
查看並選擇預定義 Handlebars 模板:
c2p path /path/to/codebase -t
使用指定的預定義 Handlebars 模板:
c2p path /path/to/codebase -t template
使用自定義 Handlebars 模板文件:
c2p path /path/to/codebase --hbs path/to/template.hbs
包含特定文件模式:
c2p path /path/to/your/codebase --include "*.rs,*.py"
排除特定文件模式:
c2p path /path/to/your/codebase --exclude "*.log,*.txt"
從 GitHub 進行臨時克隆,然後生成默認提示:
c2p clone https://github.com/user/repo.git
從 GitHub 進行臨時克隆,然後查看並選擇預定義 Handlebars 模板:
c2p clone https://github.com/user/repo.git -t
所有子命令都適用下面的配置
--in
: 包含模式(多個正則可用逗號分隔)--nor
: 排除模式(多個正則可用逗號分隔)--include-priority
: 在包含和排除模式衝突時,優先包含--exclude-from-tree
: 根據排除模式從源樹中排除文件/文件夾--encoding
: 使用的令牌化器(默認為 cl100k)--output
: 輸出文件路徑--line-number
: 在源代碼中添加行號--no-codeblock
: 禁用將代碼包裝在 Markdown 代碼塊中--relative-paths
: 使用相對路徑而不是絕對路徑--no-clipboard
: 禁用複製到剪貼板--template
: 使用預定義模板--hbs
: 自定義 Handlebars 模板路徑--json
: 以 JSON 格式打印輸出--lang
: 回復使用的語言
歡迎貢獻!請 fork 倉庫,創建分支,進行更改,並提交拉取請求。請確保通過所有測試並遵循代碼風格指南。
運行測試:
cargo test
詳情請參閱 CHANGELOG 文件。
本項目使用 MIT 許可證。詳情請參閱 LICENSE 文件。
感謝所有貢獻者和開源社區的支持。特別感謝 Mufeed VH 和 Olivier D'Ancona 的貢獻。