Repository navigation
v2.10 SQL Formatter: formateo, minificado y resaltado de SQL básico (106/106 tests) - #11
Merged
Merged
Conversation
Evaluado con el Test de 4 Preguntas (3/4): formateador básico acotado, NO un parser SQL completo (eso serían miles de líneas). - formatSQL(): tokenizer propio (strings con '' escapada, identificadores citados, comentarios -- y /* */) + saltos por cláusula (SELECT/FROM/WHERE/JOIN/GROUP/ORDER/UNION...), sangría por profundidad de paréntesis (subconsultas), AND/OR/ON con sangría extra, BETWEEN x AND y sin romper, funciones pegadas al paréntesis (COUNT(id)) y cláusulas con espacio (IN (1, 2)). Opción 'Mayúsculas (SQL)' persistida en prefs y presets de URL. - minifySQL(): una línea; los comentarios -- pasan a /* */ (en una línea comentarían todo lo que sigue); 'Quitar comentarios' también aplica. - highlightSQL(): keywords/strings/números/comentarios con las clases de color existentes — 5 temas sin CSS nuevo. - Integración: detección por sentencia inicial, validación en vivo ligera (balance de paréntesis y comillas), descarga .sql, avisos claros en conversiones que no aplican (XML⇄JSON, CSV, árbol).⚠️ Presupuesto v2.x agotado: ~2474 líneas / ~97KB (límites ~2500/100KB). La línea v2.x pasa a modo solo-bugfixes; documentado en ROADMAP, SCOPE y CLAUDE.md. Tests: 14 nuevos — 106/106 pasando. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Resumen
Petición directa del mantenedor: opción para formatear SQL. Evaluada con el Test de 4 Preguntas (3/4, con alcance acotado) e implementada como formateador básico — explícitamente NO un parser SQL completo (eso serían miles de líneas, tipo
sql-formatter).🗄️ Formateo SQL
formatSQL()sobre un tokenizer propio que respeta strings ('O''Brien'), identificadores citados ("" `` []) y comentarios (--,/* */):LEFT JOIN),ON/AND/OR/WHENcon sangría extraBETWEEN x AND yno se rompe (caso especial)COUNT(id)), cláusulas con espacio (IN (1, 2))Ejemplo real verificado en la UI:
📦 Minificado SQL
Una línea con espacios mínimos. Detalle importante: los comentarios
--se convierten a/* */(en una sola línea comentarían todo lo que sigue). La opción "Quitar comentarios" existente también aplica.🎨 Resaltado SQL
Keywords
.tag, strings.value, números.attr, comentarios.comment— reutiliza los colores de los 5 temas sin una línea de CSS nueva.🔌 Integración
.sqly MIME correctoCon v2.10 el archivo queda en ~2474 líneas / ~97KB — al filo de los límites (~2500 / 100KB duro). La línea v2.x pasa a modo solo-bugfixes; cualquier feature nueva requiere decisión explícita del mantenedor sobre los límites. Documentado en ROADMAP.md, SCOPE.md y CLAUDE.md.
Tests
14 nuevos: 7 de
formatSQL(cláusulas, subconsultas, mayúsculas opcionales, strings con keywords dentro, BETWEEN, comentarios, funciones vs cláusulas), 2 deminifySQL, 1 dehighlightSQL, 1 de detecciónisSQL, y 3 de UI (formatear con resaltado + validación viva, paréntesis desbalanceados, minificar). 106/106 pasando.🤖 Generated with Claude Code