# lineSeparatorHandler **Repository Path**: zllylgw/line-separator-handler ## Basic Information - **Project Name**: lineSeparatorHandler - **Description**: Line Separator Handler是一个AI辅助工具,用于自动扫描Git仓库中的文件,检测LF/CRLF换行符不一致问题,并根据操作系统自动配置Git的core.autocrlf设置,批量转换文件换行符格式,生成修改报告。 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-12 - **Last Updated**: 2026-01-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Line Separator Handler Line Separator Handler是一个AI辅助工具,用于自动扫描Git仓库中的文件,检测LF/CRLF换行符不一致问题,并根据操作系统自动配置Git的core.autocrlf设置,批量转换文件换行符格式,生成修改报告。 ## 功能特性 - **自动扫描**:扫描Git仓库中的文本文件,检测LF/CRLF换行符格式 - **智能配置**:根据操作系统自动配置Git的core.autocrlf设置 - **批量转换**:根据操作系统类型批量转换文件换行符格式 - **报告生成**:生成详细的修改报告,包括修改的文件和格式转换情况 - **跨平台支持**:支持Windows、Linux和macOS系统 - **命令行界面**:提供完整的命令行操作界面 - **GUI界面预留**:预留GUI界面接口,可在未来扩展 ## 系统要求 - Go 1.20或更高版本 - Git(用于配置core.autocrlf设置) ## 安装方法 ### 方法一:直接运行 1. 从发布页面下载对应操作系统的可执行文件 2. 解压到任意目录 3. 运行可执行文件 ### 方法二:从源码构建 1. 克隆或下载本项目到本地 2. 进入项目目录 3. 运行以下命令构建项目: ```bash go mod tidy go build -o lineSeparatorHandler.exe # Windows go build -o lineSeparatorHandler # Linux/macOS ``` ## 使用说明 ### 命令行模式 ```bash # 基本用法(扫描当前目录) ./lineSeparatorHandler.exe --cli # 指定Git仓库目录 ./lineSeparatorHandler.exe --cli --dir /path/to/git/repo # 禁用自动配置Git ./lineSeparatorHandler.exe --cli --auto-config false ``` ### 参数说明 | 参数 | 类型 | 默认值 | 说明 | |------|------|--------|------| | `--cli` | bool | false | 使用命令行模式 | | `--dir` | string | "." | Git仓库目录路径 | | `--auto-config` | bool | true | 自动配置Git的core.autocrlf设置 | ### GUI模式(开发中) 直接运行可执行文件,默认会尝试启动GUI界面: ```bash ./lineSeparatorHandler.exe ``` ## 工作原理 1. **扫描阶段**:递归扫描指定目录中的文本文件,检测每个文件的换行符格式 2. **配置阶段**:根据当前操作系统自动配置Git的core.autocrlf设置 3. **转换阶段**:根据操作系统类型批量转换文件换行符格式 4. **报告阶段**:生成详细的修改报告,包括修改的文件和格式转换情况 ### 操作系统与换行符格式对应关系 | 操作系统 | 目标换行符格式 | Git core.autocrlf设置 | |----------|----------------|-----------------------| | Windows | CRLF (\r\n) | true | | Linux | LF (\n) | input | | macOS | LF (\n) | input | ## 支持的文件类型 - `.go` - Go源代码文件 - `.txt` - 文本文件 - `.md` - Markdown文件 - `.json` - JSON文件 - `.yaml` / `.yml` - YAML文件 - `.xml` - XML文件 - `.html` - HTML文件 - `.css` - CSS文件 - `.js` - JavaScript文件 - `.ts` - TypeScript文件 - `.py` - Python文件 - `.java` - Java文件 - `.c` / `.cpp` / `.h` / `.hpp` - C/C++文件 ## 报告格式 运行完成后,工具会生成一个`line_separator_report.txt`文件,包含以下内容: - 总文件数 - 已修改文件数 - 未修改文件数 - 修改详情(文件路径和转换后的格式) ## 示例报告 ``` ===== 换行符转换报告 ===== 总文件数: 10 已修改文件数: 3 未修改文件数: 7 修改详情: src/main.go: LF → CRLF src/utils.go: LF → CRLF test/test.txt: LF → CRLF ======================== ``` ### 报告格式说明 - **总文件数**: 扫描到的文本文件总数 - **已修改文件数**: 换行符格式被转换的文件数 - **未修改文件数**: 换行符格式无需转换的文件数 - **修改详情**: 显示每个被修改文件的路径、原始换行符格式和目标换行符格式,格式为 `原始格式 → 目标格式` ### 格式说明 - `LF`: Linux/macOS 风格的换行符 (\n) - `CRLF`: Windows 风格的换行符 (\r\n) ## 注意事项 1. 工具会自动跳过`.git`目录,避免修改Git内部文件 2. 只修改文本文件,不会影响二进制文件 3. 转换过程中会保留文件的原始权限设置 4. 报告文件会保存在当前工作目录中 ## 常见问题 ### 1. 为什么有些文件没有被转换? - 可能是因为文件不是文本文件 - 可能是因为文件已经使用了正确的换行符格式 ### 2. 为什么Git配置失败? - 可能是因为Git没有安装 - 可能是因为没有Git命令的执行权限 ### 3. 如何验证转换是否成功? - 查看生成的报告文件 - 使用文本编辑器查看文件的换行符格式 - 使用Git命令查看文件状态 ## 未来计划 - 实现GUI界面 - 支持更多文件类型 - 提供更多自定义选项 - 支持Git仓库的分支管理 - 集成到CI/CD流程中 ## 许可证 本项目采用MIT许可证。 ## 联系方式 如果您有任何问题或建议,欢迎联系我们。