diff --git a/CHANGELOG.md b/CHANGELOG.md index e5dae6116..fd5c403ec 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,44 @@ # Change Log All notable changes to the "vscode-azurearmtools" extension will be documented in this file. +## Version 0.7.0 (2019-09-16) +### Added +- 0.7.0 contains the first release of a new language service that we are creating specifically for Azure Resource Manager deployment template files. Up to this point, the extension has been built on top of the built-in VS Code JSON language server. This has caused some problems, including: + 1. Deployment templates allow comments, unlike standard JSON files + 1. Deployment templates allow multi-line strings + 1. Deployment templates use case-insensitive properties + 1. Deployment templates have looser type rules, allowing substitutions such as "true" and "false" instead of true and false + 1. The large schema files published for Azure resources cause poor validation performance + 1. The errors provided by standard JSON validation frequently provide poor suggestions for fixing (due to lack of knowledge of Azure Resource Manager-specific properties such as resource name and apiVersion) + +The new language server aims to provide a better experience for deployment template creation and editing by alleviating many of the problems above. +This version addresses points 1-3 above (see [#fixed](#fixed-070) section). We intend to alleviate more of these problems in upcoming versions. +In addition, we are considering other improvements to the experience, such as: +1. Snippets +2. User-defined functions support +3. Copy loops support +If you would like to suggest additional features, or for other comments or problems, please enter a new issue at our [public repo](https://github.com/microsoft/vscode-azurearmtools/issues). + +### Fixed +- Comments are now supported (`//` and `/* */` styles) +- Multi-line strings are now supported +- Schema validation no longer reports false positives because of incorrectly-cased properties +Examples: +```json + "parameters": { + "dnsLabelPrefix": { + "type": "String", << No longer flagged as incorrect +``` +```json + "resources": [ + { + "type": "microsoft.network/networkInterfaces", << No longer flagged as incorrect +``` +- Expressions in property names are not colorized [#225](https://github.com/microsoft/vscode-azurearmtools/issues/225) +- Intellisense completion for parameter object properties defined inside a defaultValue [#124](https://github.com/microsoft/vscode-azurearmtools/issues/124) +- Parameters color not correct if whitespace separates param name from parentheses [#239](https://github.com/microsoft/vscode-azurearmtools/issues/239) +- Does not correctly handle colorization when a string starts with a bracket but does not end with a bracket [#250](https://github.com/microsoft/vscode-azurearmtools/issues/250) + ## Version 0.6.0 (2019-04-25) ### Added - Expressions inside strings are now colorized diff --git a/EULA.pdf b/EULA.pdf deleted file mode 100644 index 6e33cf9b5..000000000 Binary files a/EULA.pdf and /dev/null differ diff --git a/README.md b/README.md index 667a34588..4bb7b24d2 100644 --- a/README.md +++ b/README.md @@ -5,31 +5,25 @@ This extension provides language support for Azure Resource Manager deployment templates and template language expressions. ## Features +- 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) -- IntelliSense for TLE expressions +- Analyze and validate JSON syntax, JSON schema conformance for Azure resources, string expressions and deployment issues +- IntelliSense for string expressions - [Built-in function names](https://go.microsoft.com/fwlink/?LinkID=733958) - [Parameter references](https://go.microsoft.com/fwlink/?LinkID=733959) - [Variable references](https://go.microsoft.com/fwlink/?LinkID=733960) - [resourceGroup() properties](https://azure.microsoft.com/en-us/documentation/articles/resource-group-template-functions/#resourcegroup) - [subscription() properties](https://azure.microsoft.com/en-us/documentation/articles/resource-group-template-functions/#subscription) - Properties of references to variables that are objects -- [Signature help](https://code.visualstudio.com/docs/editor/editingevolved#_parameter-hints) for TLE function parameters -- [Go To Definition](https://code.visualstudio.com/docs/editor/editingevolved#_go-to-definition) for variable and parameter references -- [Peek](https://code.visualstudio.com/docs/editor/editingevolved#_peek) for variable and parameter definitions -- Find all references (Shift + F12) for variables and parameters -- Rename all references (F2) for variables and parameters -- [Hover](https://code.visualstudio.com/docs/editor/editingevolved#_hover) for parameter description -- [TLE brace matching](https://code.visualstudio.com/docs/editor/editingevolved#_bracket-matching) -- [Errors](https://code.visualstudio.com/docs/editor/editingevolved#_errors-warnings) for: - - Undefined parameter references - - Undefined variable references - - Unrecognized TLE function names - - [reference() function usage in variable definition](https://azure.microsoft.com/en-us/documentation/articles/resource-group-template-functions/#reference) - - Incorrect number of arguments in TLE functions -- [Warnings](https://code.visualstudio.com/docs/editor/editingevolved#_errors-warnings) for: - - Unused parameters - - Unused variables + - [Signature help](https://code.visualstudio.com/docs/editor/editingevolved#_parameter-hints) for TLE function parameters + - [Go To Definition](https://code.visualstudio.com/docs/editor/editingevolved#_go-to-definition) for variable and parameter references + - [Peek](https://code.visualstudio.com/docs/editor/editingevolved#_peek) for variable and parameter definitions + - Find all references (Shift + F12) for variables and parameters + - Rename all references (F2) for variables and parameters + - [Hover](https://code.visualstudio.com/docs/editor/editingevolved#_hover) for parameter description + - [TLE brace matching](https://code.visualstudio.com/docs/editor/editingevolved#_bracket-matching) + - Rename parameters and variables ## Automatic Detection of deployment template files @@ -71,4 +65,6 @@ VS Code collects usage data and sends it to Microsoft to help improve our produc ## License -[MIT](LICENSE.md) +The source code in our [public repository](https://github.com/Microsoft/vscode-azurearmtools) is licensed under the [MIT license](LICENSE.md). 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](https://marketplace.visualstudio.com/items?itemName=msazurermtools.azurerm-vscode-tools) 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. diff --git a/package-lock.json b/package-lock.json index ffffd7c19..9f9b0e0b5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "azurerm-vscode-tools", - "version": "0.6.1-alphalangserv", + "version": "0.7.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 06079e419..02fcd18f7 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "azurerm-vscode-tools", "displayName": "Azure Resource Manager Tools", "description": "Template language support for Azure Resource Manager JSON files.", - "version": "0.6.1-alphalangserv", + "version": "0.7.0", "publisher": "msazurermtools", "categories": [ "Azure",