This extension provides language support for Azure Resource Manager deployment templates and template language expressions.
Provides a language server that understands Azure Resource Manager deployment template files
ARM Template Outline view for easy navigation through large templates
Colorization for Template Language Expressions (TLE)
Analyze and validate JSON syntax, JSON schema conformance for Azure resources, string expressions issues that would affect deployment
- NEW in 0.8.0! Our new language server now has a better understanding of Azure Resource Manager templates and can therefore provide a better error and completion experience beyond that provided using standard JSON validation
- It narrows down its schema validation based on the resource type and apiVersion properties of each resource.
- No longer suggests changing the resource type if the apiVersion is not supported, or if a property is missing or invalid (as tools using standard JSON validation would do)
- Errors provide better guidance for what actually needs to be fixed in each resource to match the schema
- Greatly improved completion speed
- Greatly reduced memory usage
- Schema validation now is case-insensitive and follows other conventions matching the Azure Resource Manager backend's behavior
- Note: The Azure schemas (which are read and interpreted by this extension) are undergoing continual improvement
IntelliSense for string expressions
arm in the editor to see the available snippets
Automatic Detection of deployment template files
By default, the extension recognizes a .json or .jsonc file as a deployment template file based on the $schema specified in the file (for instance,
https://schema.management.azure.com/schemas/2018-05-01/deploymentTemplate.json#) and will switch the editor language to "Azure Resource Manager Template" automatically. If you do not want that behavior, you can set the
azureResourceManagerTools.autoDetectJsonTemplates setting to false and use the below methods to determine which files to treat as deployment templates.
Besides automatic detection, you can also use the
files.associations setting to set up your own specific mappings based on specific files paths or patterns to mark them as deployment templates, e.g.
"*.azrm.json": "arm-template" // Treat these files as deployment templates
There are several ways you can contribute to our repo:
- Ideas, feature requests and bugs: We are open to all ideas and we want to get rid of bugs! Use the Issues section to report a new issue, provide your ideas or contribute to existing threads.
- Documentation: Found a typo or strangely worded sentences? Submit a PR!
- Snippets: Have a fix for a snippet or a new snippet idea? File an Issue or submit a PR!
- Code: Contribute bug fixes, features or design changes:
- Clone the repository locally and open in VS Code.
- Install TSLint for Visual Studio Code.
- Open the terminal (press
CTRL+`) and run
- To build, press
F1 and type in
Tasks: Run Build Task.
- Debug: press
F5 to start debugging the extension.
Before we can accept your pull request you will need to sign a Contribution License Agreement. All you need to do is to submit a pull request, then the PR will get appropriately labelled (e.g.
cla-already-signed). If you already signed the agreement we will continue with reviewing the PR, otherwise system will tell you how you can sign the CLA. Once you sign the CLA all future PR's will be labeled as
Code of Conduct
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact email@example.com with any additional questions or comments.
VS Code collects usage data and sends it to Microsoft to help improve our products and services. Read our privacy statement to learn more. If you don’t wish to send usage data to Microsoft, you can set the
telemetry.enableTelemetry setting to
false. Learn more in our FAQ.
The source code in our public repository is licensed under the MIT license. The public source code currently contains functionality related to the parsing and validation of template expression strings, but does not contain functionality related to JSON parsing and validation or backend template validation.
The extension as it is built in Azure DevOps and published to the VS Code Marketplace is a distribution of the public repository and is bundled with the Azure Resource Manager language service binaries. The published extension and language service binaries are licensed under a traditional Microsoft product license.