Commit 832ef17
AZD VS Code Extension Updates & Improvements (#6425)
* Add side panel view with My Project and Help and Feedback sections
* Implement My Project section with project structure
* Add Environments section with details and variables
* Remove Environments from My Project view
* feat(vscode): Add extensions view and enhanced environment management
- Add new Extensions view with tree data provider for managing azd extensions
- Implement extension commands: install, uninstall, and upgrade
- Add ExtensionProvider service for interacting with azd extension APIs
- Add environment variables tree node for displaying env vars in workspace
- Enhance environment tree views with toggle visibility and .env file viewing
- Add inline actions to environment view (view .env, select environment)
- Add navigation buttons to view titles (new environment, install extension)
- Improve tree view type checking with isTreeViewModel utility
- Update telemetry IDs for new extension and environment operations
- Refactor command handlers to support both workspace and environment tree views
* feat(vscode): Update Help and Feedback link from Resources to AZD Blog Posts
- Rename 'Resources' link to 'AZD Blog Posts' in Help and Feedback view
- Update URL to point to Azure SDK blog filtered by azure-developer-cli tag
- Update command title to 'Open AZD Blog Posts'
* feat(vscode): Add 'Show in Azure Portal' command for services
- Added new command to open Azure resources directly in the Azure Portal
- Created OpenInPortalStep wizard step to handle portal URL opening
- Enhanced RevealStep with improved resource tree navigation and error handling
- Added debug logging throughout wizard steps for better diagnostics
- Improved error handling in PickResourceStep and PickResourceGroupStep
- Updated command registration and package.json with new command
- Added localized command title in package.nls.json
- Modified reveal.ts to support both TreeViewModel and direct service item inputs
- Enhanced RevealStep to activate required Azure extensions and refresh tree before reveal
- Added fallback mechanisms when automatic reveal fails (copy ID, open in portal options)
* feat(vscode): Integrate environment commands with standalone Environments view
- Extended environment commands to support both workspace and standalone views
- Added refresh functionality to Environments view after environment operations
- Connected env-refresh, env-edit, env-delete, and revealResourceGroup commands to standalone environments
- Updated reveal.ts to handle EnvironmentTreeItem for resource group navigation
- Modified env.ts to accept EnvironmentTreeItem in all environment operations
- Added view refresh commands after env operations (delete, new, select, refresh)
- Removed automatic env-select on click for non-default environments
- Fixed ESLint warnings with naming-convention for Azure provider types
- Added comment explaining focusGroup limitation in RevealStep
- Improved regex patterns in RevealStep for better linting compliance
This unifies the experience across both the workspace environments and the standalone
environments view, ensuring users can perform the same operations from either location.
* test(vscode): Add comprehensive unit tests for new features
Added unit tests for:
- OpenInPortalStep: Tests portal URL construction for various Azure resource types
* Web Apps, Storage Accounts, Cosmos DB, Container Apps, Resource Groups
* Error handling for missing resource IDs
* Priority configuration
- RevealStep: Tests Azure resource reveal functionality
* Extension activation for different Azure providers
* Resource group pre-expansion logic
* Multi-attempt reveal with fallback
* Error handling and user notifications
* Tree refresh mechanisms
- EnvironmentsTreeDataProvider: Tests standalone environments view
* Environment listing and hierarchy
* Default environment marking
* Environment variable visibility toggling
* Tree refresh events
* Integration with environment providers
- ExtensionsTreeDataProvider: Tests extensions management view
* Extension listing and display
* Version information
* Tree item creation
* Refresh functionality
All tests use proper mocking with sinon, follow established patterns,
and provide comprehensive coverage of success and error paths.
* feat(vscode): add test dependencies and improve command handling
- Add sinon and @types/sinon for test mocking
- Remove unused telemetryId parameter from registerActivityCommand
- Add documentation for telemetry tracking in commands
- Fix isAzdCommand to handle undefined input
- Add TEST_COVERAGE.md documentation
* Update ext/vscode/src/views/environments/EnvironmentsTreeDataProvider.ts
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Remove debug consol logs, update for proper logging
* Update ext/vscode/src/views/environments/EnvironmentsTreeDataProvider.ts
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update ext/vscode/src/commands/env.ts
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update ext/vscode/ext/vscode/package-lock.json
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update ext/vscode/src/commands/azureWorkspace/wizard/PickResourceStep.ts
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* fix build/test ts error
* fix build/tests failing
* fix linting errors
* feat: Add enhanced azure.yaml editing support with IntelliSense
Implements comprehensive language support for azure.yaml configuration files:
- Auto-completion for host types, lifecycle hooks, and properties with snippets
- Hover documentation with examples and Microsoft Learn links
- Quick fixes for missing folders, properties, and invalid configurations
- Add new service refactoring with interactive wizard
- Enhanced validation diagnostics
Includes 28 new test cases (all passing) covering completion, hover, code actions, and diagnostics.
Updated README.md, FEATURE_IDEAS.md, and cspell dictionary.
* feat: Add enhanced azure.yaml editing support with IntelliSense
Implements comprehensive language support for azure.yaml configuration files:
- Auto-completion for host types, lifecycle hooks, and properties with snippets
- Hover documentation with examples and Microsoft Learn links
- Quick fixes for missing folders, properties, and invalid configurations
- Add new service refactoring with interactive wizard
- Enhanced validation diagnostics
Includes 28 new test cases (all passing) covering completion, hover, code actions, and diagnostics.
Updated README.md, FEATURE_IDEAS.md, and cspell dictionary.
* fix build error/linting
* add copilot instructions specific to the extension
* feat: Implement 'Add Service' command for azure.yaml file with user prompts
* fix: Remove unnecessary blank lines in addService command and tests
* feat(views): Add Template Tools section with Azure template discovery and initialization
Add a new Template Tools view panel that helps users discover and initialize Azure Developer CLI templates:
Features:
- Dynamic Quick Start section (visible only when no azure.yaml exists)
- Initialize from existing code
- Create minimal project
- Browse template gallery
- Browse templates by 6 predefined categories (AI/ML, Web Apps, APIs, Containers, Databases, Starters)
- AI Templates section with direct access to aka.ms/aiapps templates
- Search functionality with QuickPick UI for filtering templates
- Template items with inline actions:
- Click template name to view README
- Hover actions: Initialize (rocket icon), View on GitHub (github icon)
- Context menu with all actions
Implementation:
- AzureDevTemplateProvider service for fetching/caching templates from awesome-azd JSON feed (1-hour cache)
- TemplateToolsTreeDataProvider with FileSystemWatcher for azure.yaml changes
- Template comm
Add a new Template Tools view panel that helps users discover and initialize Azure Developer CLI temp)
-
Features:
- Dynamic Quick Start section (visible only when no azure.yaml exists)
- Initialize ft test coverage (11 n - Initialize from existing code
- Create minined between Environmen - Create minimal projecs and seamlessly integrates with exi- Browse temit workflows.
* feat: Add comprehensive azure.yaml validation to prevent error pop-ups
Fixes #5691
Implements friendly azure.yaml/azure.yml validation within the extension
to catch errors before they cause unfriendly error dialog pop-ups.
Changes:
- Enhanced diagnostic provider with comprehensive validation
- Improved error handling in AzureDevShowProvider
- Added 17 new test cases (all passing)
- Updated README.md and TESTING_GUIDE.md with validation features
- All lint, tests, and cspell checks passing
Key features:
- Empty file detection with helpful guidance
- YAML parsing errors with user-friendly messages
- Missing required properties validation
- Invalid service properties detection
- Directs users to Problems panel instead of showing pop-ups
* Address PR review feedback from @bwateratmsft
- Remove all console.log/console.error statements, replace with ext.outputChannel.appendLog where appropriate
- Add category to new commands in package.json
- Remove redundant CI test step from copilot-instructions.md
- Delete unnecessary TEST_COVERAGE.md file
- Delete duplicate ext/vscode/package-lock.json
- Update README.md Getting Started with extension install command option
- Update minimum AZD version requirement to 1.8.0
* Address PR feedback: Remove duplicate YAML functionality
* Add missing words to cspell dictionary
* Address PR feedback: cleanup and improvements
- Remove Playwright e2e testing infrastructure
- Update extension icon
- Add copyright header requirement to Copilot instructions
- Convert unit tests from assert to Chai assertions
- Merge azureYamlValidation.test.ts into azureYamlDiagnostics.test.ts
- Update .vscodeignore and .gitignore
* update icon to svg
* revert icon to png due to build issue : Error: SVGs can't be used as icons: resources/icon.svg
* update activity icon to svg
* Address PR feedback for VS Code extension views
- Rename WorkspaceViewExtensionResolve to ExtensionsViewResolve (correct view ID)
- Remove fragile caching test from azureDevTemplateProvider.test.ts
- Add copyright headers to view providers
- Add vscode.l10n.t() for user-visible strings in HelpAndFeedbackTreeDataProvider
- Rename toggle commands to toggleEnvVarVisibility for clarity
- Make Help and Feedback view collapsed by default
- Use specific context values for templates to avoid conflicts
- Consolidate duplicate environment menu entries using regex alternation
- Add NLS strings to package.nls.json for new commands
- Fix refresh command registration (define command, remove @1)
- Restore telemetryId parameter in registerActivityCommand
- Remove redundant azureWorkspace.refresh from refreshEnvironment
- Add comments explaining hard-coded delays in RevealStep.ts
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>1 parent 89795b2 commit 832ef17
File tree
69 files changed
+5677
-116
lines changed- .vscode
- ext/vscode
- .github
- .vscode
- resources
- src
- commands
- azureWorkspace
- wizard
- constants
- language
- services
- telemetry
- test/suite/unit
- utils
- views
- environments
- extensions
- helpAndFeedback
- myProject
- templateTools
- workspace
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
69 files changed
+5677
-116
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
4 | 8 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
110 | 110 | | |
111 | 111 | | |
112 | 112 | | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
| 4 | + | |
4 | 5 | | |
5 | 6 | | |
| 7 | + | |
| 8 | + | |
6 | 9 | | |
7 | 10 | | |
8 | 11 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
0 commit comments