Skip to content

Choose a tag to compare

@LucatorL LucatorL released this 27 May 11:28
· 6 commits to main since this release
272cae7

Changelog

[V4.0.0]

Esta versión introduce mejoras significativas en la interfaz de usuario, la funcionalidad de manejo de archivos, la personalización del tema y la robustez general de la aplicación.

PUEDES DESCARGAR EL EJECUTABLE AQUI

✨ Nuevas Características (Features)

  • Soporte Extendido de Archivos:
    • Ahora se pueden incluir y previsualizar múltiples tipos de archivos de texto además de .java, como: .txt, .md, .xml, .properties, .sql, .csv, .yaml, .yml, .pom, .classpath, .project, .dat, .json, .html, .css, .gradle, y muchos más scripts y archivos de código.
    • Los archivos se agrupan inteligentemente en la vista previa: paquetes Java primero, luego una sección para "Otros Archivos de Proyecto".
  • Contador de Tokens Estimado: La vista previa unificada ahora muestra una estimación de los tokens (basada en ~4 caracteres/token) para ayudar a evaluar la longitud del contenido para LLMs.
  • Filtros Avanzados en Vista Previa:
    • Nuevos botones de filtro en la ventana de selección de archivos: "☕ Solo Java", "✅ Todo", "❌ Nada".
    • Permiten seleccionar/deseleccionar rápidamente archivos según su tipo.
  • Iconografía Mejorada:
    • Iconos Unicode para tipos de archivo en la lista de selección (ej. ☕ para Java, 📜 para XML/Scripts, 📝 para TXT).
    • Iconos Unicode en botones clave (ej. 📋 para Copiar, 👁️ para Previsualizar archivo individual).
    • Botón de cambio de tema ahora usa iconos 🌞 (Sol) / 🌛 (Luna).

🎨 Mejoras Visuales y de Interfaz de Usuario (UI/UX Improvements)

  • Tema Oscuro Renovado y Completo:
    • Aplicación mucho más profunda y consistente del tema oscuro a todos los rincones de la UI.
    • Componentes como JOptionPane (diálogos de entrada/confirmación), JFileChooser (selector de archivos) y barras de desplazamiento ahora respetan mejor el tema oscuro.
    • Mejor contraste y legibilidad en modo oscuro.
  • Barras de Desplazamiento Modernizadas:
    • Implementada una BasicScrollBarUI personalizada (ModernScrollBarUI) para un aspecto más plano, moderno y consistente con el tema oscuro/claro.
    • Eliminación de los botones de flecha de las barras de desplazamiento para un diseño más limpio.
  • Mejoras en JOptionPane y JFileChooser:
    • Para mejorar la legibilidad con los estilos nativos del sistema operativo, los JOptionPane y JFileChooser ahora pueden usar un tema claro temporalmente (especialmente cuando el modo oscuro está activo) para los diálogos de entrada de texto o selección, asegurando que los elementos del sistema sean visibles.
    • Se aplican estilos de tema más directamente a JFileChooser durante su uso y se restauran después.
  • Retroalimentación Visual:
    • Mejoras en bordes, espaciado y fuentes en varios componentes para una apariencia más pulida.
    • Panel de "Archivos Recientes" con mejor espaciado y estilo de botones.
    • Etiquetas de proyecto y paquete en la vista previa de selección de archivos con un diseño más claro.
  • Selección por Defecto: Los archivos .java ahora están seleccionados por defecto en la ventana de vista previa/selección.

🔧 Mejoras Internas y Corrección de Errores (Internal Improvements & Bug Fixes)

  • Seguridad en Descompresión:
    • Añadidas comprobaciones para prevenir vulnerabilidades de "Path Traversal" (Zip Slip) al extraer archivos ZIP y RAR.
  • Manejo de Codificación:
    • Uso explícito de StandardCharsets.UTF_8 al leer y escribir archivos, y al procesar ZipInputStream para mayor consistencia.
  • Manejo de Errores Mejorado:
    • Mensajes de error más descriptivos y con mejor formato (usando HTML en JLabel para JOptionPane), especialmente para el error de librería nativa de 7-Zip al inicio.
  • Gestión de Configuración:
    • Añadidas verificaciones de null antes de acceder a isSelected() en checkboxes durante la carga/guardado de configuración para mayor robustez (aunque ya estaban inicializados).
  • Robustez del Theming:
    • Uso extensivo de ColorUIResource para asegurar que los cambios de tema se apliquen correctamente a través del LookAndFeel.
    • Creación de getLookAndFeelColor para obtener colores del L&F de forma segura con un fallback.
    • Llamada a JDialog.setDefaultLookAndFeelDecorated(true) para mejorar la decoración de diálogos.
  • Estructura de Código:
    • Nuevos métodos helper como isFileAllowed(), isJavaFile(), findAllAllowedFiles() para manejar la lógica de extensión de archivos.
    • Refactorización menor en la lógica de agrupación de archivos para la vista previa y unificación.

🗑️ Eliminado (Removed)

  • Import no utilizado: javax.swing.plaf.basic.BasicArrowButton.