feat: Add new commands for Discord bot - Implemented "Everyone" command that replies to the user when executed. - Added "sdfsdfsdf" command with an alias "dfsf" that also replies to the user. - Enhanced the command structure with type definitions for better type safety.
420 lines
11 KiB
Markdown
420 lines
11 KiB
Markdown
# 🎯 Guía Práctica: Usando las Nuevas Funciones
|
||
|
||
## 📋 Tabla de Contenidos
|
||
|
||
1. [Usar EnvManager](#1-usar-envmanager)
|
||
2. [Eliminar Archivos Correctamente](#2-eliminar-archivos)
|
||
3. [Interpretar Logs de Debugging](#3-logs-de-debugging)
|
||
4. [Prevenir Errores Comunes](#4-prevenir-errores)
|
||
|
||
---
|
||
|
||
## 1. Usar EnvManager
|
||
|
||
### Paso 1: Abrir el Manager
|
||
|
||
1. Click en el botón **"🔐 Variables ENV"** en el sidebar izquierdo
|
||
2. Se abrirá el panel del EnvManager
|
||
|
||
### Paso 2: Escanear Variables
|
||
|
||
1. Click en **"🔍 Escanear Proyecto"**
|
||
2. Espera a que termine (aparecerá notificación)
|
||
3. Verás algo como:
|
||
|
||
```
|
||
✅ Escaneadas 5 variables del código
|
||
➕ Se agregaron 3 variables nuevas
|
||
```
|
||
|
||
### Paso 3: Ver Ubicaciones
|
||
|
||
Cada variable mostrará dónde se usa:
|
||
|
||
```
|
||
DATABASE_URL
|
||
📍 Usada en 2 ubicación(es) ▼
|
||
├─ src\core\prisma.ts:12 → const client = new PrismaClient({ datasourceUrl: process.env.DATABASE_URL })
|
||
└─ src\commands\admin\setup.ts:8 → if (!process.env.DATABASE_URL) throw new Error('Missing DB')
|
||
```
|
||
|
||
**Explicación:**
|
||
- `src\core\prisma.ts:12` = Archivo y número de línea
|
||
- `→ const client = ...` = Código exacto donde se usa
|
||
|
||
### Paso 4: Editar Variables
|
||
|
||
**Opción A: Formulario (Recomendado)**
|
||
1. Busca la variable en la lista
|
||
2. Escribe el valor en el input
|
||
3. Click en 👁️ para mostrar/ocultar valores sensibles
|
||
4. Click en **"💾 Guardar .env"**
|
||
|
||
**Opción B: Editor Raw**
|
||
1. Scroll hasta **"📝 Editor Raw (.env)"**
|
||
2. Edita el texto directamente:
|
||
```env
|
||
DATABASE_URL=postgres://localhost:5432/mydb
|
||
API_KEY=sk_test_123456789
|
||
DEBUG=true
|
||
```
|
||
3. Click en **"🔄 Sincronizar desde Raw"**
|
||
4. Click en **"💾 Guardar .env"**
|
||
|
||
### Paso 5: Agregar Variable Manual
|
||
|
||
Si necesitas una variable que no está en el código:
|
||
|
||
1. Click en **"➕ Agregar Variable"**
|
||
2. Escribe el nombre (ej: `MY_SECRET_KEY`)
|
||
3. Se convierte automáticamente a mayúsculas: `MY_SECRET_KEY`
|
||
4. Escribe el valor
|
||
5. Guarda
|
||
|
||
### Paso 6: Eliminar Variable
|
||
|
||
1. Busca la variable en la lista
|
||
2. Click en el botón **"🗑️"**
|
||
3. Confirma la eliminación
|
||
4. La variable desaparece del formulario Y del editor raw
|
||
5. Click en **"💾 Guardar .env"** para aplicar
|
||
|
||
---
|
||
|
||
## 2. Eliminar Archivos
|
||
|
||
### Problema: "Permiso Denegado"
|
||
|
||
**Síntoma:**
|
||
```
|
||
❌ Error eliminando: Permiso denegado para eliminar: src/test.ts
|
||
Ejecuta el editor como administrador
|
||
```
|
||
|
||
**Solución Windows:**
|
||
|
||
**Método 1: Ejecutar como Admin**
|
||
1. Cierra la aplicación
|
||
2. Click derecho en el ejecutable
|
||
3. "Ejecutar como administrador"
|
||
4. Intenta eliminar de nuevo
|
||
|
||
**Método 2: PowerShell Elevado**
|
||
```powershell
|
||
# Abrir PowerShell como Admin
|
||
Start-Process -FilePath "C:\ruta\a\tu\editor.exe" -Verb RunAs
|
||
```
|
||
|
||
**Método 3: Cambiar Permisos**
|
||
1. Click derecho en la carpeta del proyecto
|
||
2. Propiedades → Seguridad → Editar
|
||
3. Tu usuario → Control total ✅
|
||
4. Aplicar → OK
|
||
|
||
### Problema: "Archivo no Encontrado"
|
||
|
||
**Síntoma:**
|
||
```
|
||
❌ Archivo no encontrado: src/deleted.ts
|
||
```
|
||
|
||
**Causa:** Otro programa ya eliminó el archivo (Git, otro editor, etc.)
|
||
|
||
**Solución:** Refresca el árbol de archivos (F5 o click en "🔄 Refrescar")
|
||
|
||
### Problema: "No es un Archivo"
|
||
|
||
**Síntoma:**
|
||
```
|
||
❌ La ruta no es un archivo: src/commands
|
||
```
|
||
|
||
**Causa:** Intentaste eliminar una carpeta con el botón de eliminar archivo
|
||
|
||
**Solución:** Usa el botón de eliminar carpeta (usualmente click derecho → Eliminar carpeta)
|
||
|
||
---
|
||
|
||
## 3. Logs de Debugging
|
||
|
||
### Dónde Ver los Logs
|
||
|
||
**Opción 1: Consola del Navegador (Desarrollo)**
|
||
1. Presiona **F12**
|
||
2. Tab "Console"
|
||
3. Verás todos los logs
|
||
|
||
**Opción 2: Archivo de Log (Producción)**
|
||
- Windows: `C:\Users\TuUsuario\AppData\Local\amayo-editor\logs\`
|
||
- Linux: `~/.local/share/amayo-editor/logs/`
|
||
- Mac: `~/Library/Application Support/amayo-editor/logs/`
|
||
|
||
### Logs del EnvManager
|
||
|
||
#### Carga Exitosa
|
||
```
|
||
📂 Cargando .env desde: C:/Users/Shnimlz/Documents/GitHub/amayo
|
||
✅ .env cargado, contenido: DATABASE_URL=postgres://localhost
|
||
PORT=3000
|
||
API_KEY=sk_test_123
|
||
🔍 Parseando .env, líneas: 3
|
||
✓ DATABASE_URL=postgres://localhost
|
||
✓ PORT=3000
|
||
✓ API_KEY=sk_test_123
|
||
✅ Variables parseadas: 3
|
||
```
|
||
|
||
**Interpretación:**
|
||
- ✅ Todo bien
|
||
- Se cargaron 3 variables correctamente
|
||
|
||
#### Archivo No Existe
|
||
```
|
||
📂 Cargando .env desde: C:/Users/Shnimlz/Documents/GitHub/amayo
|
||
❌ Error cargando .env: No such file or directory
|
||
ℹ️ No se encontró archivo .env, se creará uno nuevo
|
||
```
|
||
|
||
**Interpretación:**
|
||
- ⚠️ Normal en proyectos nuevos
|
||
- El archivo se creará cuando guardes
|
||
|
||
#### Error de Parseo
|
||
```
|
||
🔍 Parseando .env, líneas: 5
|
||
✓ DATABASE_URL=postgres://localhost
|
||
✗ Línea inválida: "INVALID LINE WITHOUT EQUALS"
|
||
✓ API_KEY=sk_test_123
|
||
✅ Variables parseadas: 2
|
||
```
|
||
|
||
**Interpretación:**
|
||
- ⚠️ Una línea no tiene formato válido
|
||
- Se ignoró y se cargaron las demás
|
||
|
||
### Logs del Guardado
|
||
|
||
#### Guardado Exitoso
|
||
```
|
||
💾 Guardando .env...
|
||
Ruta del proyecto: C:/Users/Shnimlz/Documents/GitHub/amayo
|
||
Contenido a guardar: DATABASE_URL=postgres://localhost
|
||
PORT=3000
|
||
✅ Guardado exitoso
|
||
```
|
||
|
||
**Interpretación:**
|
||
- ✅ Archivo escrito en el disco
|
||
- Ubicación: `{projectRoot}/.env`
|
||
|
||
#### Error de Permisos
|
||
```
|
||
💾 Guardando .env...
|
||
❌ Error guardando .env: Permission denied (os error 13)
|
||
```
|
||
|
||
**Solución:** Ejecutar como administrador
|
||
|
||
---
|
||
|
||
## 4. Prevenir Errores Comunes
|
||
|
||
### Error 1: Variables No Se Guardan
|
||
|
||
**Síntoma:** Editas variables pero al reabrir están en blanco
|
||
|
||
**Causa:** No hiciste click en "💾 Guardar .env"
|
||
|
||
**Prevención:**
|
||
1. Siempre busca el botón verde "💾 Guardar .env"
|
||
2. Debe estar habilitado (no gris)
|
||
3. Click y espera la notificación: "✅ Archivo .env guardado correctamente"
|
||
|
||
### Error 2: Editor Raw y Formulario Desincronizados
|
||
|
||
**Síntoma:** El formulario muestra valores diferentes al editor raw
|
||
|
||
**Causa:** Editaste en raw pero no sincronizaste
|
||
|
||
**Prevención:**
|
||
1. Si editas en raw, SIEMPRE click en "🔄 Sincronizar desde Raw"
|
||
2. Espera la notificación: "🔄 Sincronizado desde editor raw"
|
||
3. Verifica que el formulario se actualizó
|
||
4. Ahora sí, guarda
|
||
|
||
### Error 3: Loop Infinito (Navegador Colgado)
|
||
|
||
**Síntoma:** El navegador se congela al editar variables
|
||
|
||
**Causa:** Bug en el código (ya arreglado con `isUpdatingRaw`)
|
||
|
||
**Si pasa:**
|
||
1. Cierra la aplicación
|
||
2. Actualiza a la última versión
|
||
3. El flag `isUpdatingRaw` previene este problema
|
||
|
||
### Error 4: Variables Detectadas pero No en el .env
|
||
|
||
**Síntoma:** "⚠️ Sin definir: 3" pero no aparecen en la lista
|
||
|
||
**Causa:** No se auto-agregaron
|
||
|
||
**Solución:**
|
||
1. Scroll hasta "⚠️ Variables sin definir encontradas en el código"
|
||
2. Click en "➕ Agregar" en cada variable faltante
|
||
3. O click en "🔍 Escanear Proyecto" de nuevo
|
||
|
||
### Error 5: Ubicaciones No Aparecen
|
||
|
||
**Síntoma:** Las variables no muestran "📍 Usada en X ubicación(es)"
|
||
|
||
**Causa:** Versión vieja del backend
|
||
|
||
**Solución:**
|
||
1. Verifica que `AEditor/src-tauri/src/lib.rs` tenga la función `scan_env_variables_with_locations`
|
||
2. Recompila el backend Rust:
|
||
```bash
|
||
cd AEditor
|
||
npm run tauri build
|
||
```
|
||
3. Reinicia la aplicación
|
||
|
||
---
|
||
|
||
## 5. Ejemplos de Casos de Uso
|
||
|
||
### Caso 1: Proyecto Nuevo
|
||
|
||
**Escenario:** Acabas de clonar un repo, no tiene .env
|
||
|
||
**Pasos:**
|
||
1. Abre EnvManager
|
||
2. Click "🔍 Escanear Proyecto"
|
||
3. Se detectan automáticamente todas las variables del código
|
||
4. Completa los valores:
|
||
```env
|
||
DATABASE_URL=postgres://localhost:5432/mydb
|
||
JWT_SECRET=supersecret123
|
||
API_KEY=sk_live_...
|
||
```
|
||
5. Guarda
|
||
6. ¡Listo! Ya tienes tu .env
|
||
|
||
### Caso 2: Migración de Variables
|
||
|
||
**Escenario:** Renombraste una variable en el código
|
||
|
||
**Pasos:**
|
||
1. Cambia en el código:
|
||
```typescript
|
||
// Antes
|
||
const url = process.env.DATABASE_URL;
|
||
|
||
// Después
|
||
const url = process.env.DB_CONNECTION_STRING;
|
||
```
|
||
2. Abre EnvManager
|
||
3. Click "🔍 Escanear Proyecto"
|
||
4. Verás:
|
||
- ✅ `DB_CONNECTION_STRING` detectada
|
||
- ⚠️ `DATABASE_URL` ya no se usa
|
||
5. Elimina `DATABASE_URL`
|
||
6. Agrega valor a `DB_CONNECTION_STRING`
|
||
7. Guarda
|
||
|
||
### Caso 3: Debugging de Variable Faltante
|
||
|
||
**Escenario:** Tu app dice "Missing environment variable: API_KEY"
|
||
|
||
**Pasos:**
|
||
1. Abre EnvManager
|
||
2. Click "🔍 Escanear Proyecto"
|
||
3. Busca `API_KEY` en la lista
|
||
4. Mira "📍 Usada en X ubicación(es)" para ver dónde se requiere:
|
||
```
|
||
src\server\api.ts:15 → headers: { 'Authorization': process.env.API_KEY }
|
||
```
|
||
5. Agrega el valor correcto
|
||
6. Guarda
|
||
7. Reinicia la app
|
||
|
||
### Caso 4: Compartir .env.example
|
||
|
||
**Escenario:** Quieres compartir un template del .env sin valores sensibles
|
||
|
||
**Pasos:**
|
||
1. Abre EnvManager
|
||
2. Copia el contenido del editor raw
|
||
3. Crea archivo `.env.example`
|
||
4. Pega y reemplaza valores:
|
||
```env
|
||
DATABASE_URL=postgres://localhost:5432/your_db_name
|
||
JWT_SECRET=your_secret_here
|
||
API_KEY=your_api_key_here
|
||
```
|
||
5. Commit `.env.example` a Git
|
||
6. **NO** comitees `.env` (debe estar en `.gitignore`)
|
||
|
||
---
|
||
|
||
## 6. Atajos de Teclado
|
||
|
||
| Acción | Atajo |
|
||
|--------|-------|
|
||
| Guardar .env | `Ctrl+S` (cuando el botón está habilitado) |
|
||
| Abrir DevTools | `F12` |
|
||
| Refrescar | `F5` |
|
||
| Buscar en raw | `Ctrl+F` (dentro del textarea) |
|
||
| Seleccionar todo raw | `Ctrl+A` (dentro del textarea) |
|
||
|
||
---
|
||
|
||
## 7. Checklist de Verificación
|
||
|
||
Antes de cerrar EnvManager, verifica:
|
||
|
||
- [ ] Todas las variables tienen valores (no vacías)
|
||
- [ ] No hay "⚠️ Sin definir" (o las agregaste intencionalmente)
|
||
- [ ] Guardaste los cambios (botón "💾 Guardar .env" presionado)
|
||
- [ ] Viste la notificación: "✅ Archivo .env guardado correctamente"
|
||
- [ ] Si editaste en raw, sincronizaste primero
|
||
|
||
---
|
||
|
||
## 8. Troubleshooting Rápido
|
||
|
||
| Problema | Solución Rápida |
|
||
|----------|-----------------|
|
||
| No guarda cambios | ¿Hiciste click en "💾 Guardar .env"? |
|
||
| Permiso denegado | Ejecutar como administrador |
|
||
| Variables no aparecen | Click en "🔍 Escanear Proyecto" |
|
||
| Raw y formulario diferentes | Click en "🔄 Sincronizar desde Raw" |
|
||
| Ubicaciones no aparecen | Recompila el backend Rust |
|
||
| App se congela | Actualiza a última versión (tiene fix) |
|
||
|
||
---
|
||
|
||
## 9. Preguntas Frecuentes
|
||
|
||
**P: ¿Dónde se guarda el .env?**
|
||
R: En la raíz del proyecto: `{projectRoot}/.env`
|
||
|
||
**P: ¿Puedo editar el .env manualmente en otro editor?**
|
||
R: Sí, pero después haz "🔄 Refrescar" en el EnvManager para recargar
|
||
|
||
**P: ¿Las ubicaciones se actualizan en tiempo real?**
|
||
R: No, tienes que hacer "🔍 Escanear Proyecto" para actualizar
|
||
|
||
**P: ¿Puedo agregar comentarios en el .env?**
|
||
R: Sí, líneas que empiezan con `#` son comentarios
|
||
|
||
**P: ¿Qué pasa si elimino una variable que se usa en el código?**
|
||
R: El código fallará en runtime. Verifica las ubicaciones antes de eliminar.
|
||
|
||
**P: ¿Puedo tener múltiples .env?**
|
||
R: Sí, pero el EnvManager solo maneja `.env`. Para `.env.local`, `.env.production`, etc., edítalos manualmente.
|
||
|
||
---
|
||
|
||
¡Eso es todo! Ahora eres un experto en usar el nuevo EnvManager 🎉
|