---
# System prepended metadata

title: 2024.02.16 GitHub Copilot Chat
tags: [GitHub Copilot]

---


本文內容為Will保哥 GitHub Copilot 協作開發實戰課程筆記[^1]

## 目錄

[2024.01.29 簡介GitHub Copilot](https://hackmd.io/@Eudicotz/BJVuG93i6)
[2024.02.05 安裝和設定 GitHub Copilot](https://hackmd.io/@Eudicotz/rkVeQ5hip)
[2024.02.05 GitHub Copilot實際操作](https://hackmd.io/@Eudicotz/HkIj793oT)
[2024.02.16 GitHub Copilot advance usage其他妙用](https://hackmd.io/@Eudicotz/SyGvHkAsT)
[2024.02.16 GitHub Copilot Chat](https://hackmd.io/@Eudicotz/BkfOVkCiT)

## Copilot Chat簡介

- 一個以**對話**為基礎的工具
- 對同一個對話框內有一定程度的**短期記憶**能力
- 提問會與**當前游標**所在程式碼自動關聯
- 提供各種強大程式碼產生功能
- 可以請他**產生指令**並直接複製到Console中，以備執行
- 聊天室支援繁體中文
- `ctrl` + `enter`直接接受建議

## 三種不同聊天視窗

快捷鍵調整：
File > Preferences > Keyboard Shortcuts
![Pasted image 20240216172352](https://hackmd.io/_uploads/SkjsE1Rja.png)

### 一般聊天視窗 (`ctrl` + `alt` + `I`)

編輯器側邊欄位

### 快速聊天視窗 (`ctrl` + `shift` + `I`)

類似於 `ctrl` + `p` 或 `F1`產生於視窗正上方

### 內嵌聊天視窗 (`ctrl` + `I`)

位於編輯器游標位置

## 可修正終端執行命令錯誤
![Pasted image 20240217112759](https://hackmd.io/_uploads/HJJaNJCiT.png)

可於終端中對Copilot Chat進行提問，且可以轉執行正確指令

## 產生部屬文件

### docker-compose範例
![Pasted image 20240217113140](https://hackmd.io/_uploads/rJekByCiT.png)

### kubernetes範例
![Pasted image 20240217113053](https://hackmd.io/_uploads/HyV1SkRsT.png)

## 多個聊天視窗

當聊天視窗不夠大的時候，可以將聊天視窗切換成整頁式或多個session，每個session有各自的短期記憶(關掉即消失)。
![Pasted image 20240217113823](https://hackmd.io/_uploads/HJAgr10ip.png)


## 問特定問題

`@workspace`、`@vscode`、`terminal`來指定要問何種問題。
![Pasted image 20240217114259](https://hackmd.io/_uploads/SJrQHJCoa.png)

## 產生全新專案

### `@workspace /new`
![Pasted image 20240217131405](https://hackmd.io/_uploads/HydVHkRip.png)

- 可以根據需求產生整個專案
	- 指令資料夾內檔案
	- config
	- source code

## 產生註解

### `/doc`

- 如果註解不如預期，請「換句話說」
- 途中如果產生錯誤，用AI修AI可能會壞掉，人工檢查有時會更好

## 單元測試

### `/tests`

## 其他使用情境

- 為了增加功能，需在多個地方增加Code
	- 直接叫出Copilot Chat，說明要加入的功能：Angular的ngOnInit、加入route以及其他可能
- Typescript、Java、C#產生interface
- 常見程式邏輯、判斷、迴圈
- 正規表達式
- HTML轉換為JavaScript產生DOM的程式碼
- 撰寫呼叫撰寫呼叫函式/方法的程式碼
- 撰寫特定演算法的程式碼
- 撰寫或修改SQL語法
- 撰寫OpenAPI Spec
- 產生測試資料
- 產生單元測試程式碼
- 刪除用不到的程式碼
- 修改錯誤程式碼
- 補完錯誤程式碼

[^1]:[GitHub-Copilot-協作開發實戰](https://www.accupass.com/event/2311170145205340711850)