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 的貢獻。