# code-assistant **Repository Path**: kbtit/code-assistant ## Basic Information - **Project Name**: code-assistant - **Description**: 代码协作助手,让代码更好的融入AI - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-09-26 - **Last Updated**: 2026-04-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 代码协作助手 (Code Assistant) [后端地址](https://github.com/lvfushun168/code-assistant-backend) 一款专为开发者设计的现代化、轻量级桌面应用,使用 Java Swing 构建。它不仅是一个高效、简洁的代码阅读和编辑环境,还集成了用户账户、云端同步和多种实用的开发工具。 ## ✨ 主要功能 ### ☁️ 云端同步与账户系统 - **完整的用户认证系统**:支持用户注册、登录、修改密码 - **跨设备数据访问**:安全连接到后端服务器,实现文件和设置的云端同步 - **Token自动续期**:智能检测用户活跃状态,自动续期访问令牌,提升使用体验 - **安全凭据管理**:利用系统密钥库(`SystemKeyStoreService`)安全地管理用户凭据 ### 🗂️ 文件浏览器 - **树状视图**:清晰的文件和文件夹层级展示 - **多模式浏览**:支持本地文件系统和云端文件系统切换 - **快速导航**:前进、后退、向上一级等导航操作 - **丰富的文件操作**:右键菜单支持新建文件夹、重命名、删除、复制、粘贴 - **拖拽上传/下载**:支持通过拖拽方式在本地和云端之间传输文件 - **批量操作**:支持文件的批量上传和批量下载 - **历史记录**:自动记忆上次访问的目录 - **智能文件类型识别**:根据文件扩展名自动识别文件类型 ### 📝 多标签页编辑器 - **多文件编辑**:支持同时打开和编辑多个文件 - **标签管理**:每个标签页都可以独立关闭,支持带关闭按钮的标签栏 - **标签页右键菜单**:支持 `关闭当前页`、`关闭其他页`、`关闭所有页` - **智能编辑器选择**:自动检测文件类型和大小,选择合适的编辑器打开 - **RSyntaxTextArea集成**:内置强大的文本编辑器组件,支持多种编辑特性 ### ⚡ 高性能大文件查看器 - **虚拟滚动模式**:为查看超大文件优化,可以秒开GB级别的文件 - **内存优化**:采用按需加载策略,避免一次性加载整个文件到内存 - **友好的加载体验**:加载过程带有进度条,避免UI卡顿 ### ✍️ 核心编辑功能 - **行号显示**:精确的行号显示,方便代码定位 - **撤销/重做**:完整的编辑历史管理 - **查找与替换**:功能完善的查找替换对话框,支持正则表达式 - **只读模式**:支持以只读方式打开文件,防止误修改 - **自动换行**:可切换的自动换行模式 - **多光标编辑**:支持在多个位置同时编辑 ### 🚀 项目辅助工具 - **获取代码内容**:遍历整个项目目录,将所有可配置的源码文件内容合并到一个视图中,便于整体分析或提交给AI模型 - **获取项目结构**:一键生成项目的目录树结构文本 - **CODE 菜单工具集**:聚合 JSON / SQL / Markdown 三类开发辅助能力 - **JSON/Java 互转**:支持 Java对象转JSON、JSON转Java对象(含嵌套对象和数组) - **SQL 美化**:支持一键格式化 SQL 内容 - **Markdown 三模式**:支持 `编辑`、`编辑和预览`、`预览` 三种单选模式 - **Markdown 实时预览**:基于 `flexmark-java` 的实时渲染,支持双向滚动同步 - **Markdown 快捷工具栏**:编辑模式下双击选中文本可快速插入常用 Markdown 语法 - **Markdown 导出 Word**:支持将当前 Markdown 文档导出为 `.docx`(菜单:`CODE -> Markdown -> 导出为 Word(.docx)...`) - **Markdown 导出 PDF**:支持将当前 Markdown 文档导出为 `.pdf`(菜单:`CODE -> Markdown -> 导出为 PDF(.pdf)...`) - **导出交互统一**:Word/PDF 导出均支持保存位置选择、自动补全后缀、覆盖确认与后台异步导出 - **DDL转Java对象**:将数据库DDL语句转换为Java实体类声明 ### 🔒 安全与加密 - **加密服务**:内置 `CryptoService`,使用Bouncy Castle库实现高级加密算法(Argon2、AES-GCM) - **系统级密钥管理**:利用 `SystemKeyStoreService` 调用系统级API(如Windows DPAPI、macOS Keychain)安全存储敏感数据 - **密码安全**:使用BCrypt进行密码加密存储 ### 🎨 现代化UI - **FlatLaf主题**:基于 [FlatLaf](https://www.formdev.com/flatlaf/) 库,提供干净、现代的跨平台外观 - **暗色主题**:默认采用Darcula暗色主题,护眼舒适 - **加载动画**:启动时显示专业的加载动画 - **响应式设计**:自动保存窗口最后的位置和大小 - **单实例运行**:确保同一时间只有一个应用实例运行,新实例会自动将文件传递给现有实例 - **文件关联**:支持通过系统文件关联直接用应用打开文件 ### 📦 打包与分发 - **跨平台支持**:支持Windows(.exe)、macOS(.app)和Linux - **Maven构建**:完整的Maven构建流程 - **依赖打包**:使用Maven Shade Plugin将所有依赖打包到单个JAR中 - **原生应用**:使用jpackage生成原生应用,提供更好的用户体验 ## 🛠️ 技术栈 - **核心框架**: Java 11+ - **用户界面**: Java Swing, FlatLaf, RSyntaxTextArea - **Markdown渲染与导出**: flexmark-java, flexmark-docx-converter, flexmark-pdf-converter - **网络通信**: 内置 HTTP 客户端,用于与后端 API 通信 - **JSON处理**: FastJSON, Hutool JSON - **PDF渲染引擎**: openhtmltopdf, Apache PDFBox - **加密安全**: Bouncy Castle (bcprov-jdk15on), BCrypt, JNA - **工具库**: Apache Commons Lang3, Hutool - **日志**: SLF4J - **项目构建**: Apache Maven - **打包**: - maven-shade-plugin (打包JAR) - launch4j-maven-plugin (Windows .exe) - jpackage-maven-plugin (macOS .app) ## 🚀 如何构建和运行 本项目使用 Maven 进行构建。 ### 前置要求 - JDK 11 或更高版本 - Maven 3.6+ ### 构建步骤 1. **克隆仓库** ```bash git clone cd code-assistant ``` 2. **使用Maven打包** 在项目根目录下运行以下命令,将项目打包为可执行的 `jar` 文件: ```bash mvn clean package ``` 3. **运行程序** - **通过 JAR 文件运行**: 打包成功后,在 `target` 目录下会生成一个 `code-assistant-*.jar` 文件。通过以下命令运行: ```bash java -jar target/code-assistant-*.jar ``` - **运行原生应用**: - **macOS**: 在 macOS 系统上运行会自动生成 `.app` 文件到 `dist` 目录,直接双击 `代码协作助手.app` 即可 - **Windows**: 在 Windows 系统上运行会生成 `代码协作助手.exe` 文件到 `target` 目录 **注意**: - 构建原生应用需要 JDK 14 或更高版本 - macOS 打包需要在该平台上进行 ## 📄 Markdown 导出说明 - **菜单入口**: `CODE -> Markdown -> 导出为 Word(.docx)...` / `导出为 PDF(.pdf)...` - **可用范围**: 仅在 Markdown 文档(`.md`)激活时可用,其他文件类型自动置灰 - **PDF 中文字体**: PDF 导出会自动探测系统可用中文字体并嵌入;若系统缺少可用中文字体,导出会失败并给出明确提示 ## 🗺️ 路线图 (待实现功能) ### 编辑器功能增强 - [ ] **扩大选择范围**: 支持快捷键扩大选择范围,类似于 VSCode 中的 `Shift + Alt + Right` - [ ] **列编辑模式**: 支持列编辑,可以同时编辑多行相同位置的文本 - [ ] **多光标编辑**: 支持通过鼠标点击或快捷键创建多个光标同时编辑 - [ ] **括号匹配**: 自动高亮匹配的括号,便于快速定位代码块 - [ ] **代码自动补全**: 基于当前文件内容和语言特性提供智能代码提示 - [ ] **代码格式化**: 支持不同编程语言的代码自动格式化 - [ ] **缩进指南**: 显示缩进参考线,便于理解代码层级 - [ ] **迷你地图**: 在编辑器侧边显示代码的缩略图,便于快速导航 ### Git 集成 - [ ] **Git 状态显示**: 在文件浏览器中以不同颜色标识文件的 Git 状态(新增、修改、删除、未跟踪) - [ ] **Git 操作集成**: 支持提交、拉取、推送、创建分支等常用 Git 操作 - [ ] **差异对比**: 提供文件差异对比视图,方便查看代码变更 - [ ] **历史记录**: 查看文件的提交历史和版本差异 ### 主题与外观 - [ ] **多主题支持**: 提供多种预设主题(Light, Dark, Solarized, Monokai 等)并支持切换 - [ ] **自定义主题**: 允许用户自定义颜色方案和字体设置 - [ ] **字体配置**: 支持自定义编辑器字体和大小 ### 开发工具增强 - [x] **Markdown 实时预览**: 已支持三模式切换(编辑 / 编辑和预览 / 预览)与双向滚动同步 - [ ] **SQL 工具**: 添加 SQL 查询执行器和结果查看器 - [ ] **正则表达式测试器**: 提供正则表达式测试和调试工具 - [ ] **Base64 编解码**: 快速的 Base64 编解码工具 - [ ] **URL 编解码**: URL 编解码工具 - [ ] **时间戳转换**: Unix 时间戳与日期时间互转工具 - [ ] **UUID 生成器**: 快速生成 UUID - [ ] **哈希计算**: 计算文件或文本的 MD5、SHA-1、SHA-256 等哈希值 ### 文件操作 - [ ] **文件搜索**: 支持全局文件名搜索和内容搜索 - [ ] **书签功能**: 支持为文件或代码行添加书签,快速跳转 - [ ] **最近文件**: 显示最近打开的文件列表,快速访问 - [ ] **文件监控**: 自动监控文件变化,外部修改时提示重新加载 - [ ] **多编码支持**: 支持多种文件编码(UTF-8, GBK, ISO-8859-1 等)的识别和转换 ### 用户体验 - [ ] **快捷键配置**: 允许用户自定义快捷键 - [ ] **命令面板**: 类似 VSCode 的命令面板,快速访问所有功能 - [ ] **侧边栏**: 可折叠的侧边栏,包含文件树、搜索结果等 - [ ] **状态栏**: 显示当前文件信息、编码、光标位置等 - [ ] **分屏编辑**: 支持水平或垂直分屏,同时查看和编辑多个文件 - [ ] **标签页分组**: 支持标签页的多行显示和分组管理 ### 高级功能 - [ ] **插件系统**: 设计一个简单的插件架构,允许社区扩展更多功能 - [ ] **AI 集成**: 集成 AI 代码助手,提供代码解释、优化建议等 - [ ] **终端集成**: 内置终端,可直接在应用中执行命令 - [ ] **远程编辑**: 支持通过 SSH/SFTP 编辑远程服务器上的文件 - [ ] **FTP/SFTP 支持**: 内置 FTP/SFTP 客户端,直接管理远程文件 - [ ] **数据库连接**: 支持连接数据库并浏览表结构、执行查询 - [ ] **API 测试**: 简单的 HTTP API 测试工具 ### 云端功能 - [ ] **实时同步**: 文件修改后自动同步到云端 - [ ] **版本历史**: 查看云端文件的版本历史 - [ ] **分享功能**: 支持分享文件或文件夹给其他用户 - [ ] **协作编辑**: 支持多人同时编辑同一个文件(需要后端支持)