<div align="center">


<img width="520" height="147" alt="logo" src="https://github.com/user-attachments/assets/7cfb35b0-0a69-4550-a2b1-5d607b8bec50" />

**Editor de código profesional, moderno y minimalista**

[![Python](https://img.shields.io/badge/Python-3.8%2B-3776AB?style=for-the-badge&logo=python&logoColor=white)](https://www.python.org/)
[![PyQt5](https://img.shields.io/badge/PyQt5-5.15%2B-41CD52?style=for-the-badge&logo=qt&logoColor=white)](https://www.riverbankcomputing.com/software/pyqt/)
[![Platform](https://img.shields.io/badge/Plataforma-Windows-0078D6?style=for-the-badge&logo=windows&logoColor=white)](https://www.microsoft.com/windows)
[![License](https://img.shields.io/badge/Licencia-MIT-green?style=for-the-badge)](LICENSE)
[![Version](https://img.shields.io/badge/Versi%C3%B3n-1.0-blue?style=for-the-badge)](https://github.com/)
[![Dark Theme](https://img.shields.io/badge/Temas-4%20Dark-8B5CF6?style=for-the-badge)]()
[![Languages](https://img.shields.io/badge/Lenguajes-25%2B-orange?style=for-the-badge)]()

[Descargar](#-descarga) • [Características](#-características) • [Temas](#-temas) • [Lenguajes](#-lenguajes-soportados) • [Plugins](#-sistema-de-plugins) • [Atajos](#-atajos-de-teclado)

</div>

---

## 📋 Descripción

**XCode Editor** es un editor de código fuente ligero, profesional y minimalista construido íntegramente con **PyQt5** puro, sin dependencias externas como QScintilla. Diseñado con un enfoque oscuro y moderno, ofrece una experiencia de desarrollo fluida y sin distracciones. Su arquitectura basada en `QPlainTextEdit` y `QSyntaxHighlighter` personalizado garantiza un rendimiento óptimo incluso con archivos grandes, mientras que su sistema de temas cuidadosamente diseñados proporciona una estética atractiva que reduce la fatiga visual durante sesiones prolongadas de programación.

El editor integra funcionalidades avanzadas como un minimapa interactivo al estilo Sublime Text/VSCode, autoguardado configurable, zoom dinámico con la rueda del ratón, y un sistema de extensiones mediante plugins en Python. Además, en Windows se instala automáticamente en `Program Files`, crea accesos directos en el escritorio y menú de inicio, y se registra en el menú contextual del sistema para abrir archivos con un solo clic derecho.

Desarrollado por **Rodolfo Hernandez Baz** bajo **Rhino Forensic & Reverse Toolkit**.

---

## ✨ Características

### 🖥️ Interfaz

| Característica | Descripción |
|---|---|
| **Interfaz oscura moderna** | Diseño minimalista con 4 temas dark cuidadosamente seleccionados |
| **Pestañas múltiples** | Abre y trabaja con varios archivos simultáneamente |
| **Explorador de archivos** | Panel lateral integrado para navegación rápida del sistema de archivos |
| **Minimapa interactivo** | Vista previa en miniatura del archivo completo, estilo Sublime Text / VSCode |
| **Barra de herramientas** | Acceso rápido a las funciones más utilizadas con iconos dibujados con QPainter |
| **Barra de estado** | Información en tiempo real: línea, columna, lenguaje, codificación, zoom |
| **Diálogos temáticos** | Todos los diálogos y ventanas respetan el tema seleccionado |
| **Icono de ventana** | Icono personalizado visible en la barra de tareas de Windows |

### 🎨 Temas

| Tema | Descripción |
|---|---|
| **ZCode Dark** | Tema predeterminado con tonos púrpura y azul, inspirado en Catppuccin Mocha |
| **Monokai Pro** | El clásico Monokai con colores vibrantes y alto contraste |
| **Dracula** | Tema Dracula oficial con paleta rosa y cyan sobre fondo oscuro |
| **Nord** | Paleta fría y suave inspirada en el Aurora Boreal |

### 📝 Edición de código

| Característica | Descripción |
|---|---|
| **Resaltado de sintaxis** | Syntax highlighting para 25+ lenguajes de programación |
| **Números de línea** | Con resaltado de la línea actual en color acento |
| **Línea actual resaltada** | Fondo diferenciado para la línea donde se encuentra el cursor |
| **Auto-indentación** | Indentación automática al presionar Enter |
| **Smart Home** | La tecla Home alterna entre inicio de texto e inicio de línea |
| **Columna guía** | Línea vertical indicadora de columna límite (configurable, por defecto 100) |
| **Indent/Unindent** | Tab / Shift+Tab para indentar o desindentar selección |
| **Duplicar línea** | `Ctrl+D` duplica la línea actual |
| **Eliminar línea** | `Ctrl+Shift+K` elimina la línea actual |
| **Comentar/Descomentar** | `Ctrl+/` toggle de comentario de línea, `Ctrl+Shift+/` comentario de bloque |
| **Mover líneas** | `Alt+↑/↓` mueve la línea o selección arriba/abajo |
| **Selección de palabra** | `Ctrl+D` (sin selección) selecciona la palabra bajo el cursor |
| **Ajuste de línea** | Word wrap configurable (activado/desactivado) |
| **Zoom** | `Ctrl+Rueda del ratón` para acercar/alejar el texto dinámicamente |

### 🔍 Búsqueda y reemplazo

| Característica | Descripción |
|---|---|
| **Buscar** | `Ctrl+F` abre barra de búsqueda integrada |
| **Reemplazar** | `Ctrl+H` abre barra de reemplazo |
| **Expresiones regulares** | Soporte completo de regex en búsqueda y reemplazo |
| **Coincidencia mayúsculas** | Opción de búsqueda sensible a mayúsculas/minúsculas |
| **Palabra completa** | Opción de buscar solo palabras completas |
| **Resaltado de resultados** | Todas las coincidencias se resaltan en el editor |

### 💾 Archivos

| Característica | Descripción |
|---|---|
| **Abrir archivos** | `Ctrl+O` diálogo de apertura con filtros por tipo |
| **Guardar** | `Ctrl+S` guardar archivo actual |
| **Guardar como** | `Ctrl+Shift+S` guardar con nuevo nombre/ruta |
| **Archivos recientes** | Menú de archivos abiertos recientemente |
| **Sesión persistente** | Al cerrar y reabrir, se restauran las pestañas y posiciones |
| **Autoguardado** | Guardado automático configurable (intervalo en segundos) |
| **Codificación UTF-8** | Lectura y escritura en UTF-8 por defecto |
| **Detección de lenguaje** | Detección automática del lenguaje por extensión del archivo |

### 🧩 Sistema de Plugins

| Característica | Descripción |
|---|---|
| **Plugins en Python** | Sistema de extensiones basado en scripts Python |
| **Directorio de plugins** | `~/.zcode/plugins/` para instalar extensiones |
| **Gestor de plugins** | Diálogo integrado para activar/desactivar plugins |
| **API de plugins** | Clase base `XCodePlugin` con acceso al editor y configuración |
| **Plugin de ejemplo** | Incluye plugin de demostración para facilitar la creación de nuevos |

### 🪟 Integración con Windows

| Característica | Descripción |
|---|---|
| **Instalación automática** | Se copia automáticamente a `C:\Program Files (x86)\XCoder Editor v 1.0\` |
| **Acceso directo en escritorio** | Crea acceso directo en el escritorio de Windows automáticamente |
| **Menú de inicio** | Crea entrada en el Menú de Inicio de Windows |
| **Fijar en barra de tareas** | Opción de fijar el programa en la barra de tareas |
| **Menú contextual** | Se registra automáticamente en el menú contextual de Windows ("Abrir con XCode Editor") |
| **Verificación de registro** | En cada inicio verifica que la ruta del exe en el menú contextual sea correcta |
| **Instancia única** | Al abrir un archivo desde el menú contextual, se usa la ventana existente en lugar de abrir una nueva instancia |

### ⚙️ Configuración

| Característica | Descripción |
|---|---|
| **Configuración persistente** | Se guarda en `~/.zcode/config.json` |
| **Fuente configurable** | Familia de fuente y tamaño ajustables |
| **Tamaño de tabulación** | Configurable (2, 4, 8 espacios) |
| **Tabs vs Espacios** | Opción de usar tabulaciones o espacios |
| **Mostrar/ocultar minimapa** | El minimapa puede activarse o desactivarse |
| **Intervalo de autoguardado** | Configurable en segundos |
| **Geometría de ventana** | Se recuerda el tamaño y posición de la ventana |

---

## 🎨 Temas

XCode Editor incluye 4 temas oscuros de alta calidad, cada uno diseñado para ofrecer una experiencia visual cómoda y productiva:

### ZCode Dark (Predeterminado)
Tema principal con tonos púrpura y azul suave, inspirado en Catppuccin Mocha. Ofrece un excelente equilibrio entre estética y legibilidad, con palabras clave en púrpura, cadenas en verde suave y funciones en azul claro.

### Monokai Pro
El clásico esquema Monokai llevado al siguiente nivel. Colores vibrantes y saturados con palabras clave en rosa, cadenas en verde lima y funciones en cyan. Ideal para desarrolladores que prefieren alto contraste y colores intensos.

### Dracula
Basado en el popular tema Dracula, combina tonos rosa y cyan sobre un fondo azul oscuro. Las palabras clave resaltan en rosa intenso, las cadenas en amarillo suave y las funciones en verde esmeralda.

### Nord
Inspirado en la paleta Nord con tonos fríos y sutiles. Las palabras clave aparecen en tono mauve, las funciones en azul hielo y las clases en amarillo dorado. Perfecto para sesiones prolongadas gracias a su baja saturación.

---

## 📜 Lenguajes Soportados

XCode Editor proporciona resaltado de sintaxis para los siguientes lenguajes:

| Categoría | Lenguajes |
|---|---|
| **Web** | HTML, CSS, SCSS, Less, JavaScript, JSX, TypeScript, TSX, PHP |
| **Scripting** | Python, Ruby, Bash, Shell, ZSH |
| **Compilados** | C, C++, Java, C#, Kotlin, Go, Rust |
| **Datos** | JSON, YAML, XML, SQL |
| **Markup** | Markdown, SVG |

### Extensiones reconocidas automáticamente

```
.py  .pyw  .js  .jsx  .mjs  .ts  .tsx  .html  .htm  .svg
.css  .scss  .less  .java  .kt  .kts  .c  .h  .cpp  .hpp
.cc  .cxx  .cs  .sql  .sh  .bash  .zsh  .xml  .json
.yaml  .yml  .md  .markdown  .rb  .go  .rs  .php
```

---

## 🧩 Sistema de Plugins

XCode Editor cuenta con un sistema de extensiones que permite ampliar su funcionalidad mediante plugins escritos en Python puro.

### Estructura de un plugin

```python
from zcode_plugin_api import XCodePlugin

class MiPlugin(XCodePlugin):
    name = "Mi Plugin"
    description = "Descripción de mi plugin"
    version = "1.0"
    author = "Tu Nombre"

    def on_activate(self):
        """Se ejecuta al activar el plugin."""
        pass

    def on_deactivate(self):
        """Se ejecuta al desactivar el plugin."""
        pass
```

### Instalación de plugins

1. Coloca el archivo `.py` del plugin en el directorio `~/.zcode/plugins/`
2. Abre XCode Editor y ve a **Herramientas → Plugins**
3. Activa el plugin desde el gestor de plugins integrado
4. El plugin se cargará automáticamente en el siguiente inicio

### API disponible

Los plugins tienen acceso a:
- El editor activo y su contenido
- El gestor de configuración
- El tema actual
- Los archivos abiertos
- La barra de estado

---

## ⌨️ Atajos de Teclado

### Archivo

| Atajo | Acción |
|---|---|
| `Ctrl+N` | Nuevo archivo |
| `Ctrl+O` | Abrir archivo |
| `Ctrl+S` | Guardar |
| `Ctrl+Shift+S` | Guardar como |
| `Ctrl+W` | Cerrar pestaña actual |
| `Ctrl+Tab` | Siguiente pestaña |
| `Ctrl+Shift+Tab` | Pestaña anterior |

### Edición

| Atajo | Acción |
|---|---|
| `Ctrl+Z` | Deshacer |
| `Ctrl+Y` | Rehacer |
| `Ctrl+D` | Duplicar línea / Seleccionar palabra |
| `Ctrl+Shift+K` | Eliminar línea |
| `Ctrl+/` | Comentar/Descomentar línea |
| `Ctrl+Shift+/` | Comentario de bloque |
| `Alt+↑` | Mover línea arriba |
| `Alt+↓` | Mover línea abajo |
| `Tab` | Indentar selección |
| `Shift+Tab` | Desindentar selección |

### Búsqueda

| Atajo | Acción |
|---|---|
| `Ctrl+F` | Buscar |
| `Ctrl+H` | Buscar y reemplazar |
| `Enter` | Siguiente coincidencia |
| `Shift+Enter` | Coincidencia anterior |
| `Escape` | Cerrar barra de búsqueda |

### Vista

| Atajo | Acción |
|---|---|
| `Ctrl+Rueda ↑` | Acercar zoom |
| `Ctrl+Rueda ↓` | Alejar zoom |
| `Ctrl+0` | Restablecer zoom |
| `Ctrl+B` | Mostrar/ocultar explorador de archivos |
| `F11` | Pantalla completa |

---

## 📥 Descarga

1. Descarga el ejecutable `XCode Editor v1.0.exe`
2. Ejecútalo — en el primer inicio se instalará automáticamente en:
   ```
   C:\Program Files (x86)\XCoder Editor v 1.0\
   ```
3. Se crearán automáticamente:
   - Acceso directo en el **Escritorio**
   - Acceso directo en el **Menú de Inicio**
   - Registro en el **menú contextual** de Windows (clic derecho → "Abrir con XCode Editor")

### Requisitos

- **Sistema Operativo**: Windows 7 / 8 / 10 / 11
- **RAM**: Mínimo 512 MB
- **Espacio en disco**: ~50 MB
- **No requiere Python instalado** — el ejecutable es completamente autónomo

---

## 🛡️ Licencia

Este proyecto está licenciado bajo la **MIT License** — consulte el archivo [LICENSE](LICENSE) para más detalles.

---

<div align="center">

**XCode Editor v1.0** — Desarrollado por **Rodolfo Hernandez Baz**

**Rhino Forensic & Reverse Toolkit**

</div>
