# schog-code **Repository Path**: d-black/schog-code ## Basic Information - **Project Name**: schog-code - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-01 - **Last Updated**: 2026-08-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README --- # Schog-Code 辅助工具 ## 📖 项目简介 **Schog-Code** 是一款专为解决“大模型辅助编程中上下文长度受限”痛点而设计的本地开发辅助工具。 在使用大模型开发项目时,受上下文限制,通常需要“先定文件树、再分批生成代码”。本工具完美承接这一工作流:**先生成空文件骨架,再批量填充代码实现**,同时还支持 **导出项目文件树** 和 **合并项目文件为单文本**,方便将本地代码上下文一键投喂给大模型。 ## ✨ 核心特性 - 🚀 **零环境依赖**:Java 8 原生 HTTP 服务 + 纯前端,无需 Node.js 或 Python。 - 🗂️ **骨架自动生成**:粘贴 ASCII 文件树,自动解析并创建空文件骨架。 - 📦 **项目导出**: - **生成文件树**:一键生成标准 `tree` 格式文本。 - **合并为单文件**:按 `=== 路径 ===` 格式拼接所有文本文件,直接喂给大模型。 - 🧠 **智能路径处理**:自动拆分工作区/项目名,剥离多余前缀,防止目录嵌套。 - 📝 **智能解析**:支持 Markdown 代码块路径识别(` ```语言:路径 `)及本工具合并格式(`=== 路径 ===`)。 - 🎨 **紧凑包名预览**:右侧文件树合并单层目录链,类似 IDEA 的 `com.example.app` 风格。 - 🔍 **双重校验**:前端状态管理 + 后端文件系统真实存在性检查。 - 🛡️ **防呆机制**:未匹配文件二次确认弹窗,自动拦截 `..` 路径穿越,操作后自动刷新。 ## 🛠️ 技术栈 - **后端**:Java 8,`com.sun.net.httpserver`,Hutool,Lombok - **前端**:原生 HTML5 / CSS3 / JavaScript (ES6) - **构建**:Maven ## 🚀 快速开始 1. 确保已安装 JDK 8+ 和 Maven。 2. 用 IDE 打开项目,等待依赖下载。 3. 运行 `cn.kirsi.schog.code.App` 的 `main` 方法。 4. 浏览器将自动打开 `http://localhost:8888`。 ## 📖 使用指南 左侧面板通过顶部按钮切换 **“骨架/填充”** 和 **“项目导出”** 两大模块。 ### 1. 骨架/填充 **配置工作区** 双击顶部“工作区”输入框选择目录,工具自动拆分为工作区和项目名,点击 **加载**。 **生成骨架** - 将大模型输出的文件树粘贴到“骨架生成”输入框。 - 点击 **解析预览**,工具自动识别项目名。 - 点击 **确认生成** 即可创建空文件。 **填充代码** - 将大模型回复(带文件路径的 Markdown 代码块或合并格式)粘贴到“代码填充”输入框。 - 点击 **解析提取**,右侧卡片将显示匹配状态。 - 勾选文件后点击 **批量写入**,未匹配项会弹出确认弹窗。 ### 2. 项目导出 - **生成文件树**:点击 **📁 生成文件树** 得到标准 tree 文本,可复制给大模型。 - **合并为单文件**:点击 **📦 合并为单文件** 将所有文件拼接为单个文本,直接投喂。 ## 🧠 给大模型的提示词模板 ### 生成文件树格式 ``` 请输出项目文件树,格式要求: - 第一行是根目录名 - 使用 ├── 和 └──,每级缩进4个空格 - 目录名以 / 结尾,文件不加 / - 只输出纯文本,不要代码块包裹 示例: my-project/ ├── src/ │ └── main/ │ └── java/ │ └── com/ │ └── example/ │ ├── App.java │ └── service/ │ └── UserService.java ├── pom.xml └── README.md ``` ### 生成带路径代码块格式 ``` 每个文件用独立 Markdown 代码块,格式:```语言:相对路径 相对路径不含项目根目录名。 示例: ```java:src/main/java/com/example/App.java package com.example; public class App { ... } ``` > 💡 技巧:将“合并为单文件”的内容和大模型需求一起发送,即可获得匹配格式的回复。 ## 🏗️ 架构设计亮点 - **分层解耦**:一级菜单分流流程,二级 Tab 分离骨架/填充。 - **统一基准路径**:前端维护 `basePath = workspace/project`,后端只做文件操作。 - **真实校验**:后端用 `File.exists()` 返回路径存在状态,避免前端字符串误判。 ## 📂 目录结构 ```text schog-code/ ├── pom.xml └── src/main/ ├── java/cn/kirsi/schog/code/ │ ├── model/ │ │ └── FileNode.java │ ├── server/ │ │ ├── ApiRouterHandler.java │ │ ├── HttpServerManager.java │ ├── service/ │ │ ├── CodeFillService.java │ │ ├── ExportService.java │ │ ├── SkeletonService.java │ │ └── WorkspaceService.java │ └── App.java └── resources/static/ ├── css/ │ └── style.css ├── js/ │ ├── api.js │ ├── app.js │ ├── md-parser.js │ └── tree-parser.js └── index.html ``` ## 📌 注意事项 - 推荐使用 Chrome 或 Edge。 - 合并文件时自动跳过二进制文件(检测前 8KB 是否含 `\0`)。 - 工具自动拦截 `..` 路径,确保安全。