verso-v1.0.21
·
89 commits
to main
since this release
Release adding a "New Notebook" command so you can start a Verso scratchpad from the command palette without first creating a file on disk, much smarter SQL parameter handling that stops flagging false positives and now understands Oracle's :name bind syntax, better Jupyter and Polyglot import that brings per-cell SQL kernels and connection setup across cleanly, automatic Oracle provider resolution where the package and assembly names differ, import that now runs every code-bearing cell type rather than only plain code, and a new Mermaid diagrams guide.
Thanks to @fluentfoundation for sponsoring and supporting this project.
New: "New Notebook" Command and Scratch Notebooks
- A
Verso: New Notebookcommand palette entry opens a blank notebook instantly, without first creating and saving a.versofile in a folder - New notebooks are backed by a temporary scratch file so they behave like an untitled document; the first save prompts for a real location and the editor rebinds to the kept file
- If a scratch notebook is closed without keeping it, its temporary file is cleaned up; choosing "Don't Save" on an edited scratch also removes it
- Save and Save As always write to the location you choose rather than silently leaving the notebook in the temp directory
Improved: SQL Parameter Detection
- Parameter detection was rewritten as a single-pass scanner that ignores anything inside comments and string literals, so those no longer produce spurious binding warnings
- A local-scope analyzer recognizes parameters that are declared locally (for example via
DECLARE) and excludes them from "unresolved parameter" warnings - Locally declared variables no longer spill across statement boundaries when a semicolon is omitted, so kernel and
@@globalreferences in a following statement are not mistaken for locals - Comprehensive unit tests cover the dialect resolver, scanner, local-scope analyzer, and the kernel's diagnostics and execution paths
New: Oracle and Dialect-Specific Parameter Syntax
- SQL parameter handling is now dialect-aware: Oracle uses the
:namebind prefix while other providers continue to use@name - Non-bind uses of a colon are correctly ignored, including
:=assignment, positional binds like:1, the::cast operator, and trigger pseudo-records such as:newand:old - Oracle named binds are enabled automatically so
:nameparameters resolve correctly at execution time - Diagnostics, parameter names, and warnings all use the active dialect's prefix; documentation and tests were expanded to cover Oracle and other dialect edge cases
Improved: Jupyter and Polyglot SQL Import
- Importing a Jupyter or Polyglot notebook now reads each cell's kernel, so per-cell languages are resolved correctly instead of assuming a single notebook-wide language
- Polyglot SQL cells are converted to native Verso SQL cells, and
#!connectlines are translated into#!sql-connect(including--create-dbcontexthandling) - Polyglot
#r "nuget:"provider references are rewritten to the matching ADO provider packages and de-duplicated so a connection's provider is added only once - CLI conversions now run the same import transforms as the editor, so
verso convertproduces the same result
Improved: Automatic Oracle Provider Resolution
- Provider invariant names are now mapped to their NuGet package id and assembly name for cases where the two differ, most notably Oracle
- Provider DLLs are located by assembly name while the NuGet resolver is invoked with the package id, so connecting to Oracle works without manual package wrangling
- The database connectivity guide explains the package and assembly differences and the automatic resolution
Improved: Import Executes All Code-Bearing Cells
- Importing a notebook now runs every cell that carries source (anything other than markdown or raw), so SQL, Python, and other non-
codecells execute on import with their language preserved - The import summary reports the number of executed cells
New: Mermaid Diagrams Guide
- A new guide documents native Mermaid cell support: creating Mermaid cells, the supported diagram types,
@variablesubstitution, and theming options, including following the active Verso theme - The README links to the guide from the Rich Content Cells section