Personalizați răspunsurile GitHub Copilot Chat
GitHub Copilot Chat poate genera răspunsuri și cod care se potrivesc practicilor de codare și cerințelor proiectului atunci când li se oferă contextul potrivit. În loc să adăugați în mod repetat aceste informații în fiecare solicitare de chat, puteți stoca acest context în fișiere și îl puteți include automat în fiecare solicitare de chat.
Există trei moduri principale de a particulariza răspunsurile AI în Visual Studio Code:
Instrucțiuni personalizate: Definiți instrucțiuni comune pentru activități precum generarea de cod, efectuarea de revizuiri de cod sau generarea de mesaje de confirmare. Acestea descriu modul în care ar trebui îndeplinite sarcinile și pot specifica practici de codare, tehnologii preferate, reguli de securitate sau formate de mesaje de confirmare.
Fișiere de solicitare: Definiți solicitări reutilizabile pentru activități obișnuite. Aceste solicitări independente descriu ce ar trebui făcut și pot include componente de schelă, efectuarea de revizuiri de cod, crearea de ghiduri pas cu pas sau generarea de planuri de implementare.
Moduri de chat personalizate: Definiți modul în care funcționează chatul, ce instrumente poate utiliza și cum interacționează cu baza de cod. Exemplele includ moduri de planificare cu acces doar în citire, moduri de cercetare care accesează resurse externe sau moduri specifice rolului, cum ar fi dezvoltarea front-end.
Instrucțiuni personalizate
Instrucțiunile personalizate vă permit să descrieți instrucțiuni care obțin răspunsuri care se potrivesc cu practicile de codare specifice și stiva tehnologică. În loc să includă manual acest context în fiecare interogare de chat, instrucțiunile personalizate încorporează automat aceste informații cu fiecare solicitare de chat.
Note
Instrucțiunile personalizate nu sunt luate în considerare pentru completarea codului.
Tipuri de instrucțiuni personalizate
Visual Studio Code acceptă trei moduri de a defini instrucțiuni particularizate:
| Type | Description | Cazuri de utilizare |
|---|---|---|
.github/copilot-instructions.md |
Un singur fișier Markdown în spațiul de lucru, inclus automat în toate cererile, suport între editori. | Practici generale de codare, tehnologii preferate, cerințe la nivel de proiect. |
.instructions.md files |
Mai multe fișiere Markdown cu suport pentru modele glob, spațiu de lucru sau stocare a profilului de utilizator. | Instrucțiuni specifice sarcinii, control granular asupra momentului în care se aplică instrucțiunile. |
| Setări Visual Studio Code | Instrucțiuni în setările utilizatorului/spațiului de lucru pentru scenarii specifice. | Generarea codului, generarea testelor, mesaje de confirmare, revizuiri de cod, descrieri PR. |
Puteți combina aceste abordări, dar evitați instrucțiunile contradictorii, deoarece nu se aplică nicio ordine de prioritate.
Exemple de instrucțiuni personalizate
Linii directoare generale de codificare:
---
applyTo: "**"
---
# Project coding standards
## Naming Conventions
- Use PascalCase for component names, interfaces, and type aliases.
- Use camelCase for variables, functions, and methods.
- Prefix private class members with underscore (_).
- Use ALL_CAPS for constants.
## Error Handling
- Use try/catch blocks for async operations.
- Implement proper error boundaries in React components.
- Always log errors with contextual information.
Instrucțiuni TypeScript și React:
---
applyTo: "**/*.ts,**/*.tsx"
---
# TypeScript and React standards
Apply the [general coding guidelines](./general-coding.instructions.md) to all code.
## TypeScript Guidelines
- Use TypeScript for all new code.
- Follow functional programming principles where possible.
- Use interfaces for data structures and type definitions.
- Prefer immutable data (const, readonly).
- Use optional chaining (?.) and nullish coalescing (??) operators.
## React Guidelines
- Use functional components with hooks.
- Follow the React hooks rules (no conditional hooks).
- Use React.FC type for components with children.
- Keep components small and focused.
- Use CSS modules for component styling.
Utilizați fișierul .github/copilot-instructions.md
Stocați instrucțiunile personalizate într-un .github/copilot-instructions.md fișier la rădăcina spațiului de lucru pentru a descrie practicile de codare, tehnologiile preferate și cerințele proiectului. Aceste instrucțiuni se aplică numai spațiului de lucru și sunt incluse automat în fiecare solicitare de chat.
Pași de configurare:
- Setați
github.copilot.chat.codeGeneration.useInstructionFileslatrue. - Creați
.github/copilot-instructions.mdla rădăcina spațiului de lucru. - Descrieți instrucțiunile folosind limbajul natural și formatul Markdown.
Note
Acest fișier funcționează în Visual Studio Code, Visual Studio și GitHub.com.
Utilizați fișiere .instructions.md
Creați mai multe .instructions.md fișiere pentru anumite activități, limbaje de programare, cadre sau tipuri de proiecte. Acestea pot fi aplicate automat pe baza modelelor de fișiere sau atașate manual la solicitările de chat.
Locații fișiere:
-
Fișiere spațiu de lucru: stocate în
.github/instructionsfolder, disponibile numai în spațiul de lucru. - Fișiere utilizator: stocate în profilul Visual Studio Code, disponibile în mai multe spații de lucru și sincronizate prin sincronizarea setărilor.
Structura fișierelor:
---
description: "Brief description of the instructions file"
applyTo: "**/*.ts,**/*.tsx" # Glob pattern for automatic application
---
# Instructions content in Markdown format
Creați și utilizați fișiere de instrucțiuni:
- Rulați
Chat: New Instructions Filedin paleta de comenzi. - Alegeți spațiul de lucru sau locația utilizatorului.
- Introduceți instrucțiunile pentru nume și autor în Markdown.
- Utilizați
Chat: Configure Instructionspentru a edita fișierele existente.
Atașare manuală:
- În vizualizarea Chat: Adăugarea instrucțiunilor contextuale >
- Paleta de comenzi:
Chat: Attach Instructions
Aplicație automată: Utilizați applyTo metadate cu modele glob (** pentru toate cererile, modele specifice pentru aplicația țintă)
Specificarea instrucțiunilor personalizate în setări
Configurați instrucțiuni particularizate în setările Visual Studio Code pentru scenarii specifice:
| Scenario | Setting |
|---|---|
| Generarea codului | github.copilot.chat.codeGeneration.instructions |
| Generarea testelor | github.copilot.chat.testGeneration.instructions |
| Revizuirea codului | github.copilot.chat.reviewSelection.instructions |
| Trimiteți mesaje | github.copilot.chat.commitMessageGeneration.instructions |
| Titluri/descrieri PR | github.copilot.chat.pullRequestDescriptionGeneration.instructions |
Definiți instrucțiunile ca text sau fișiere externe de referință:
"github.copilot.chat.codeGeneration.instructions": [
{
"text": "Always add a comment: 'Generated by Copilot'."
},
{
"text": "In TypeScript always use underscore for private field names."
},
{
"file": "general.instructions.md"
},
{
"file": "db.instructions.md"
}
]
Cele mai bune practici pentru instrucțiuni personalizate
- Păstrați instrucțiunile concise: fiecare instrucțiune ar trebui să fie o singură declarație simplă.
- Evitați referințele externe: nu faceți referire la standarde sau resurse de codare externe.
- Organizați după subiect: Împărțiți instrucțiunile în mai multe fișiere pentru o mai bună organizare.
- Activați partajarea echipei: Stocați instrucțiunile în fișiere controlate de versiune pentru colaborarea în echipă.
-
Utilizați aplicația țintită: Utilizați
applyToproprietatea pentru instrucțiuni specifice fișierului. - Referință eficientă: Faceți referire la instrucțiuni personalizate în fișierele prompt pentru a evita duplicarea.
Summary
Instrucțiunile personalizate din GitHub Copilot Chat vă permit să definiți practicile de codare, tehnologiile preferate și cerințele de proiect care sunt incluse automat în fiecare solicitare de chat. Utilizând .github/copilot-instructions.md fișiere, .instructions.md fișiere sau setări Visual Studio Code, vă puteți asigura că răspunsurile generate de AI se aliniază cu standardele de codare și nevoile proiectului. Această abordare îmbunătățește calitatea și relevanța asistenței AI, menținând în același timp controlul asupra procesului de codare.