Skip to content

Add SQL parameter scanning and local-scope analysis#61

Merged
TorreyBetts merged 2 commits into
mainfrom
feature/sql-variables-update
May 27, 2026
Merged

Add SQL parameter scanning and local-scope analysis#61
TorreyBetts merged 2 commits into
mainfrom
feature/sql-variables-update

Conversation

@TorreyBetts
Copy link
Copy Markdown
Contributor

Introduce dialect-aware parameter scanning and local-scope detection to avoid spurious binding warnings and to ignore parameters inside comments/strings. Added internal helpers: ParameterReference, SqlDialect enum, SqlDialectResolver, SqlParameterScanner, and SqlLocalScopeAnalyzer. Updated SqlKernel to resolve dialects, use the scanner/analyzer for both binding and diagnostics (BindParameters now accepts dialect), and adjust diagnostic offsets when directive headers are present. Removed the previous regex-based detection and ad-hoc string-literal check in favor of the new single-pass scanner and local-name analysis. Added comprehensive unit tests for resolver, scanner, local-scope analyzer and updated kernel diagnostic/execution tests.

Introduce dialect-aware parameter scanning and local-scope detection to avoid spurious binding warnings and to ignore parameters inside comments/strings. Added internal helpers: ParameterReference, SqlDialect enum, SqlDialectResolver, SqlParameterScanner, and SqlLocalScopeAnalyzer. Updated SqlKernel to resolve dialects, use the scanner/analyzer for both binding and diagnostics (BindParameters now accepts dialect), and adjust diagnostic offsets when directive headers are present. Removed the previous regex-based detection and ad-hoc string-literal check in favor of the new single-pass scanner and local-name analysis. Added comprehensive unit tests for resolver, scanner, local-scope analyzer and updated kernel diagnostic/execution tests.
@TorreyBetts TorreyBetts linked an issue May 27, 2026 that may be closed by this pull request
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 27, 2026

Summary

Summary
Generated on: 05/27/2026 - 23:27:24
Coverage date: 05/27/2026 - 23:25:02 - 05/27/2026 - 23:27:16
Parser: MultiReport (28x Cobertura)
Assemblies: 16
Classes: 470
Files: 356
Line coverage: 60.9% (14129 of 23184)
Covered lines: 14129
Uncovered lines: 9055
Coverable lines: 23184
Total lines: 46799
Branch coverage: 52.8% (6590 of 12470)
Covered branches: 6590
Total branches: 12470
Method coverage: Feature is only available for sponsors

Coverage

Verso - 76.6%
Name Line Branch
Verso 76.6% 64.8%
Verso.Contexts.CellRenderContext 68.7%
Verso.Contexts.ExecutionContext 92.3% 50%
Verso.Contexts.MagicCommandContext 83.3% 50%
Verso.Contexts.NotebookMetadataContext 88.8% 50%
Verso.Contexts.SimpleFormatterContext 0% 0%
Verso.Contexts.VariablePreviewService 68% 61.5%
Verso.Contexts.VariableStore 100% 100%
Verso.Contexts.VersoContext 82.3% 42.8%
Verso.Display.DisplayFormatterContext 15.3% 50%
Verso.Display.DisplayHandler 13.5% 0%
Verso.Execution.ExecutionPipeline 93.1% 80.7%
Verso.Execution.ExecutionResult 100%
Verso.Export.ExportOptions 100%
Verso.Export.NotebookHtmlExporter 56.2% 55.7%
Verso.Export.NotebookMarkdownExporter 73.9% 80.2%
Verso.Export.ThemeCssGenerator 100% 88.2%
Verso.Extensions.CellDisplayPropertyProvider 84.3% 47.6%
Verso.Extensions.CellTypes.HtmlCellType 68.7%
Verso.Extensions.CellTypes.MermaidCellType 68.7%
Verso.Extensions.CellTypes.ParametersCellType 100%
Verso.Extensions.CellVisibilityPropertyProvider 80.2% 48.1%
Verso.Extensions.ExtensionHost 85.5% 82.7%
Verso.Extensions.ExtensionLoadContext 38.8% 28.5%
Verso.Extensions.ExtensionLoadException 69.2% 50%
Verso.Extensions.ExtensionValidationError 100%
Verso.Extensions.Formatters.CollectionFormatter 100% 100%
Verso.Extensions.Formatters.ExceptionFormatter 100% 83.3%
Verso.Extensions.Formatters.HtmlFormatter 100%
Verso.Extensions.Formatters.ImageFormatter 92.3% 83.3%
Verso.Extensions.Formatters.ObjectFormatter 100% 100%
Verso.Extensions.Formatters.ObjectTreeRenderer 87.3% 60%
Verso.Extensions.Formatters.PrimitiveFormatter 100% 50%
Verso.Extensions.Formatters.SvgFormatter 100% 100%
Verso.Extensions.Kernels.HtmlKernel 81.2% 76.9%
Verso.Extensions.Kernels.MermaidKernel 84.5% 74.3%
Verso.Extensions.Layouts.ContentFallbackRenderer 7.1%
Verso.Extensions.Layouts.DashboardLayout 86.4% 74.4%
Verso.Extensions.Layouts.NotebookLayout 94.2% 100%
Verso.Extensions.Layouts.PresentationLayout 87.5% 95%
Verso.Extensions.Renderers.HtmlCellRenderer 23% 0%
Verso.Extensions.Renderers.MarkdownRenderer 95% 100%
Verso.Extensions.Renderers.MermaidCellRenderer 23% 0%
Verso.Extensions.Renderers.ParametersCellRenderer 91.1% 69.4%
Verso.Extensions.Themes.VersoDarkTheme 98.9%
Verso.Extensions.Themes.VersoHighContrastTheme 99%
Verso.Extensions.Themes.VersoLightTheme 100%
Verso.Extensions.ToolbarActions.ClearCellOutputAction 85% 66.6%
Verso.Extensions.ToolbarActions.ClearOutputsAction 87.5%
Verso.Extensions.ToolbarActions.ExportHtmlAction 73.6% 30%
Verso.Extensions.ToolbarActions.ExportMarkdownAction 80.7% 50%
Verso.Extensions.ToolbarActions.RestartKernelAction 87.5%
Verso.Extensions.ToolbarActions.RunAllAction 88.2% 100%
Verso.Extensions.ToolbarActions.RunCellAction 88.8% 100%
Verso.Extensions.ToolbarActions.SwitchLayoutAction 34.6% 0%
Verso.Extensions.ToolbarActions.SwitchThemeAction 92.3% 83.3%
Verso.Extensions.Utilities.CellViewStateReader 72.5% 29.3%
Verso.Extensions.Utilities.CellVisibilityResolver 91.8% 87.5%
Verso.Extensions.Utilities.LegacyMetadataMigrator 100% 100%
Verso.Extensions.Utilities.VariableSubstitution 100% 94.4%
Verso.Kernels.CSharpKernel 72.8% 57.5%
Verso.Kernels.CSharpKernelOptions 100%
Verso.Kernels.NuGetPackageResolver 12.9% 9%
Verso.Kernels.NuGetResolveResult 0%
Verso.Kernels.NuGetRuntimeResolver 0% 0%
Verso.Kernels.NuGetSourceRegistry 0% 0%
Verso.Kernels.RoslynWorkspaceManager 81.2% 73%
Verso.Kernels.ScriptGlobals 100% 50%
Verso.Kernels.ScriptStateManager 77.4% 66.6%
Verso.LayoutManager 91% 73.8%
Verso.MagicCommands.AboutMagicCommand 86.2% 37.5%
Verso.MagicCommands.ExtensionMagicCommand 10.3% 12.5%
Verso.MagicCommands.ImportMagicCommand 89.2% 88.5%
Verso.MagicCommands.MagicCommandParser 90.4% 88.8%
Verso.MagicCommands.NuGetMagicCommand 38.8% 6.2%
Verso.MagicCommands.RestartMagicCommand 100% 100%
Verso.MagicCommands.TimeMagicCommand 92.3% 100%
Verso.NotebookOperations 78.3% 57.8%
Verso.Parameters.ParameterValueParser 100% 100%
Verso.Scaffold 90.6% 76.4%
Verso.Serializers.DibSerializer 96.8% 96.9%
Verso.Serializers.JupyterPolyglotPostProcessor 97.5% 94.8%
Verso.Serializers.JupyterSerializer 90% 67.4%
Verso.Serializers.VersoSerializer 95.2% 78.6%
Verso.SettingsManager 100% 82.5%
Verso.Stubs.StubExtensionHostContext 72.2% 75%
Verso.Stubs.StubNotebookOperations 0%
Verso.Stubs.StubThemeContext 100% 100%
Verso.ThemeEngine 95.9% 79.5%
Verso.Abstractions - 84.7%
Name Line Branch
Verso.Abstractions 84.7% 40%
Verso.Abstractions.CellContainerInfo 100%
Verso.Abstractions.CellInteractionContext 100%
Verso.Abstractions.CellModel 100%
Verso.Abstractions.CellOutput 44.4%
Verso.Abstractions.Completion 100%
Verso.Abstractions.Diagnostic 100%
Verso.Abstractions.DisplayContext 81.8% 50%
Verso.Abstractions.DisplayExtensions 0% 0%
Verso.Abstractions.ExtensionConsentInfo 0%
Verso.Abstractions.ExtensionInfo 100%
Verso.Abstractions.FontDescriptor 100%
Verso.Abstractions.HoverInfo 100%
Verso.Abstractions.ICellRenderer 50%
Verso.Abstractions.IExecutionContext 0%
Verso.Abstractions.IExtensionHostContext 50%
Verso.Abstractions.ILayoutEngine 100%
Verso.Abstractions.INotebookMetadata 0%
Verso.Abstractions.IVersoContext 33.3%
Verso.Abstractions.LayoutCapabilityException 0%
Verso.Abstractions.NotebookModel 100%
Verso.Abstractions.NotebookParameterDefinition 100%
Verso.Abstractions.ParameterDefinition 100%
Verso.Abstractions.PropertyField 100%
Verso.Abstractions.PropertyFieldOption 100%
Verso.Abstractions.PropertySection 100%
Verso.Abstractions.RenderResult 100%
Verso.Abstractions.SettingConstraints 100%
Verso.Abstractions.SettingDefinition 100%
Verso.Abstractions.SyntaxColorMap 100% 100%
Verso.Abstractions.ThemeColorTokens 100%
Verso.Abstractions.ThemeSpacing 100%
Verso.Abstractions.ThemeTypography 100%
Verso.Abstractions.VariableDescriptor 100%
Verso.Abstractions.VariableExplorerEntry 0%
Verso.Ado - 83.4%
Name Line Branch
Verso.Ado 83.4% 79.7%
Verso.Ado.CellType.SqlCellRenderer 76% 100%
Verso.Ado.CellType.SqlCellType 100%
Verso.Ado.Formatters.ResultSetFormatter 97.1% 85.7%
Verso.Ado.Helpers.ArgumentParser 100% 100%
Verso.Ado.Helpers.ConnectionResolver 69.2% 71.4%
Verso.Ado.Helpers.DbTypeMapper 100%
Verso.Ado.Helpers.ParameterReference 100%
Verso.Ado.Helpers.PlaceholderResolver 98.3% 91.6%
Verso.Ado.Helpers.ProviderDiscovery 47.6% 36.2%
Verso.Ado.Helpers.SqlClrTypeMapper 97.9% 77.5%
Verso.Ado.Helpers.SqlDialectResolver 100% 100%
Verso.Ado.Helpers.SqlLocalScopeAnalyzer 81.3% 80.8%
Verso.Ado.Helpers.SqlParameterScanner 100% 96.2%
Verso.Ado.Helpers.SqlStatementSplitter 95% 95%
Verso.Ado.Import.JupyterSqlImportHook 100% 100%
Verso.Ado.Kernel.ColumnInfo 100%
Verso.Ado.Kernel.ForeignKeyInfo 100%
Verso.Ado.Kernel.SchemaCache 69.6% 55.1%
Verso.Ado.Kernel.SchemaCacheEntry 100%
Verso.Ado.Kernel.SqlKernel 91.9% 88.2%
Verso.Ado.Kernel.TableInfo 100%
Verso.Ado.MagicCommands.SqlConnectMagicCommand 74.7% 64.8%
Verso.Ado.MagicCommands.SqlDisconnectMagicCommand 95.6% 100%
Verso.Ado.MagicCommands.SqlScaffoldMagicCommand 30.2% 22.5%
Verso.Ado.MagicCommands.SqlSchemaMagicCommand 91.5% 84.3%
Verso.Ado.Models.SqlColumnMetadata 100%
Verso.Ado.Models.SqlConnectionInfo 80%
Verso.Ado.Models.SqlDirectives 100% 100%
Verso.Ado.Models.SqlResultSet 100%
Verso.Ado.Scaffold.EfCorePrerequisiteChecker 100% 100%
Verso.Ado.Scaffold.EfCoreScaffolder 94% 87%
Verso.Ado.Scaffold.MagicCommandExecutionContext 0%
Verso.Ado.Scaffold.NamingConventions 96.7% 94.2%
Verso.Ado.Scaffold.ScaffoldResult 100%
Verso.Ado.SqlAdoExtension 0%
Verso.Ado.ToolbarActions.ExportCsvAction 84.9% 94.1%
Verso.Ado.ToolbarActions.ExportJsonAction 88% 93.7%
Verso.Blazor - 18.9%
Name Line Branch
Verso.Blazor 18.9% 15%
Program 0% 0%
Verso.Blazor.Components.App 0% 0%
Verso.Blazor.Components.Layout.MainLayout 0%
Verso.Blazor.Components.NotebookInputDialog 66.6% 60%
Verso.Blazor.Components.Pages.NotebookPage 19.2% 21.5%
Verso.Blazor.Services.BlazorCellRenderContext 0% 0%
Verso.Blazor.Services.BlazorToolbarActionContext 0% 0%
Verso.Blazor.Services.NotebookService 0% 0%
Verso.Blazor.Services.NotebookServiceOptions 50%
Verso.Blazor.Services.ServerInputRequest 100%
Verso.Blazor.Services.ServerNotebookService 26.3% 16.1%
Verso.Blazor.Shared - 45.2%
Name Line Branch
Verso.Blazor.Shared 45.2% 43.1%
Verso.Blazor.Shared.Components.Editor.MonacoEditor 58.3% 57.1%
Verso.Blazor.Shared.Components.Notebook.Cell 24.1% 27.9%
Verso.Blazor.Shared.Components.Notebook.CellPropertiesPanel 65.4% 80%
Verso.Blazor.Shared.Components.Notebook.DashboardCell 56.6% 50%
Verso.Blazor.Shared.Components.Notebook.DashboardGrid 42.8% 100%
Verso.Blazor.Shared.Components.Notebook.ExtensionConsentDialog 0% 0%
Verso.Blazor.Shared.Components.Notebook.ExtensionPanel 86.8% 80.9%
Verso.Blazor.Shared.Components.Notebook.MetadataPanel 60% 44.4%
Verso.Blazor.Shared.Components.Notebook.PresentationView 0% 0%
Verso.Blazor.Shared.Components.Notebook.PropertyFieldComponent 46.7% 41.5%
Verso.Blazor.Shared.Components.Notebook.PropertySectionComponent 100% 100%
Verso.Blazor.Shared.Components.Notebook.SettingsPanel 74.5% 63.1%
Verso.Blazor.Shared.Components.Notebook.Toolbar 31.1% 37.8%
Verso.Blazor.Shared.Components.Notebook.VariableExplorer 62.2% 83.3%
Verso.Blazor.Shared.Components.ThemeProvider 100% 81.5%
Verso.Blazor.Shared.Models.CellTypeInfo 100%
Verso.Blazor.Shared.Models.CompletionItemDto 0%
Verso.Blazor.Shared.Models.CompletionsResultDto 0%
Verso.Blazor.Shared.Models.ExecutionResultDto 60%
Verso.Blazor.Shared.Models.ExtensionSettingsGroup 100%
Verso.Blazor.Shared.Models.HeadingDetector 13.7% 6.8%
Verso.Blazor.Shared.Models.HoverRangeDto 0%
Verso.Blazor.Shared.Models.HoverResultDto 0%
Verso.Blazor.Shared.Models.KernelLanguageInfo 100%
Verso.Blazor.Shared.Models.LayoutInfo 75%
Verso.Blazor.Shared.Models.PanelDisplayNames 100% 100%
Verso.Blazor.Shared.Models.PropertySectionResult 100%
Verso.Blazor.Shared.Models.ThemeData 100%
Verso.Blazor.Shared.Models.ThemeInfo 100%
Verso.Blazor.Shared.Models.ToolbarActionInfo 0%
Verso.Blazor.Shared.Models.VariableEntryDto 100%
Verso.Blazor.Shared.Models.VariableInspectResultDto 60%
Verso.Cli - 38.6%
Name Line Branch
Verso.Cli 38.6% 40%
Program 0%
System.Text.RegularExpressions.Generated.HtmlTagRegex_0 100%
Verso.Cli.Commands.ConvertCommand 55.3% 100%
Verso.Cli.Commands.ExportCommand 0% 0%
Verso.Cli.Commands.InfoCommand 8.8% 0%
Verso.Cli.Commands.ReplCommand 17% 0%
Verso.Cli.Commands.RunCommand 56%
Verso.Cli.Commands.ServeCommand 53.8%
Verso.Cli.Execution.CliToolbarActionContext 0% 0%
Verso.Cli.Execution.HeadlessRunner 81.3% 72.4%
Verso.Cli.Execution.JsonCellOutput 100%
Verso.Cli.Execution.JsonMimeOutput 100%
Verso.Cli.Execution.JsonOutputDocument 100%
Verso.Cli.Execution.JsonOutputWriter 89.2% 77.2%
Verso.Cli.Execution.JsonSummary 100%
Verso.Cli.Execution.OutputRenderer 92% 90.5%
Verso.Cli.Execution.RunOptions 90.9%
Verso.Cli.Execution.RunResult 100%
Verso.Cli.Execution.ToolbarActionResolver 46.5% 38.8%
Verso.Cli.Hosting.BlazorHostBuilder 0% 0%
Verso.Cli.Hosting.ServeOptions 0%
Verso.Cli.Parameters.ParameterResolutionResult 100%
Verso.Cli.Parameters.ParameterResolver 92.7% 87.2%
Verso.Cli.Parameters.ParameterTypeParser 50%
Verso.Cli.Repl.Meta.Commands.ClearMeta 14.2%
Verso.Cli.Repl.Meta.Commands.ConvertMeta 0% 0%
Verso.Cli.Repl.Meta.Commands.ExitMeta 20% 0%
Verso.Cli.Repl.Meta.Commands.ExportMeta 0% 0%
Verso.Cli.Repl.Meta.Commands.HelpMeta 4.5% 0%
Verso.Cli.Repl.Meta.Commands.HistoryMeta 0% 0%
Verso.Cli.Repl.Meta.Commands.KernelMeta 0% 0%
Verso.Cli.Repl.Meta.Commands.LayoutMeta 0% 0%
Verso.Cli.Repl.Meta.Commands.ListMeta 0% 0%
Verso.Cli.Repl.Meta.Commands.LoadMeta 0% 0%
Verso.Cli.Repl.Meta.Commands.MdMeta 0%
Verso.Cli.Repl.Meta.Commands.RecallMeta 0% 0%
Verso.Cli.Repl.Meta.Commands.RerunMeta 0% 0%
Verso.Cli.Repl.Meta.Commands.ResetMeta 0%
Verso.Cli.Repl.Meta.Commands.SaveMeta 57.8% 85.7%
Verso.Cli.Repl.Meta.Commands.SetMeta 0% 0%
Verso.Cli.Repl.Meta.Commands.ThemeMeta 0% 0%
Verso.Cli.Repl.Meta.Commands.VarsMeta 0% 0%
Verso.Cli.Repl.Meta.Commands.ViewMeta 0% 0%
Verso.Cli.Repl.Meta.IMetaCommand 100%
Verso.Cli.Repl.Meta.MetaCommandRegistry 100% 83.3%
Verso.Cli.Repl.Meta.MetaContext 75% 50%
Verso.Cli.Repl.Prompt.HistoryStore 83.3% 75%
Verso.Cli.Repl.Prompt.KernelPromptCallbacks 11.2% 17.9%
Verso.Cli.Repl.Prompt.MinimalHighlighter 57.4% 52.9%
Verso.Cli.Repl.Prompt.PlainPromptDriver 87.5% 92.3%
Verso.Cli.Repl.Prompt.PrettyPromptDriver 0% 0%
Verso.Cli.Repl.Prompt.ReplInput 100%
Verso.Cli.Repl.Prompt.TerminalCapabilities 18.1% 14.2%
Verso.Cli.Repl.Rendering.MimeDispatcher 85.1% 72.9%
Verso.Cli.Repl.Rendering.Renderers.CsvTableRenderer 86% 63.6%
Verso.Cli.Repl.Rendering.Renderers.HtmlStripRenderer 100% 50%
Verso.Cli.Repl.Rendering.Renderers.ImagePlaceholderRenderer 50% 19.2%
Verso.Cli.Repl.Rendering.Renderers.JsonRenderer 0% 0%
Verso.Cli.Repl.Rendering.Renderers.MarkdownRenderer 91.6% 77.7%
Verso.Cli.Repl.Rendering.Renderers.PlainTextRenderer 100% 50%
Verso.Cli.Repl.Rendering.TerminalRenderer 64.1% 45.3%
Verso.Cli.Repl.Rendering.TruncationPolicy 100% 83.3%
Verso.Cli.Repl.ReplLoop 0% 0%
Verso.Cli.Repl.ReplOptions 0%
Verso.Cli.Repl.ReplSession 69.2% 70%
Verso.Cli.Repl.Settings.ReplSettings 100%
Verso.Cli.Repl.Settings.ReplSettingsLoader 71% 75%
Verso.Cli.Repl.Signals.SignalHandler 48.3% 25%
Verso.Cli.Utilities.BrowserLauncher 0% 0%
Verso.Cli.Utilities.SerializerNotFoundException 100%
Verso.Cli.Utilities.SerializerResolver 100% 100%
Verso.FSharp - 82.6%
Name Line Branch
Verso.FSharp 82.6% 70.4%
Verso.FSharp.Formatters.FSharpDataFormatter 83.1% 68.7%
Verso.FSharp.FSharpExtension 100%
Verso.FSharp.Helpers.DiagnosticMapper 95.6% 78.5%
Verso.FSharp.Helpers.FSharpValueFormatter 23.2% 33.3%
Verso.FSharp.Helpers.GlyphMapper 95.6% 97.7%
Verso.FSharp.Import.JupyterFSharpPostProcessor 91.1% 75%
Verso.FSharp.Kernel.FSharpCheckerManager 97.8% 66.6%
Verso.FSharp.Kernel.FSharpKernel 81.3% 69.4%
Verso.FSharp.Kernel.FSharpKernelOptions 100%
Verso.FSharp.Kernel.FSharpProjectContext 100% 100%
Verso.FSharp.Kernel.FsiSessionManager 89.5% 67.7%
Verso.FSharp.Kernel.VariableBridge 80.5% 76.1%
Verso.FSharp.NuGet.FSharpNuGetResolveResult 100%
Verso.FSharp.NuGet.NuGetFallbackResolver 75.3% 62.3%
Verso.FSharp.NuGet.NuGetProcessResult 100%
Verso.FSharp.NuGet.NuGetReferenceProcessor 82.4% 81.2%
Verso.FSharp.NuGet.ScriptDirectiveProcessor 89.3% 79.1%
Verso.Host - 29.3%
Name Line Branch
Verso.Host 29.3% 25.5%
Program 0% 0%
Verso.Host.Dto.CellAddParams 100%
Verso.Host.Dto.CellChangeLanguageParams 0%
Verso.Host.Dto.CellChangeTypeParams 0%
Verso.Host.Dto.CellDto 100%
Verso.Host.Dto.CellGetParams 100%
Verso.Host.Dto.CellInsertParams 100%
Verso.Host.Dto.CellInteractParams 100%
Verso.Host.Dto.CellInteractResult 100%
Verso.Host.Dto.CellMoveParams 100%
Verso.Host.Dto.CellOutputDto 0%
Verso.Host.Dto.CellRemoveParams 100%
Verso.Host.Dto.CellTypeDto 0%
Verso.Host.Dto.CellTypesResult 0%
Verso.Host.Dto.CellUpdateSourceParams 100%
Verso.Host.Dto.CompletionDto 0%
Verso.Host.Dto.CompletionsParams 0%
Verso.Host.Dto.CompletionsResult 0%
Verso.Host.Dto.DiagnosticDto 0%
Verso.Host.Dto.DiagnosticsParams 0%
Verso.Host.Dto.DiagnosticsResult 0%
Verso.Host.Dto.ExecutionResultDto 0%
Verso.Host.Dto.ExecutionRunParams 0%
Verso.Host.Dto.ExecutionStateNotification 0%
Verso.Host.Dto.ExtensionInfoDto 100%
Verso.Host.Dto.ExtensionListResult 100%
Verso.Host.Dto.ExtensionSettingsDto 0%
Verso.Host.Dto.ExtensionToggleParams 100%
Verso.Host.Dto.FontDto 0%
Verso.Host.Dto.HoverParams 0%
Verso.Host.Dto.HoverResult 0%
Verso.Host.Dto.KernelRestartParams 0%
Verso.Host.Dto.LanguageDto 100%
Verso.Host.Dto.LanguagesResult 100%
Verso.Host.Dto.LayoutDto 0%
Verso.Host.Dto.LayoutGetCellContainerParams 0%
Verso.Host.Dto.LayoutGetCellContainerResult 0%
Verso.Host.Dto.LayoutRenderResult 0%
Verso.Host.Dto.LayoutSetEditModeParams 0%
Verso.Host.Dto.LayoutsResult 0%
Verso.Host.Dto.LayoutSwitchParams 0%
Verso.Host.Dto.LayoutUpdateCellParams 0%
Verso.Host.Dto.NotebookCloseParams 100%
Verso.Host.Dto.NotebookOpenParams 100%
Verso.Host.Dto.NotebookOpenResult 100%
Verso.Host.Dto.NotebookSaveResult 100%
Verso.Host.Dto.NotebookSetDefaultKernelParams 0%
Verso.Host.Dto.NotebookSetFilePathParams 0%
Verso.Host.Dto.ParameterAddParams 0%
Verso.Host.Dto.ParameterDefDto 0%
Verso.Host.Dto.ParameterListResult 0%
Verso.Host.Dto.ParameterRemoveParams 0%
Verso.Host.Dto.ParameterUpdateParams 0%
Verso.Host.Dto.PropertiesGetSectionsParams 100%
Verso.Host.Dto.PropertiesGetSectionsResult 100%
Verso.Host.Dto.PropertiesGetSupportedResult 100%
Verso.Host.Dto.PropertiesUpdatePropertyParams 100%
Verso.Host.Dto.PropertyFieldDto 100%
Verso.Host.Dto.PropertyFieldOptionDto 100%
Verso.Host.Dto.PropertySectionDto 100%
Verso.Host.Dto.PropertySectionResultDto 100%
Verso.Host.Dto.RangeDto 0%
Verso.Host.Dto.SettingConstraintsDto 0%
Verso.Host.Dto.SettingDefinitionDto 0%
Verso.Host.Dto.SettingsGetDefinitionsResult 0%
Verso.Host.Dto.SettingsGetParams 0%
Verso.Host.Dto.SettingsGetResult 0%
Verso.Host.Dto.SettingsResetParams 0%
Verso.Host.Dto.SettingsUpdateParams 0%
Verso.Host.Dto.ThemeListItemDto 0%
Verso.Host.Dto.ThemeResult 0%
Verso.Host.Dto.ThemeSpacingDto 0%
Verso.Host.Dto.ThemesResult 0%
Verso.Host.Dto.ThemeTypographyDto 0%
Verso.Host.Dto.ToolbarActionDto 0%
Verso.Host.Dto.ToolbarActionsResult 0%
Verso.Host.Dto.ToolbarExecuteParams 0%
Verso.Host.Dto.ToolbarGetEnabledStatesParams 0%
Verso.Host.Dto.ToolbarGetEnabledStatesResult 0%
Verso.Host.Dto.VariableEntryDto 100%
Verso.Host.Dto.VariableInspectParams 0%
Verso.Host.Dto.VariableInspectResult 0%
Verso.Host.Dto.VariableListResult 100%
Verso.Host.Handlers.CellHandler 39.6% 24%
Verso.Host.Handlers.ExecutionHandler 2.1% 0%
Verso.Host.Handlers.ExtensionHandler 79.1% 25%
Verso.Host.Handlers.InteractionHandler 95.8% 70%
Verso.Host.Handlers.KernelHandler 0% 0%
Verso.Host.Handlers.LayoutHandler 0% 0%
Verso.Host.Handlers.NotebookHandler 56.2% 51.9%
Verso.Host.Handlers.OutputHandler 100%
Verso.Host.Handlers.ParameterHandler 0% 0%
Verso.Host.Handlers.PropertiesHandler 74.6% 57.6%
Verso.Host.Handlers.SettingsHandler 0% 0%
Verso.Host.Handlers.ThemeHandler 0% 0%
Verso.Host.Handlers.ToolbarHandler 0% 0%
Verso.Host.Handlers.VariableHandler 33.3% 15%
Verso.Host.HostSession 33.3% 34.1%
Verso.Host.NotebookSession 38.9% 16.6%
Verso.Host.Protocol.JsonRpcMessage 98% 91.6%
Verso.Http - 75.7%
Name Line Branch
Verso.Http 75.7% 62.7%
Verso.Http.CellType.HttpCellRenderer 35.7%
Verso.Http.CellType.HttpCellType 100%
Verso.Http.Formatting.HttpResponseFormatter 89.6% 72.5%
Verso.Http.Kernel.HttpKernel 55.5% 46.2%
Verso.Http.MagicCommands.HttpSetBaseMagicCommand 100% 100%
Verso.Http.MagicCommands.HttpSetHeaderMagicCommand 88.5% 83.3%
Verso.Http.MagicCommands.HttpSetTimeoutMagicCommand 100% 100%
Verso.Http.Models.HttpRequestBlock 100%
Verso.Http.Models.HttpResponseData 100%
Verso.Http.Models.ParsedVariable 100%
Verso.Http.Parsing.HttpRequestParser 98.2% 98.4%
Verso.Http.Parsing.HttpResponseReference 85.1% 83.3%
Verso.Http.Parsing.HttpVariableResolver 64.5% 35.2%
Verso.JavaScript - 43.9%
Name Line Branch
Verso.JavaScript 43.9% 38.9%
Verso.JavaScript.Kernel.IJavaScriptRunner 0%
Verso.JavaScript.Kernel.JavaScriptDisplayOutput 0%
Verso.JavaScript.Kernel.JavaScriptEngineManager 34.8% 30%
Verso.JavaScript.Kernel.JavaScriptKernel 77.6% 70.6%
Verso.JavaScript.Kernel.JavaScriptKernelOptions 100%
Verso.JavaScript.Kernel.JavaScriptRunResult 100%
Verso.JavaScript.Kernel.JintConsoleShim 100% 66.6%
Verso.JavaScript.Kernel.JintRunner 84.8% 79%
Verso.JavaScript.Kernel.NodeDetectionResult 100%
Verso.JavaScript.Kernel.NodeProcessRunner 0% 0%
Verso.JavaScript.Kernel.TranspileResult 0% 0%
Verso.JavaScript.Kernel.TypeScriptKernel 20% 6%
Verso.JavaScript.Kernel.VariableBridge 84.4% 81.8%
Verso.JavaScript.MagicCommands.NpmMagicCommand 68% 40%
Verso.JavaScript.MagicCommands.NpmManager 0% 0%
Verso.PowerShell - 65.3%
Name Line Branch
Verso.PowerShell 65.3% 51.9%
System.Text.RegularExpressions.Generated.AnsiEscapeSequenceRegex_0 100%
Verso.PowerShell.Helpers.CompletionResultTypeMapper 27.7% 13.3%
Verso.PowerShell.Kernel.Host.PowerShellHostInputRequest 100%
Verso.PowerShell.Kernel.Host.PowerShellHostOutput 100%
Verso.PowerShell.Kernel.Host.VersoPowerShellHost 61.9%
Verso.PowerShell.Kernel.Host.VersoPowerShellHostUserInterface 39.8% 25.6%
Verso.PowerShell.Kernel.Host.VersoPowerShellRawUserInterface 21.8%
Verso.PowerShell.Kernel.InvokeResult 100%
Verso.PowerShell.Kernel.PowerShellKernel 93.6% 78.9%
Verso.PowerShell.Kernel.PowerShellKernelOptions 100%
Verso.PowerShell.Kernel.RunspaceManager 65.6% 53.4%
Verso.PowerShell.Kernel.VariableBridge 84.3% 84%
Verso.PowerShell.PowerShellExtension 100%
Verso.Python - 59.3%
Name Line Branch
Verso.Python 59.3% 45%
Verso.Python.Helpers.JediTypeMapper 100% 100%
Verso.Python.Helpers.PythonPositionHelpers 96.7% 83.3%
Verso.Python.Kernel 60.4% 43.2%
Verso.Python.Kernel.PythonCompletionProvider 81.4% 55.7%
Verso.Python.Kernel.PythonEngineManager 45.3% 34.7%
Verso.Python.Kernel.PythonKernel 72.2% 62.9%
Verso.Python.Kernel.PythonKernelOptions 100%
Verso.Python.Kernel.PythonScopeManager 48.2% 38.3%
Verso.Python.Kernel.VenvManager 41.5% 19.3%
Verso.Python.MagicCommands.PipMagicCommand 15.4% 0%
Verso.Sample.Diagram - 80.1%
Name Line Branch
Verso.Sample.Diagram 80.1% 85.5%
Verso.Sample.Diagram.DiagramCellType 0%
Verso.Sample.Diagram.DiagramKernel 82% 100%
Verso.Sample.Diagram.DiagramRenderer 65% 100%
Verso.Sample.Diagram.Models.DiagramEdge 100%
Verso.Sample.Diagram.Models.DiagramGraph 100%
Verso.Sample.Diagram.Models.DiagramNode 100%
Verso.Sample.Diagram.Parsing.ArrowNotationParser 100% 100%
Verso.Sample.Diagram.Rendering.SvgFlowchartRenderer 96.5% 79.1%
Verso.Sample.Dice - 82.1%
Name Line Branch
Verso.Sample.Dice 82.1% 91.3%
Verso.Sample.Dice.DiceExtension 82.8% 81.8%
Verso.Sample.Dice.DiceFormatter 81.8% 90%
Verso.Sample.Dice.DiceRenderer 70.8% 100%
Verso.Sample.Dice.DiceRollAction 57.1% 100%
Verso.Sample.Dice.Models.DiceNotation 100% 100%
Verso.Sample.Dice.Models.DiceResult 100%
Verso.Sample.Slides - 79.5%
Name Line Branch
Verso.Sample.Slides 79.5% 65.7%
Verso.Sample.Slides.Models.SlideAssignment 100%
Verso.Sample.Slides.PresentationLayout 78.9% 65.7%
Verso.Testing - 80.3%
Name Line Branch
Verso.Testing 80.3% 55.5%
Verso.Testing.Fakes.FakeCellInteractionHandler 85.1% 0%
Verso.Testing.Fakes.FakeCellPropertyProvider 100%
Verso.Testing.Fakes.FakeCellRenderer 76.6%
Verso.Testing.Fakes.FakeDataFormatter 73.9% 0%
Verso.Testing.Fakes.FakeExtension 73.9%
Verso.Testing.Fakes.FakeLanguageKernel 86.8% 100%
Verso.Testing.Stubs.StubCellRenderContext 75%
Verso.Testing.Stubs.StubExecutionContext 77.2% 100%
Verso.Testing.Stubs.StubFormatterContext 81.8%
Verso.Testing.Stubs.StubMagicCommandContext 80%
Verso.Testing.Stubs.StubNotebookOperations 76.3%
Verso.Testing.Stubs.StubToolbarActionContext 78.9%
Verso.Testing.Stubs.StubVersoContext 69.2%

Trim DECLARE list captures to the actual statement boundary to avoid the regex capture spilling into a following statement when semicolons are omitted. Introduce TrimDeclareCaptureToStatement and change extraction to stop when an item’s first non-whitespace char is not '@'. Replace AddFirstAtName with TryAddFirstAtName (returns bool) and adjust callers to halt iteration on non-@ items. Add tests covering unterminated DECLARE followed by another statement and a reported user scenario to ensure kernel/global @@ references in following statements are not mis-registered as locals.
@TorreyBetts TorreyBetts merged commit 85f5d36 into main May 27, 2026
5 checks passed
@TorreyBetts TorreyBetts deleted the feature/sql-variables-update branch May 27, 2026 23:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Local SQL cell variables

1 participant