Skip to content

smartmita/Code-Aggregation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

代码聚合工具 (Code Aggregator Tool) v1.5

这是一个基于 Python 和 Tkinter 的桌面应用程序,旨在帮助开发者快速、方便地将项目中的多个代码文件合并到一个文件中。聚合后的文件包含了清晰的文件结构树和所有指定文件的源代码,非常适合用于代码审查、项目归档或提交给大型语言模型进行分析。

✨ 功能特性

  • 图形用户界面 (GUI): 提供一个直观易用的界面,所有操作都可通过点击完成。
  • 灵活的文件搜索:
    • 支持按预设的文件扩展名(如 .py, .js, .html)进行筛选。
    • 支持自定义添加其他文件类型(如 .toml, .csv)。
  • 强大的忽略规则:
    • 按名称忽略: 可以忽略常见的文件夹和文件,如 venv, __pycache__, node_modules, .git 等。
    • 按完整路径忽略: 支持通过文件浏览器添加特定的文件夹或文件,实现精确忽略。
  • 自动生成文件树: 在输出文件的顶部,会自动生成一个清晰的目录结构树,展示所有被聚合文件的位置。
  • 多种输出格式: 支持将结果保存为 .txt 或 .md (Markdown) 格式。Markdown 格式会为每个文件代码块添加对应的语言标识,以实现语法高亮。
  • 配置持久化:
    • 自动保存用户的设置(如选择的目录、文件类型、忽略列表等)到 code_aggregator_config.json 文件中。
    • 启动时自动加载上次的配置,无需重复设置。
  • 智能处理:
    • 自动重命名: 如果输出文件已存在,程序会自动在文件名后添加序号(如 code_summary (1).md),避免覆盖现有文件。
    • 多线程执行: 核心的文件搜索和写入操作在独立的线程中运行,防止在处理大型项目时界面卡死。
  • 实时反馈:
    • 日志窗口: 实时显示程序的运行状态、找到的文件、发生的错误等信息。
    • 进度条: 直观地展示文件聚合的进度。

🚀 如何使用

  1. 运行程序:
    • 确保你的电脑上安装了 Python 环境。
    • 直接运行 code_aggregator_gui.py 脚本。
  2. 配置界面:
    • 1. 选择根目录: 点击“浏览...”选择你想要聚合代码的项目文件夹。
    • 2. 选择文件类型:
      • 勾选常见的文件类型。
      • 在“其他类型”输入框中,可以添加额外的文件后缀名,用逗号分隔(例如: .json,.xml)。
    • 3. 设置忽略项:
      • 勾选默认的忽略项(如 venv, .git)。
      • 点击“添加文件夹”或“添加文件”来指定需要精确忽略的路径。
      • 选中列表中的项,点击“移除选中项”来删除。
    • 4. 输出设置:
      • 输出目录: 选择聚合后文件的保存位置(默认为程序所在目录)。
      • 文件名: 设置输出文件的名称(默认为 code_summary)。
      • 格式: 选择输出格式为 .md 或 .txt。
      • 保存配置: 可以手动点击“保存当前配置”按钮。程序退出时也会自动保存。
    • 5. 执行与日志:
      • 点击“开始聚合”按钮启动任务。
      • 下方的日志区域会显示详细的操作过程。
      • 任务完成后,会弹出提示框,并询问是否立即打开生成的文件。

📄 配置文件

程序会在其所在目录下创建一个 code_aggregator_config.json 文件。这个文件用 JSON 格式存储了你在界面上的所有设置。你可以手动编辑它,但更推荐通过图形界面来修改配置。

🛠️ 依赖

该工具仅使用 Python 标准库,无需安装任何第三方依赖。

  • tkinter
  • os
  • sys
  • json
  • threading
  • queue

希望这份文档能帮助您更好地理解和使用这个工具!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages