什么是 GitHub Copilot
GitHub Copilot 是一个 AI 驱动的代码助手,可以帮助你更高效地编写代码。它通过理解你正在编写的代码的上下文,并提供自动补全、生成注释、解释代码、生成测试用例、优化代码等能力。这些建议涵盖了从代码片段到整个函数或类的各种结构。GitHub Copilot 支持主流 IDE,可以与现有工作流无缝集成。
官网: in new window
GitHub Copilot 有哪些优势一、代码自动提示补全
Copilot 在很多时候可以对你写的代码自动进行提示,不需要其它额外的操作。
用的比较多的是函数提示补全以及语句提示补全,当然 Copilot 能做提示补全的还有很多,比如:类提示补全,块提示补全,模块路径补全等等。
这里以最常见的补全举例,例如:
Copilot 会结合项目代码以及当前的上下文预判你想要什么然后自动给你一些代码提示,尤其是对于一些看起来“逻辑重复”又恰好是你需要的时候,如下图所示:
【在实际项目里,Copilot 会学习和理解整个项目的代码,给出的提示会更有针对性一些】
当你写下有意义的函数名和参数时,Copilot 会自动生成你需要的代码,就像下图一样,当你写下 getUrlQueryParams 函数名以及相应的入参后,Copilot 会自动给出完整的实现代码。【注意:此时需要你写下有意义的函数名和参数,否则可能无法给你有效的代码提示】
就像正常写代码一样,可以先写函数注释,就是给出你想要做什么以及期待得到一个什么样的结果,如果能给出输入和输出的示例更佳,Copilot 会结合你给的信息自动生成相应的代码,如下图所示一个比较常见的例子:
这里 Copilot 有时候会给你多个代码提示建议结果,此时可以通过 Copilot 的小悬浮窗里的左右箭头切换选择你自己认为最合适的。
【注意:通过 vscode 快捷键:control + enter 也可以实时看到并选择使用某个建议结果,如下图所示。】
有时候我们要实现的功能可能比较复杂,虽然你有一些思路,但是搞起来会有点麻烦,此时可以借助 Copilot Chat 来实现高级代码提示,例如:
【注意:对于稍复杂的功能,最好给出相对完整的功能描述甚至是你的大致思路或者关键的核心流程,这样 Copilot 才能更好的给你提示。】
需要实现在背景图上通过鼠标选中拖拽多个高亮区域并可以手动配置用户引导提示语的功能。鼠标在背景图上点击选中并拖拽出一个区域,区域内的内容高亮显示,区域外的内容变暗,并记录下区域的坐标和大小弹出弹窗,可以手动配置用户引导提示语点击保存按钮,将配置好的数据生成 json 数据点击重置按钮,清空所有数据。……..
最后你会发现这不就是细化了的需求吗?是的,很多时候只要把需求或者功能拆解细化了之后会发现很多东西 Copilot 都会帮你完成,你要做的就是在它的基础上去修正和完善。
二、自动生成测试
Copilot 在很多时候还可以对自己写的代码自动生成测试,省时省力。
【还可以使用快捷键调出全局命令面板通过输入 Copilot 然后选择生成测试选项】
还可以通过注释的形式告诉 Copilot 生成测试,然后通过快捷键:control + enter 来选择 Copilot 给出的多种建议,如下图所示:
三、帮助理解代码
有些时候看不明白或根本不想看一些代码,但又不得不用,这个时候可以把代码扔给 copilot,让 copilot 帮你理解。
四、帮助生成代码注释
写注释对于一些人来说是一件麻烦痛苦的事情,懒得写?交给 Copilot,让 Copilot 帮你自动生成注释。
当然,如果你需要生成中文的注释,你可以使用 Copilot Chat 来实现。
五、帮助优化代码
有些时候虽然功能实现了,但是感觉代码不够优雅,这包括是否有更好的实现方案以及函数或变量名称是否合适等等,交给 Copilot,让 Copilot 帮你完成优化。
优化函数名
优化变量名
优化整体代码
六、帮助生成 commit message
懒得写提交的 message?交给 Copilot,让 Copilot 帮你自动生成。
七、其它小功能
做一个翻译小助手,帮你翻译
做一个百科全书,帮你解释名词
做一个转换器,帮你转换各种语言的代码
GitHub Copilot 相关快捷键
举例如下:
GitHub Copilot 费用
Copilot 一开始可以免费试用 30 天,之后需要付费使用,目前支持 3 种收费模式:
不同版本之间的区别: