Aller au contenu principal

Créer de nouveaux fichiers avec l'agent

L'agent IA de Cursor est un outil puissant pour créer et gérer de nouveaux fichiers. Ce guide vous montrera comment utiliser l'agent pour créer des fichiers efficacement.

Utilisation de base

1. Commandes de création de fichiers

# Création de fichier de base
/agent create file [nom_du_fichier]

# Création de fichier dans un chemin spécifique
/agent create file [chemin/nom_du_fichier]

# Utilisation d'un modèle
/agent create file [nom_du_fichier] --template [nom_du_modèle]

2. Spécification du type de fichier

# Création d'un composant React
/agent create file components/Button.tsx --type react

# Création d'une route API
/agent create file api/users.ts --type api

# Création d'un fichier de test
/agent create file tests/Button.test.tsx --type test

Fonctionnalités avancées

1. Utilisation des modèles

// Modèle de composant React
interface ComponentTemplate {
name: string;
props?: Record<string, any>;
children?: boolean;
}

// Application du modèle
/agent create file Button.tsx --template react-component --props "color:string,size:number"

2. Création de structure de fichiers

# Création d'une structure de répertoire complète
/agent create structure src/components/Button

# Résultat :
# src/components/Button/
# ├── index.ts
# ├── Button.tsx
# ├── Button.test.tsx
# └── Button.module.css

Meilleures pratiques

1. Conventions de nommage

1. Fichiers de composants
- Utiliser PascalCase (ex: Button.tsx)
- Ajouter des suffixes fonctionnels (ex: ButtonContainer.tsx)

2. Fichiers utilitaires
- Utiliser camelCase (ex: utils.ts)
- Ajouter des suffixes par objectif (ex: dateUtils.ts)

3. Fichiers de test
- Nom du fichier testé + .test (ex: Button.test.tsx)
- Tests de snapshot avec .snapshot (ex: Button.snapshot.tsx)

2. Organisation des fichiers

1. Structure de composant
- Fichier de composant
- Fichier de style
- Fichier de test
- Fichier d'index

2. Structure fonctionnelle
- Répertoire par fonctionnalité
- Regroupement des fichiers associés
- Hiérarchie claire

Fonctionnalités d'automatisation

1. Automatisation de la création de fichiers

// Configuration de création de fichier
interface FileConfig {
name: string;
type: string;
template?: string;
path?: string;
options?: Record<string, any>;
}

// Script de création automatique
async function createFiles(configs: FileConfig[]): Promise<void> {
for (const config of configs) {
await agent.createFile(config);
}
}

2. Gestion des modèles

// Définition des modèles
const templates = {
react: {
component: `
import React from 'react';

interface Props {
// définition des props
}

export const {{name}}: React.FC<Props> = (props) => {
return (
// contenu du composant
);
};
`,
test: `
import { render, screen } from '@testing-library/react';
import { {{name}} } from './{{name}}';

describe('{{name}}', () => {
it('renders correctly', () => {
// contenu du test
});
});
`
}
};

Dépannage

1. Erreurs courantes

1. Échec de création de fichier
- Vérifier les permissions
- Valider le chemin
- Vérifier l'espace disque

2. Erreurs de modèle
- Vérifier la syntaxe du modèle
- Vérifier la substitution des variables
- Valider les champs requis

2. Débogage

class FileCreator {
// Journalisation de débogage
private logCreation(config: FileConfig): void {
console.log('Création du fichier:', {
name: config.name,
type: config.type,
path: config.path
});
}

// Gestion des erreurs
private handleError(error: Error): void {
console.error('Échec de création du fichier:', error);
// Logique de récupération
}
}

Optimisation des performances

1. Traitement par lots

class BatchFileCreator {
// Création par lots
async createBatch(files: FileConfig[]): Promise<void> {
const batches = this.createBatches(files, 5);
for (const batch of batches) {
await Promise.all(batch.map(file => this.createFile(file)));
}
}

// Création des lots
private createBatches(files: FileConfig[], size: number): FileConfig[][] {
return files.reduce((batches, file, index) => {
const batchIndex = Math.floor(index / size);
if (!batches[batchIndex]) {
batches[batchIndex] = [];
}
batches[batchIndex].push(file);
return batches;
}, []);
}
}

2. Mise en cache

class TemplateCache {
private cache: Map<string, string> = new Map();

// Récupération du modèle
async getTemplate(name: string): Promise<string> {
if (this.cache.has(name)) {
return this.cache.get(name);
}
const template = await this.loadTemplate(name);
this.cache.set(name, template);
return template;
}
}

Considérations de sécurité

1. Permissions des fichiers

class FilePermissionManager {
// Vérification des permissions
async checkPermissions(path: string): Promise<boolean> {
try {
await fs.access(path, fs.constants.W_OK);
return true;
} catch {
return false;
}
}

// Définition des permissions
async setPermissions(path: string, mode: number): Promise<void> {
await fs.chmod(path, mode);
}
}

2. Validation des entrées

class FileValidator {
// Validation du nom de fichier
validateFileName(name: string): boolean {
return /^[a-zA-Z0-9-_]+$/.test(name);
}

// Validation du chemin
validatePath(path: string): boolean {
return !path.includes('..') && path.startsWith('/');
}
}

Conclusion

L'utilisation de l'agent IA de Cursor pour créer des fichiers peut considérablement améliorer votre flux de travail de développement. En suivant les meilleures pratiques de ce guide, vous pouvez établir un processus de création de fichiers efficace et cohérent.

Ressources supplémentaires :


Dernière mise à jour : Février 2025 - Ce guide couvre Cursor version 0.43.