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 and deployment issues
- IntelliSense for string expressions
- Built-in function names
- Parameter references
- Variable references
- resourceGroup() properties
- subscription() properties
- Properties of references to variables that are objects
- Signature help for TLE function parameters
- Go To Definition for variable and parameter references
- Peek for variable and parameter definitions
- Find all references (Shift + F12) for variables and parameters
- Rename all references (F2) for variables and parameters
- Hover for parameter description
- TLE brace matching
- Rename parameters and variables
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 "ARM Deployment Template" automatically. If you do not want that behavior, you can set the armTools.autoDetectJsonTemplates
setting to false and use the below methods to determine which files to treat as deployment templates.
Besides automatic detection, any file ending with the extension .arm
will be considered a deployment template. 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.
"files.associations": {
"*.arm.json": "arm-deployment" // Treat these files as deployment templates
}
- VS Code Azure Resource Manager snippets and cross platform deployment scripts
- Azure Quickstart 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!
- 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 runnpm install
. - To build, press
F1
and type inTasks: 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-required
, cla-norequired
, cla-signed
, 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 cla-signed
.
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.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.