GitHub Copilot 完整教學

Part 16:進階技巧 - 多檔案協作

用 Copilot 處理真實專案的跨檔案開發

@workspace #file 跨檔案協作

🎯 本單元學習目標

完成這個單元後,你將能夠:

1. 使用 @workspace

讓 Copilot 理解整個專案的結構和內容

2. 使用 #file 引用

指定 Copilot 參考特定檔案的內容

3. 跨檔案分析

分析多個檔案之間的關係與互動

4. 專案級重構

進行涉及多個檔案的重構和整合

核心觀念:真實專案不只一個檔案!學會多檔案協作,才能發揮 Copilot 的真正威力!

🤔 為什麼需要多檔案協作?

真實專案的樣貌

  • 通常有 10+ 個檔案
  • 檔案之間互相引用
  • 模組化設計

常見的需求

  • 理解專案整體架構
  • 追蹤函式的呼叫關係
  • 進行跨檔案的修改
問題:一般 Chat 只能看到你給它的程式碼片段,無法理解整個專案
解決方案:使用 @workspace#file 讓 Copilot 看到更多!

1 @workspace 介紹

什麼是 @workspace?

@workspace [你的問題]

讓 Copilot Chat 分析整個專案資料夾的內容

適用場景

  • 詢問專案的整體功能
  • 了解專案架構
  • 尋找特定功能在哪裡
  • 跨檔案的重構建議

使用提示

  • 確保已開啟專案資料夾
  • 專案檔案越完整越好
  • 可搭配具體問題使用
記住:@workspace 是「專案層級」的分析,不是只看單一檔案!

1 @workspace 基本用法

提問範例

@workspace 這個專案的主要功能是什麼?
@workspace 基本用法

Copilot 會分析整個專案,回答專案層級的問題

效果:Copilot 會瀏覽專案中的多個檔案,給出整體性的回答

2 #file 引用特定檔案

什麼是 #file?

#file:檔案名稱 [你的問題]

指定 Copilot 參考某個特定檔案的內容

適用場景

  • 針對特定檔案提問
  • 請 Copilot 基於某檔案產生程式碼
  • 比較或分析特定檔案

語法說明

  • #file:main.py
  • #file:utils.py
  • #file:config.json
與 @workspace 的差異:#file 是「精準參照」,@workspace 是「全局搜尋」

2 #file 引用特定檔案

提問範例

#file:main.py 請解釋這個檔案的主要邏輯
#file 引用特定檔案

Copilot 會針對指定檔案進行分析

優點:不需要手動複製貼上程式碼,直接引用檔案即可!

3 多檔案同時引用

語法

#file:檔案A #file:檔案B [你的問題]

同時引用多個檔案,讓 Copilot 分析它們之間的關係

常見用途:
  • 分析兩個模組如何互動
  • 找出檔案之間的依賴關係
  • 比較兩個檔案的實作差異
多檔案同時引用

同時引用多個檔案,分析檔案之間的互動

3 多檔案引用範例

提問範例

#file:main.py #file:utils.py 這兩個檔案之間如何互動?

Copilot 會回答

  • 哪些函式被呼叫
  • 資料如何傳遞
  • 模組之間的依賴關係

進階應用

  • 追蹤 bug 來源
  • 理解複雜的呼叫鏈
  • 規劃重構策略
提示:可以引用 2-3 個相關檔案,讓 Copilot 了解它們的關係!

4 跨檔案重構

提問範例

@workspace 我想把重複的程式碼抽取成共用函式,放到 utils.py,請給我建議
跨檔案重構請求

Copilot 會分析專案並提供涉及多個檔案的修改建議

重構策略:Copilot 會告訴你哪些地方有重複、如何抽取、以及修改後如何引用

5 專案結構分析

提問範例

@workspace 請分析這個專案的檔案結構,並說明各檔案的用途
專案結構分析

Copilot 會列出專案中的檔案並說明各自的功能

應用場景:接手新專案時,快速了解專案架構!

6 新增模組整合

提問範例

@workspace 我想新增一個 logger.py 模組來處理日誌,請幫我設計並說明如何整合到現有專案
新增模組整合

Copilot 會提供新模組的程式碼和整合方式

效果:Copilot 會根據現有專案的風格,設計出符合的新模組!

📋 多檔案協作指令總整理

@workspace

分析整個專案
@workspace 這個專案...

#file:檔名

引用特定檔案
#file:main.py 請解釋...

多檔案引用

分析檔案關係
#file:A #file:B 如何互動?

@selection

引用選取的程式碼
先選取,再輸入問題

組合技:可以混合使用!例如 @workspace #file:main.py 這個函式在專案中被哪些地方呼叫?

🏋️ 實作練習

練習目標:熟悉多檔案協作的各種指令

練習步驟

  1. 開啟一個有多個 .py 檔案的專案
  2. 使用 @workspace 詢問專案的主要功能
  3. 使用 #file:檔名 詢問某個檔案的邏輯
  4. 使用多檔案引用,分析兩個檔案之間的關係
  5. 請 Copilot 建議如何新增一個模組並整合
進階挑戰:找出專案中重複的程式碼,請 Copilot 建議如何重構成共用函式!

📝 隨堂測驗

問題 1:想讓 Copilot 分析「整個專案」,應該用什麼指令?

A. #file:all
B. @workspace
C. @project
D. #folder

問題 2:想讓 Copilot 參考「特定檔案」,應該用什麼語法?

A. @file:main.py
B. #main.py
C. #file:main.py
D. file:main.py

問題 3:想同時引用多個檔案,正確的寫法是?

A. #file:[main.py, utils.py]
B. #files:main.py,utils.py
C. #file:main.py #file:utils.py
D. @files main.py utils.py

✅ 測驗解答

問題 1 答案:B

@workspace 是讓 Copilot 分析整個專案的指令。它會瀏覽專案資料夾中的檔案,理解整體架構。

問題 2 答案:C

引用特定檔案的正確語法是 #file:檔案名稱,例如 #file:main.py

問題 3 答案:C

同時引用多個檔案時,每個檔案都要分別使用 #file:,例如 #file:main.py #file:utils.py

🎉 Part 16 重點回顧

@workspace

讓 Copilot 理解
整個專案的內容

#file:檔名

精準引用
特定檔案的內容

多檔案分析

理解檔案之間
的關係與互動

專案級操作

跨檔案重構
新增模組整合

核心觀念

「真實專案等級的 Copilot 使用方式」

下一單元預告

Part 17:進階技巧 - 客製化設定
調整 Copilot 的行為,符合你的開發風格!