- Streamlined CI validation to run the combined validation workflow once before packaging the VSIX.
- Added explicit Prettier formatting, ESLint linting and TypeScript typecheck scripts to the project validation workflow.
- Isolated loose legacy metadata-header aliases, candidate parsing and migration logic into focused internal modules.
- Extracted formatter indentation handling into a dedicated indentation engine while preserving existing formatter output.
- Documented the internal formatter pipeline design, pass order and rules for adding future formatter passes.
- Organized formatter regression tests into topic-based suites under
test/formatter/while keeping the existing formatter test command as the entry point. - Split metadata-header parsing, rendering, history synchronization and placement helpers into dedicated internal modules without changing generated metadata behavior.
- Debounced SQL diagnostics on document changes and reused formatter safety limits to skip expensive metadata diagnostics for very large SQL documents.
- Centralized formatter options, indentation settings, cancellation checks and safety decisions in a shared formatting context.
- Grouped formatter passes into structural and cleanup phases to clarify rule ownership without changing formatter behavior.
- Refactored Watcom formatter expansion passes behind an explicit internal pipeline while preserving existing formatter output.
- Fixed Watcom DDL/list parenthesis cleanup so temporary-table closing parentheses align with the declaration and safe trailing DDL commas before
)are removed. - Fixed Watcom statement continuation cleanup for multiline
UPDATE ... SETassignments, compactSELECTcomma spacing and arithmetic operator spacing outside strings/comments. - Fixed split Watcom
ORDER BY IF ... ENDIFexpression continuations so following sort keys keep their comma separator. - Fixed Watcom
ELSEIFindentation so branch conditions do not add an extra block level beforeTHEN. - Fixed Watcom continuation indentation for multiline
SELECT/INTO/ORDER BYlists and predicate function arguments. - Fixed split Watcom
IF ... THEN ... ELSE ... ENDIFexpressions so formatter output keeps them expression-style instead of treatingTHEN/END IFas procedural block indentation. - Fixed Watcom formatter indentation state when one physical line contains multiple block openings or endings, so same-line
BEGIN ... ENDand compact nestedIF ... END IFstatements do not leak indentation. - Fixed Watcom formatter indentation after stacked block endings such as
END IF END IF;andEND IF END IF END FOR;. - Added formatter safety guards for very large Watcom SQL documents and very long physical lines, with cancellation checks and output-channel notes when expensive rewrite passes are skipped.
- Added Watcom
EXCEPTION/WHEN ... THENhandler formatting with stable indentation while preservingON EXCEPTION RESUMEand exception declarations. - Added syntax highlighting for quoted Watcom built-in function calls such as
"isnull"(...),"string"(...),"date"(...),"substr"(...)and"xmlelement"(...). - Added Watcom
CASE WHEN THEN ELSE ENDexpression formatting with stable indentation and nested CASE support. - Added Watcom cursor
FOR ... CURSOR FOR ... DO ... END FORformatting with stable query/body indentation. - Added Watcom query-clause formatting for top-level
SELECT,FROM,WHERE,JOIN,ON,GROUP BY,HAVINGandORDER BYclauses, including logical predicate continuations. - Fixed Watcom formatter handling for expression-style
IF ... THEN ... ELSE ... ENDIFconstructs so they are not rewritten as procedural IF blocks. - Added SQL formatter normalization that keeps
UNION ALLon its own physical line. - Fixed Watcom formatter indentation after compact inline
IF ... THEN ... END IFstatements by expanding them into stable block form. - Added Watcom parenthesis formatting for parameters and nested calls outside strings/comments, with indentation for multiline argument lists.
- Added dedicated syntax scopes for generated metadata headers, including markers, fields, values, dates, TODO placeholders, update authors and history entries.
- Added normalization of loose legacy metadata-style comment headers to the current SQLovely metadata format.
- Added metadata-header processing for every detected procedure, function and trigger in multi-object SQL scripts.
- Added version/history synchronization so
Versionmatches the latest history entry and invalid version jumps are coerced to one-step bumps. - Added multiline metadata descriptions with automatic wrapping to the configured line-length limit while preserving manual line breaks.
- Added
Updated Bymetadata support, including migration from legacy updated-by aliases such asgeändert von,geändert durchandgeupdated von. - Normalized metadata date values and history dates to
YYYY-MM-DD, including common day-first and year-first separators plus two-digit legacy years with a documented pivot rule. - Expanded metadata regression coverage for legacy headers, multiline descriptions, date normalization, version synchronization and multi-object scripts.
- Consolidated developer documentation into
docs/DEVELOPMENT.mdanddocs/SQL_IMPLEMENTATION.md. - Added SQLovely: Format SQL Files in Directory to recursively format
.sqlfiles in a selected directory. - Directory formatting runs without SQLovely Extras by default for safer batch formatting.
- Documented directory SQL formatting command usage.
- Changed generated metadata headers to the compact pre-
BEGIN-- METADATAlayout. - Metadata headers are now inserted directly before the detected routine
BEGINline instead of at the top of the file. - Existing legacy SQLovely metadata headers are migrated to the current pre-
BEGINlayout. - Added formatter settings for 2-space indentation defaults:
sqlovely.format.indentSizeandsqlovely.format.insertSpaces. - Updated docs, examples and tests for the pre-
BEGINmetadata header layout.
- Added
sqlovely.extras.applyWithFormatting, enabled by default. - SQLovely formatting can now apply enabled SQLovely Extras such as metadata-header insertion or updates.
- Updated documentation and example workspace settings for the new formatting/extras behavior.
- Renamed optional file-updating features to SQLovely Extras.
- Removed internal rollout/checklist documentation from the public docs.
- Updated settings, commands, examples and validation tests to use the
sqlovely.extras.*namespace. - Reworded public documentation to be suitable for an open source project.
- Added MIT licensing and public repository metadata.
- Expanded SQLovely grammar coverage for common SQL, Watcom SQL and rudimentary MSSQL syntax.
- Added a SQL coverage matrix for public project review.
- Added GitHub Actions validation workflow.
- Added public package metadata to the extension manifest.
- Reworked the SQLovely grammar with broader SQL and Watcom SQL highlighting coverage.
- Removed stale attribution markers and source-map output from packaged builds.
- Simplified project documentation and removed process-oriented notes.
- Simplified package contents for local distribution.
- Added a SQLovely-owned TextMate grammar.
- Added syntax grammar documentation.
- Added SQL language registration for
.sqlfiles. - Added Watcom as the default dialect and MSSQL as a small secondary dialect surface.
- Added conservative formatting, metadata headers, diagnostics, quick fixes and VSIX packaging.