# ByCompare **Repository Path**: masonwu21/by-compare ## Basic Information - **Project Name**: ByCompare - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-29 - **Last Updated**: 2026-07-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ByCompare v1.0.1 基于 TauriCPP + Monaco Editor 0.56.0 的轻量级文件对比工具,灵感来自 Beyond Compare。支持双向差异同步、文件拖拽、多语言高亮,浅色主题界面。 ## 功能特性 - **双向差异对比** — 基于 Monaco DiffEditor,左右两侧实时对比文件差异 - **差异同步** — 使用 Monaco 原生右箭头(renderMarginRevertIcon)将左侧内容同步到右侧 - **差异导航** — 上一个/下一个差异点快速跳转,状态栏显示差异数量 - **文件拖拽** — 支持从资源管理器拖拽文件到左侧或右侧编辑区自动加载 - **多语言高亮** — 支持 20+ 种语言(C/C++、JavaScript、Python、Go、Rust、Java 等) - **修改提示** — 文件修改后保存按钮高亮,退出前提示未保存修改 - **交换左右** — 一键交换左右文件位置 - **浅色主题** — VS 主题浅色背景,简洁清爽 - **单文件部署** — 前端资源嵌入 exe,无临时文件,无外部依赖 ## 截图 工具栏布局:版本号 | 打开左/右 | 保存左/右 | 上一个/下一个差异 | 语言选择 ## 快速开始 ### 环境要求 - Windows 10/11(需预装 WebView2 运行时) - Visual Studio 2019+ (含 C++ 桌面开发工作负载) - [vcpkg](https://vcpkg.io) (classic 模式) - Python 3.7+ (用于资源打包脚本) - CMake 3.20+ & Ninja (随 VS C++ 工作负载安装) ### 构建依赖(首次) ```powershell # 在 TauriCPP 目录下执行(安装 webview2 SDK) .\TauriCPP\build.ps1 -SetupDeps ``` ### 构建 ```powershell .\build.ps1 # 构建 (Release) .\build.ps1 -Clean # 清理并重新构建 ``` 输出: `build\ByCompare.exe` ### 运行 ```powershell # 直接启动 .\run.bat # 或通过命令行加载示例文件 .\build\ByCompare.exe sample\original.cpp sample\modified.cpp ``` ## 使用说明 ### 打开文件 - 点击工具栏 **打开左** / **打开右** 按钮选择文件 - 直接拖拽文件到窗口左半部分加载为左侧,右半部分加载为右侧 - 通过命令行参数启动时自动加载:`ByCompare.exe <左文件> <右文件>` ### 差异同步 - 点击左侧编辑器边距的原生右箭头,将左侧差异同步到右侧 - 点击右侧编辑器边距的左箭头,将右侧差异同步到左侧 - 工具栏 **上一个** / **下一个** 按钮跳转差异点 ### 保存文件 - 修改后对应保存按钮高亮显示 - 点击 **保存左** / **保存右** 保存内容 - 退出时若有未保存修改,会弹出确认对话框 ## 项目结构 ``` ByCompare/ ├── CMakeLists.txt # CMake 构建配置 ├── build.ps1 # PowerShell 构建脚本 ├── run.bat # 启动脚本(加载示例文件) ├── version.rc # 版本信息资源 (1.0.1) ├── app_icon.rc # 应用图标资源 ├── icon.ico / icon.png # 应用图标 ├── src/ │ └── main.cpp # C++ 后端入口(命令注册、窗口管理) ├── frontend/ │ ├── index.html # 主界面 │ ├── css/style.css # 浅色主题样式 │ ├── js/app.js # Monaco Editor 初始化与差异同步逻辑 │ └── monaco/ # Monaco Editor 0.56.0 ├── sample/ │ ├── original.cpp # 示例原始文件 │ └── modified.cpp # 示例修改文件 └── TauriCPP/ # TauriCPP 框架(子目录) ``` ## 技术栈 - **后端**: C++17 + TauriCPP (WebView2) - **前端**: HTML/CSS/JS + Monaco Editor 0.56.0 - **构建**: CMake + Ninja + MSVC - **依赖**: WebView2 SDK, nlohmann/json ## 版本 **v1.0.1** — 首个正式版本 - 双向差异对比与同步 - 文件拖拽加载 - 多语言语法高亮 - 浅色主题界面 - 修改状态跟踪与保存提示 ## 许可证 MIT ## 打赏 如果这个工具对你有帮助,欢迎请作者喝杯咖啡 ☕ ![打赏](Donate.jpg) > 你的支持是持续维护的动力,感谢!