DVM Visual Editor
DVM Visual Editor provides a compact, reliable visual editing experience for Domain Value Map (.dvm) XML files inside Visual Studio Code. It is intended for teams that need a fast, keyboard-friendly table editor with reliable source navigation and safe save semantics.
Table of contents
- Features
- Installation
- Quick start
- Commands
- Keyboard shortcuts
- Editing and saving behavior
- Development
- Contributing
- License & support
Features
- Visual table view for
.dvm files with inline editing of cells
- Go-To-Source: open the exact XML source line for any table row
- Selection sync: move the editor cursor to highlight the corresponding table row
- Keyboard-first navigation and editing (Arrow keys, Enter, Tab, Esc)
- Resizable columns with persisted widths while the panel is open
- Reliable saves using
WorkspaceEdit so changes integrate with VS Code undo/redo
Installation
Install from the Visual Studio Marketplace (when published) or install a VSIX locally for testing:
# install dependencies and build
npm install
npm run compile
# package a VSIX for testing
npm run package:vsix
# install VSIX locally
code --install-extension dvm-visual-editor-<version>.vsix
Quick start
- Open a
.dvm file in VS Code.
- Use the editor title action labeled
Render or run the Render command from the Command Palette to open the visual editor.
- Edit values directly in the table. Use the
Save Changes control to persist edits back to the source.
- Click a row (or use Go-To-Source) to jump to the source XML for that entry.
Commands
Render — Open the current .dvm file in the visual editor.
The command is available as an editor title action for files with the dvm language.
Keyboard shortcuts (webview)
- Arrow Up / Arrow Down: move between rows
- Arrow Left / Arrow Right: move between cells when caret is at an edge
- Enter: move down to the cell below
- Tab / Shift+Tab: move across cells
- Escape: blur the active cell and clear selection
- Ctrl/Cmd+S: save changes
- Ctrl/Cmd+Enter: Go-To-Source (open editor at the entry's XML line)
Editing and saving behavior
- Edits are executed in the webview and applied to the open document via
WorkspaceEdit, preserving the editor's undo/redo history.
- Destructive actions (for example, deleting rows) require explicit confirmation through the extension host.
- Column width settings are stored in the webview state and persist while the panel is open.
Limitations & roadmap
Planned improvements for future releases:
- XML diagnostics and Problems integration
- Import/export (CSV) and bulk editing operations
- Preview diffs and undo-friendly staged saves
- A registered custom editor for tighter VS Code integration
If you rely on a particular feature, please open an issue so it can be prioritized.
Development
Commands useful for contributors:
npm install
npm run compile # build (type-check + lint + bundle)
npm run watch # rebuild on changes during development
npm run package:vsix # create a VSIX for local testing
npm test # run tests, if configured
To debug locally, open the repository in VS Code and press F5 to launch an Extension Development Host.
Contributing
We welcome contributions. Please:
- Open an issue to discuss larger changes before implementing them.
- Include tests for parsing and save logic when applicable.
- Keep changes focused and document UX changes in
README.md and CHANGELOG.md.
Security & privacy
- The extension does not collect telemetry by default. Any telemetry added later will be opt-in and documented in a
PRIVACY.md.
- If you discover a security issue, please open a private issue or contact the maintainers so we can address it promptly.
License
This project is licensed under the MIT License. See LICENSE for details.
Support
For bugs, feature requests, or questions, please open an issue in the repository.
If you want, I can add example screenshots, refine the marketplace description, or scaffold a GitHub Actions workflow to build and publish automatically.