如何在浏览器中快速编辑代码,实现VSCode Web集成?

摘要:在浏览器中快速编辑代码:VSCode Web 集成实践 AI 分析完代码后,如何立即在浏览器中打开编辑器进行修改?本文分享 HagiCode 项目中集成 code-server 的实践经验,实现 AI 助手与代码编辑体验的无缝连接。 背景
在浏览器中快速编辑代码:VSCode Web 集成实践 AI 分析完代码后,如何立即在浏览器中打开编辑器进行修改?本文分享 HagiCode 项目中集成 code-server 的实践经验,实现 AI 助手与代码编辑体验的无缝连接。 背景 在 AI 辅助编程的时代,开发者经常需要快速查看和编辑代码。传统的开发流程是:在桌面端 IDE 中打开项目,定位文件,编辑,保存。只是这个流程在某些场景下,总觉得哪里不太对劲。 场景一:远程开发。当使用 HagiCode 这样的 AI 助手时,后端可能运行在远程服务器或容器中,本地无法直接访问项目文件。每次要查看或修改代码,都需要通过 SSH 或其他方式连接,体验割裂。这感觉就像你想见一个人,却隔着一层厚厚的玻璃,能看见却摸不着。 场景二:快速预览。AI 助手分析代码后,用户可能只是想快速浏览某个文件或做小幅修改。启动完整的桌面 IDE 显得重量级,浏览器内的轻量级编辑器更符合"快速查看"的需求。毕竟,谁愿意为了看一眼就大动干戈呢? 场景三:跨设备协作。在不同设备上工作时,浏览器中的编辑器提供了统一的访问入口,无需每台设备都配置开发环境。这倒也省事,毕竟人生苦短,何必重复劳动。 为了解决这些痛点,我们在 HagiCode 项目中集成了 VSCode Web。让 AI 助手与代码编辑体验无缝连接——AI 分析完代码后,用户可以立即在同一个浏览器会话中打开编辑器进行修改,无需切换应用。这种体验,怎么说呢,就像你想的时候,它就在那里。 关于 HagiCode 本文分享的方案来自我们在 HagiCode 项目中的实践经验。HagiCode 是一个 AI 驱动的代码助手,旨在通过自然语言交互提升开发效率。在开发过程中,我们发现用户经常需要在 AI 分析和代码编辑之间快速切换,这促使我们探索如何将编辑器直接集成到浏览器中。 项目地址:github.com/HagiCode-org/site 技术选型:为什么是 code-server? 在众多 VSCode Web 解决方案中,我们选择了 code-server。这个选择,其实也有几个考量: 功能完整。code-server 是 VSCode 的 Web 版本,支持桌面版的大部分功能,包括扩展系统、智能提示、调试等。这意味着用户在浏览器中也能获得接近桌面版的编辑体验。毕竟,谁又愿意在功能上妥协呢? 部署灵活。code-server 可以作为独立服务运行,也支持 Docker 容器化部署,与 HagiCode 的架构契合。我们的后端用 C# 编写,前端是 React,通过 REST API 与 code-server 服务通信。这就像搭积木,每块都有自己的位置。 认证安全。code-server 内置 connection-token 机制,防止未授权访问。每个会话都有唯一的 token,确保只有授权用户才能访问编辑器。安全感这东西,有了才知道重要。 架构设计 HagiCode 的 VSCode Web 集成采用前后端分离的架构设计。 前端服务层 前端通过 vscodeServerService.ts 封装了与后端的交互: // 打开项目 export async function openProjectInCodeServer( id: string, currentInterfaceLanguage?: string, ): Promise<VsCodeServerLaunchResponseDto> // 打开 vault export async function openVaultInCodeServer( id: string, path?: string, currentInterfaceLanguage?: string, ): Promise<VsCodeServerLaunchResponseDto> 这两个方法的区别在于:openProjectInCodeServer 用于打开整个项目,而 openVaultInCodeServer 用于打开 Vault 的特定路径。对于 MonoSpecs 多仓库项目,系统会自动创建工作区文件。分工明确,各自做好自己的事,这就够了。
阅读全文