SDDS Viewer for VS Code
VS Code extension for reading and visualizing .sdds files with a custom editor and interactive plotting.
Current Status
Implemented:
- Custom readonly editor for
*.sdds (opens directly from Explorer)
- Command-based open flow with fallback support for non-
.sdds file extensions
- Python SDDS backend integration (
soliday.sdds preferred, sdds fallback)
- Per-page data model for:
- parameters
- columns
- arrays
- Metadata support per entry:
- Webview tabs:
- Plot features:
- Plotly interactive zoom/pan/scroll
- X selector including
None (row index)
- multi-Y selection via dropdown checklist (click-to-toggle)
- line style selector (
Default/Auto, Solid, Dotted, Dashed, Dash-dot)
- marker selector (
Default/Auto, circle/x/square/diamond/triangle-up/triangle-down/cross/star)
- mode selector (
Markers only, Lines only, Lines+Markers)
- deterministic default per-trace style cycling for multi-Y
Show All Series button to restore legend-hidden traces
Export PNG with VS Code Save As dialog
- Python unit tests for backend parsing and paging behavior
- Public demo SDDS files in
test/:
pythonReadExample.sdds
function_plot_demo.sdds
Overview Example
The screenshot below shows the current Overview tab layout.

Repository Layout
src/extension/: extension host code
src/extension/panel/SDDSViewerPanel.ts: webview UI + plot logic
src/extension/panel/SddsCustomReadonlyEditorProvider.ts: custom editor provider
src/extension/python/sddsReader.ts: Python process integration
src/python/read_sdds.py: SDDS reader CLI
test/: test data + Python unit tests
docs/: backlog and planning docs
Requirements
- Node.js 20+
- VS Code 1.90+
- Python 3.9+
- Python package:
soliday.sdds or compatible sdds
Python Configuration
The extension runs the SDDS backend with python3 by default.
If your SDDS package is installed in a different interpreter, set:
Example (settings.json):
{
"sddsViewer.pythonPath": "/opt/homebrew/bin/python3.11"
}
Development Setup
npm install
npm run build
npm test
In VS Code:
- Open this folder.
- Press
F5 to launch Extension Development Host.
- Click an
.sdds file in Explorer, or run SDDS: Open Viewer.
Commands
SDDS: Open Viewer (sddsViewer.openViewer)
SDDS: Open Viewer for Active File (sddsViewer.openViewerForActiveFile)
License
MIT
Feature Requests
If you have feature wishes or improvement ideas, please open an issue.
Next Steps
- Implement virtualized/chunked table rendering for large SDDS files.
- Add plot QoL enhancements:
Select all / Clear all Y-series behavior refinements
- optional search inside Y selector
- export options polish (SVG/CSV trace export)
- Add integration tests for custom editor open flow and plot export Save As flow.
- Improve docs with screenshots/GIFs of Overview/Table/Plot interactions.
| |