SuperAPI AI 工具集

CopilotForXcode

CopilotForXcode 是面向 Xcode 的源代码编辑器扩展,可为 Xcode 提供 GitHub Copilot、Codeium 和 ChatGPT 支持。它能够基于已打开文件提供实时代码建议,并支持聊天、用自然语言修改或生成代码、自定义命令等能力。安装后需要在系统设置中启用扩展并授予辅助功能权限,然后配置相应的账号与模型,例如 GitHub Copilot 订阅、Codeium 账号或 OpenAI API Key。

访问官网

工具介绍

用途

CopilotForXcode 是一个 Xcode Source Editor Extension,为 Xcode 提供 GitHub Copilot、Codeium 和 ChatGPT 支持。它旨在把 AI 代码建议、聊天和代码修改能力集成到 Xcode 编辑环境中。

主要能力

代码建议

应用可基于已打开的文件提供实时代码建议,由 GitHub Copilot 和 Codeium 驱动。提供两种展示模式:

  • Nearby Text Cursor:根据文本光标位置显示建议。
  • Floating Widget:在指示器组件旁显示建议。

使用 Nearby Text Cursor 模式时,建议将实时建议防抖设置为 0.1。当代码更新时,应用会自动获取建议,可按 Escape 取消。

建议相关命令包括:

  • Get Suggestions:获取当前光标位置编辑文件的建议。
  • Next Suggestion:在多个建议中切换到下一个。
  • Previous Suggestion:在多个建议中切换到上一个。
  • Accept Suggestion:将建议添加到代码中。
  • Reject Suggestion:移除建议注释。

聊天功能

聊天功能由 ChatGPT 驱动,使用前需设置 OpenAI 账户。聊天可获取以下信息:活动编辑器中的选中代码、文件的相对路径、活动编辑器中的错误和警告标签、文本光标位置。聊天面板有两个标签页:一个可在 Xcode 中共享,另一个仅在当前文件中可用。可将聊天面板拖出以分离,分离后即使 Xcode 不活跃也会保持可见;点击指示器组件旁的消息气泡按钮可重新附着。打开聊天命令为 Open Chat。

聊天面板支持可能不需要 OpenAI API Key 的聊天插件。例如使用 /shell 插件时输入相应命令,结束插件时输入相应命令。

Prompt to Code(自然语言修改代码)

使用自然语言重构现有代码或编写新代码。推荐在需要更新特定代码片段时使用,示例场景包括:

  • 提升代码可读性。
  • 修正代码中的错误。
  • 为代码添加文档。
  • 将大函数拆分为小函数。
  • 通过自定义命令以特定模板生成代码。
  • 润色并修正文档中的语法和拼写错误。
  • 翻译可本地化字符串文件。

相关命令:

  • Write or Edit Code:打开修改窗口,用自然语言编写或编辑选中代码。
  • Accept Modification:接受修改结果。

自定义命令

可创建运行聊天和修改的自定义命令,并配有个性化提示词。可从 Xcode 菜单栏和指示器组件的上下文菜单访问。自定义命令有三种类型:

  • Modification:对选中代码运行修改,并按给定提示词更新或编写代码;可通过额外系统提示词字段提供附加信息。
  • Send Message:打开聊天窗口并立即发送消息(如提供);可通过额外系统提示词字段提供更多信息。
  • Custom Chat:打开聊天窗口并立即发送消息(如提供);可通过系统提示词字段覆盖整个系统提示词。
  • Single Round Dialog:向临时聊天发送消息,适用于想用 /run 运行终端命令时。

自定义命令中可使用模板参数。

使用方式

前置条件

需要公共网络连接。

建议功能:

  • GitHub Copilot 用户:需安装 Node 以运行 Copilot LSP,并拥有有效的 GitHub Copilot 订阅。
  • Codeium 用户:需拥有有效的 Codeium 账户。
  • 访问其他 LLM。

聊天和 Prompt to Code 功能:

  • 有效的 OpenAI API Key。

权限:

  • Accessibility API。若担心按键记录且不信任二进制文件,建议审查代码并自行构建。可专门搜索代码中的 CGEvent.tapCreate、AXObserver、AX___ 等。

安装与设置

安装过程略复杂,快速概览:

  1. 将应用安装到 Applications 文件夹,打开一次。
  2. 启用源代码编辑器扩展。
  3. 向扩展应用授予 Accessibility API 权限。
  4. 在宿主应用中设置账号和模型。
  5. 可选:更新各功能设置,并设置键绑定。

可通过 Homebrew 安装,也可从最新 release 手动下载 Copilot for Xcode.app。请确保应用位于 Applications 文件夹。打开应用后,应用会创建 launch agent 以设置后台运行的服务来执行实际工作。

启用扩展

在 System Settings.app 中启用扩展:

  • macOS 15:从屏幕左上角 Apple 菜单点击 System Settings,导航至 General,然后 Login Items & Extensions,点击 Xcode Source Editor,勾选 Copilot for Xcode。
  • macOS 14:从屏幕左上角 Apple 菜单点击 System Settings,导航至 Privacy & Security,向底部点击 Extensions,点击 Xcode Source Editor,勾选 Copilot。
  • 更早版本:如果使用 macOS Monterey,在 System Preferences.app 中通过专用图标进入 Extensions 菜单。

首次打开应用并运行命令时,扩展会请求必要权限。也可在 System Settings.app 的 Privacy & Security 标签页手动授予所需权限。授予 Accessibility API 权限时,点击 Accessibility,将 CopilotForXcodeExtensionService.app 拖到列表中。可在宿主应用中点击 Reveal Extension App in Finder 定位扩展应用。若遇到已授予权限的提醒,请从列表中移除权限并重新添加以重新授予。

设置键绑定

使用键绑定会让扩展工作更好。似乎无法为命令添加默认键绑定,但可在 Xcode 设置 > Key Bindings 中设置。可在搜索栏输入 copilot 过滤列表。推荐设置不应产生冲突:基本上使用 ⌥⇧ 作为所有绑定的“访问”组合键。另一种便捷访问命令的方法是使用 ⇧⌘/ 快捷键在菜单栏搜索命令。

目前只能设置一个全局热键,用于显示/隐藏宿主应用 General 标签下的组件。当此热键未设置为全局启用时,仅在服务应用或 Xcode 活跃时有效。

设置建议功能

GitHub Copilot:

  • 在宿主应用中导航至 Service - GitHub Copilot 访问账号设置。
  • 点击 Install 安装语言服务器。
  • 可选:设置 Node 路径。默认值为 node。Copilot for Xcode.app 会尝试从以下目录查找 Node:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin。若 Node 安装在别处,可在终端运行 which node 获取正确路径。若使用提供 shim 可执行文件的 node 版本管理器,需找到实际可执行文件路径。
  • 点击 Sign In,会重定向到 GitHub 提供的验证网站。用户代码会复制到剪贴板。
  • 登录后返回应用,点击 Confirm Sign-in 完成流程。
  • 转到 Feature - Suggestion,将功能提供方更新为 GitHub Copilot。
  • 已安装语言服务器位于 ~/Library/Application Support/com.intii.CopilotForXcode/GitHub Copilot/executable/。

Codeium:

  • 在宿主应用中导航至 Service - Codeium 访问账号设置。
  • 点击 Sign In,会重定向到 codeium.com。登录后会提供 token,需复制并粘贴回应用完成登录。
  • 转到 Feature - Suggestion,将功能提供方更新为 Codeium。
  • 密钥存储在钥匙串中。辅助应用首次访问密钥时会提示输入密码,请选择 Always Allow。
  • 已安装语言服务器位于 ~/Library/Application Support/com.intii.CopilotForXcode/Codeium/executable/。

设置聊天功能

  • 在宿主应用中导航至 Service - Chat Model。
  • 更新 OpenAI 模型,必要时创建新模型。使用测试按钮验证模型。
  • 可选:在 Service - Embedding Model 中设置嵌入模型,部分聊天功能需要。
  • 转到 Feature - Chat,将聊天/嵌入功能提供方更新为刚更新或创建的模型。

管理 CopilotForXcodeExtensionService.app

打开 Copilot for Xcode.app 或 Xcode.app 时该应用会运行。可通过菜单栏中类似触手的项退出。也可设置在上述两个应用关闭时自动退出。

更新

可使用应用内更新器,或从最新 release 手动下载。更新后,请打开一次 Copilot for Xcode.app 并重启 Xcode 以重新加载扩展。如果发现某些功能不再工作,请先尝试重新授予应用权限。

适用场景

  • 在 Xcode 中进行日常编码时获取实时代码建议。
  • 在 Xcode 内与 ChatGPT 聊天,获取代码相关上下文信息。
  • 用自然语言重构、修正或生成特定代码片段。
  • 通过自定义命令以特定模板生成代码或执行重复性修改任务。
  • 需要将 GitHub Copilot 或 Codeium 集成到 Xcode 工作流的开发者。

限制

  • 需要公共网络连接。
  • 建议功能需要 Node(GitHub Copilot)以及有效的 GitHub Copilot 订阅或 Codeium 账户。
  • 聊天和 Prompt to Code 功能需要有效的 OpenAI API Key。
  • 需要授予 Accessibility API 权限。
  • gitignore 中的文件不会收到建议。聊天和 Prompt to Code 功能也无法访问它们,除非手动从中选择代码。
  • 扩展使用多种技巧监控 Xcode 状态,可能失败或不准,尤其是在运行多个 Xcode 窗口或位于不同显示器时。
  • 如果文件在辅助应用启动前已打开,需切换到这些文件以发送打开文件通知。
  • 若在公司项目中不希望触发建议功能,可全局禁用并仅对特定项目启用。
  • 许可详情请查看 LICENSE。