Experimental: VScode plugin#1516
Conversation
There was a problem hiding this comment.
Pull Request Overview
This PR introduces the experimental CALM VS Code plugin providing a comprehensive architecture model visualization and editing tool. The plugin enables offline-first modeling with live graph previews, navigation aids, and editing helpers integrated directly into VS Code.
- Implements a preview webview with interactive Cytoscape-powered graph visualization supporting multiple layout algorithms
- Creates a sidebar tree view for model element navigation and a suite of language features including hovers and code lenses
- Establishes comprehensive test coverage and build configuration with TypeScript, bundling, and packaging setup
Reviewed Changes
Copilot reviewed 21 out of 25 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
| conferences/osff-ln-2025/workshop/architecture/conference-signup.arch.json | Minor updates to node names and descriptions in example architecture |
| calm-vscode-plugin/tsup.config.ts | Build configuration for extension and webview bundling |
| calm-vscode-plugin/tsconfig.json | TypeScript configuration for Node.js extension code |
| calm-vscode-plugin/test/*.test.ts | Comprehensive test suite covering webview, preview panel, model utils, and build validation |
| calm-vscode-plugin/src/webview/*.ts | Webview TypeScript configuration and main interactive graph implementation |
| calm-vscode-plugin/src/util/*.ts | Utility modules for webview helpers, model parsing, language features, diagnostics, and CLI integration |
| calm-vscode-plugin/src/*.ts | Core extension files including tree view, preview panel, and main extension activation logic |
| calm-vscode-plugin/package.json | Extension manifest defining commands, configuration, dependencies, and VS Code integration |
| calm-vscode-plugin/media/preview.css | Styling for the preview webview with VS Code theme integration |
| calm-vscode-plugin/README.md | Comprehensive documentation covering features, usage, configuration, and installation |
conferences/osff-ln-2025/workshop/architecture/conference-signup.arch.json
Outdated
Show resolved
Hide resolved
|
In #460 (comment) you suggested putting IDE plugins in a plugins/ folder, which @Thels agreed with. Do we want to do this? |
markscott-ms
left a comment
There was a problem hiding this comment.
Changes to conference-signup.arch.json seem unrelated to this PR and should be reverted.
I've moved to |
Done |
markscott-ms
left a comment
There was a problem hiding this comment.
Approving.
- README.md was sufficient for me to configure VSCode such that I could launch the extension development window, open a CALM architecture file and explore it in the IDE.
- whilst experimental and lacking features, and potentially containing bugs and UX concerns, it provides a base for the community to work on.
- code changes for this experimental plugin are limited to the
calm-plugins/vscodefolder (apart from simple inclusion change to top levelpackage.json) and do not interfere with CALM CLI or other components, making it safe to merge into main.
|
This PR shows the power of aiding tools when working with CALM. When we look to turn this from experimental, some thoughts:-
|
Provides base implementation for #103
This pull request introduces the initial implementation of the experimental CALM VS Code plugin, providing live visualization, navigation, and editing helpers for CALM architecture models. The extension includes a preview webview with interactive graph features, a sidebar tree view, file watching, language features, and configuration options. The changes lay the foundation for a robust offline-first modeling tool within VS Code.
Key changes include:
Extension Core Functionality:
extension.ts, enabling the CALM Preview command, sidebar tree view, file watching for CALM model files, and language features such as hovers and code lens. The extension manages the preview panel, synchronizes selection between the graph, tree, and editor, and refreshes the model view on file changes.User Interface & Experience:
preview.css) for the preview webview, providing VS Code-themed styling for the toolbar, buttons, graph container, resizable divider, and details panel, ensuring a native and accessible look and feel.Extension Packaging & Configuration:
package.jsondefining extension metadata, activation events, commands, sidebar integration, configuration options (such as CLI path, layout, file globs), scripts for building and packaging, and dependencies for graph rendering and YAML support.Documentation:
README.mddescribing the plugin’s features, usage instructions, configuration, installation steps, supported model formats, limitations, and troubleshooting guidance.