Skip to content

Settings

Set these in VS Code User or Workspace settings JSON.

Result target and panel behavior

Setting Default Values Use
kdb-sqltools.results.target kdbPanel kdbPanel, sqltools Default target for kdb+: Run q Script and kdb+: Run Selection.
kdb-sqltools.results.kdbPanel.defaultRunMode new new, replace Whether default kdb panel runs open a new result tab or reuse an existing one.
kdb-sqltools.results.kdbPanel.initialViewColumn active active, beside, one, two, three Editor group for the first kdb result panel. Later new result tabs open beside existing kdb result tabs when possible.
kdb-sqltools.results.kdbPanel.arrayDisplayFormat commaSpace commaSpace, space, raw Array/list cell display.
kdb-sqltools.results.kdbPanel.functionDisplayStrategy qText grid, qText, table, text Top-level function/lambda/projection display.
kdb-sqltools.results.kdbPanel.dictionaryDisplayStrategy grid grid, qText, table, text Top-level dictionary display.
kdb-sqltools.results.kdbPanel.listDisplayStrategy grid grid, qText, table, text Top-level general/mixed/object list display.
kdb-sqltools.results.kdbPanel.objectDisplayStrategy grid grid, qText, table, text Top-level plain object display.
kdb-sqltools.results.qText.syntaxHighlighting false true, false Highlight qText with a safe, non-evaluating lexer.
kdb-sqltools.results.qText.displayFormatting false true, false Apply display-only formatting when lexical and structural validation succeeds. Copy/export remains unchanged.
kdb-sqltools.performance.trace false true, false Logs query timing and memory snapshots to the extension host console with the [kdb-sqltools:perf] prefix.

There is no setting that auto-starts the local data server. Start it explicitly from the kdb panel Settings area or the Command Palette.

Array display examples:

Value Display
commaSpace 1, 2, 3
space 1 2 3
raw [1 2 3] where q-like bracketed display is available

Non-table result strategy values:

Value Display
grid Existing synthetic grid/table form.
qText Deterministic q-like output in a plain text viewer. Normal list/object output is rendered fully; only very large text hits a character safety cap and shows [truncated].
table Alias for grid.
text Alias for qText.

True q tables and keyed tables always use the grid. Function source is shown only if it is available in the decoded IPC payload. If IPC only supplies a function marker, the panel shows a source-unavailable message; return string f or .Q.s f from q when exact source/default q text is required.

Charting

Setting Default Use
kdb-sqltools.results.kdbPanel.chartMaxSourceRows 2000000 Maximum source rows scanned for built-in charting before rejecting a chart request. The minimum is 1; there is no hard upper bound.
kdb-sqltools.results.kdbPanel.chartDecimalPlaces 4 Decimal places for chart numeric axis ticks, tooltips, legend/live values, box statistics, and candlestick OHLC values. Values are clamped to 0 through 12; very large or very small nonzero numbers use scientific notation with this precision.

Very large values can make chart rendering slow or temporarily block the extension host, especially with multiple y columns. For very large data, prefer the local data server or sliced results.

Chart viewport gestures do not add settings: choose Zoom or Pan in the chart toolbar, use Shift+drag for pan at any time, move or resize the navigator window, and use Home to reset. Viewports with at least 3,000 sampled points remain local; sparser viewports automatically rebuild from the retained source. Y remains automatic.

Panel size and density

Setting Default Use
kdb-sqltools.results.density standard Active density preset: compact, standard, or comfortable.
kdb-sqltools.results.columnWidths {} Extension-managed sparse map of persisted manual widths keyed by zero-based source-column position. Dragging a column updates only its position.
kdb-sqltools.results.autoFitColumns true Persist the Auto-fit checkbox. When false, no automatic width calculation runs.
kdb-sqltools.results.autoFitMode wholeResult Auto-fit scope: stable complete-result wholeResult, or viewport-adaptive visibleRows.
kdb-sqltools.results.compact.cellWidth 140 Compact density cell width in pixels.
kdb-sqltools.results.compact.rowHeight 24 Compact density row height in pixels.
kdb-sqltools.results.compact.fontSize 0 Compact density font size. 0 uses the VS Code default.
kdb-sqltools.results.standard.cellWidth 160 Standard density cell width in pixels.
kdb-sqltools.results.standard.rowHeight 28 Standard density row height in pixels.
kdb-sqltools.results.standard.fontSize 0 Standard density font size. 0 uses the VS Code default.
kdb-sqltools.results.comfortable.cellWidth 180 Comfortable density cell width in pixels.
kdb-sqltools.results.comfortable.rowHeight 32 Comfortable density row height in pixels.
kdb-sqltools.results.comfortable.fontSize 0 Comfortable density font size. 0 uses the VS Code default.
kdb-sqltools.results.cellWidth 160 Legacy fallback cell width. Density-specific settings are used first.
kdb-sqltools.results.rowHeight 28 Legacy fallback row height. Density-specific settings are used first.
kdb-sqltools.results.fontSize 0 Legacy fallback font size. Density-specific settings are used first.

wholeResult measures the widest displayed header/value in every row, including array/list values outside the virtual viewport, and therefore remains stable while scrolling. visibleRows preserves adaptive fitting from the currently rendered rows. Manual positional widths take precedence over auto-fit.

The panel's Cell width textbox is an all-column preset control. Changing it or switching density clears/replaces positional manual widths for every data column, including column zero. Dragging a column then writes a new authoritative value for only that source position. The position mapping survives panel and VS Code recreation and does not change when columns are hidden or visually reordered.

There is no Header mode setting. Header click/drag intent is determined by the shared 5 CSS-pixel threshold, with keyboard sort/reorder and modifier-based whole-column selection available directly on each focusable header.

Copy, export, and warnings

Setting Default Use
kdb-sqltools.results.showRowIndex true Show the left row-number column in the panel.
kdb-sqltools.results.includeHeaders true Include column headers by default when copying or exporting.
kdb-sqltools.results.includeRowIndex true Include 1-based row numbers by default when copying or exporting.
kdb-sqltools.results.hideLargeResultWarnings false Hide large-result guardrail messages in the panel.
kdb-sqltools.results.hideLargeSortWarnings false Skip large-result sort confirmation warnings.
kdb-sqltools.results.largeSortWarningRowThreshold 5000000 Ask before the first exact sort of a displayed result when its row count exceeds this value.
kdb-sqltools.results.showColumnSummaryStatistics false Show bounded exact or deterministic sampled statistics for visible columns.
kdb-sqltools.results.copyExportConfirmCellThreshold 1000000 Selected-cell threshold that triggers copy/export confirmation. Hard safety limits remain in force.
kdb-sqltools.results.localDataServerFullExportCellLimit 1000000 Visible-cell limit for local data server full-result current.csv, current.json, and current.ndjson exports. Minimum 1; no hard upper bound.
kdb-sqltools.results.elapsedTimeDisplay auto Use auto or milliseconds for elapsed time display.

Example

{
  "kdb-sqltools.results.target": "kdbPanel",
  "kdb-sqltools.results.kdbPanel.defaultRunMode": "replace",
  "kdb-sqltools.results.kdbPanel.arrayDisplayFormat": "space",
  "kdb-sqltools.results.kdbPanel.functionDisplayStrategy": "qText",
  "kdb-sqltools.results.kdbPanel.dictionaryDisplayStrategy": "qText",
  "kdb-sqltools.results.kdbPanel.listDisplayStrategy": "grid",
  "kdb-sqltools.results.kdbPanel.objectDisplayStrategy": "grid",
  "kdb-sqltools.results.qText.syntaxHighlighting": true,
  "kdb-sqltools.results.qText.displayFormatting": false,
  "kdb-sqltools.results.showColumnSummaryStatistics": true,
  "kdb-sqltools.results.includeHeaders": true,
  "kdb-sqltools.results.includeRowIndex": true,
  "kdb-sqltools.results.copyExportConfirmCellThreshold": 1000000,
  "kdb-sqltools.results.localDataServerFullExportCellLimit": 1000000
}