Skip to content

Commit

Permalink
update release notes of 4.0.0
Browse files Browse the repository at this point in the history
  • Loading branch information
panoply committed Apr 21, 2023
1 parent 98f784b commit 8a626db
Showing 1 changed file with 23 additions and 16 deletions.
39 changes: 23 additions & 16 deletions releases/v4/4.0.0.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
# v4.0.0 ~ vscode-liquid

This version ships with **breaking changes** and requires that you to align with new configuration. This is an important update as it will be the last **major** version release users will need to undertake and apply to configurations in preparation for the Liquify supersede. The next major release of the extension will be Liquify which means all future features will up-streamed to that project.
This version ships with **breaking changes** and requires that you to align with new configuration. This is an important update as it will be the last **major** version release users will need to undertake and apply to configurations in preparation for the Liquify supersede. The next major release of the extension will be [Liquify](https://github.com/panoply/liquify) which means all future features will up-streamed to that project.

### See [this gist](https://gist.github.com/panoply/c371a90df35171f341b6cc5d7dccc312) for the quick-fix upgrade guide.

# Breaking Changes

Workspace and `.liquidrc` file settings now use a new definition structure for formatting configuration. There is no backwards compatibility, so you can either update to **4.0.0** or continue using **3.2.2**. Below is the **breaking changes** that ship in this release.
Workspace and `.liquidrc` file settings now use a **new** definition structure for formatting configuration. There is no backwards compatibility, so you can either update to **4.0.0** or continue using **3.2.2**. Below is the **breaking changes** that ship in this release.

> **TLDR**
> No problems fam, see this [gist](https://gist.github.com/panoply/c371a90df35171f341b6cc5d7dccc312).
### Changed Rule Definitions

The new configurations are expressed using different structures. Depending on how you define settings, be it within a `.liquidrc` file or from within a`.vscode/settings.json` file, beautification rules have changed. See the below examples of the new configuration structures:
The new configurations are expressed using different structures. Depending on how you define settings, be it within a `.liquidrc` file or from within a`.vscode/settings.json` file the way to provide beautification rules has changed. See the below examples of the new configuration structures:

### Updating a `.liquidrc` File

Expand Down Expand Up @@ -114,6 +114,7 @@ For developers who use workspace settings (`.vscode/settings.json`) for defining
```jsonc
{
"liquid.format.rules": {
"ignore": [],
"wrap": 0,
"crlf": false,
"endNewLine": false,
Expand All @@ -136,15 +137,17 @@ For developers who use workspace settings (`.vscode/settings.json`) for defining

### Deprecated the `liquid.settings.target` workspace option

The `liquid.settings.target` option was deprecated and is no longer supported. Editor settings will default to the workspace `.vscode/settings.json` file and if one is not present in the project the global (User Settings JSON) file will be used.
The `liquid.settings.target` option is deprecated and no longer supported. Editor settings will default to the workspace `.vscode/settings.json` file and if one is not present in the project then the global (User Settings JSON) file will be used.

### Deprecated the `package.json` prettify config option

In version **v3.0.0** an additional configuration method was made available which allowed you to define formatting rules in a `package.json` file using a `prettify` property. As of version **3.4.0** this is no longer supported. Option definitions within package.json files will return in Liquify, but under a different field value.
In version **v3.0.0** an additional configuration method was made available which allowed you to define formatting rules in a `package.json` file using a `prettify` property. As of version **4.0.0** this is no longer supported (nor is Prettify, see [Æsthetic replaced Prettify](#æsthetic-replaced-prettify)).

Option definitions using package.json files will return in Liquify, but under a different field value.

### Deprecated the `liquid.format.enable` workspace option

As per https://github.com/panoply/vscode-liquid/issues/132 the `liquid.format.enable` setting is no longer supported. To enable formatting on save within Liquid files, you will need provide defined **Language Specific** settings in either your user or workspace settings. Below is the how you enable formatting:
As per https://github.com/panoply/vscode-liquid/issues/132 the `liquid.format.enable` setting is no longer supported. To enable formatting on save within Liquid files, you will need provide **Language Specific** settings in either your user or workspace settings. Below is the how you enable formatting in **v4.0.0**:

```jsonc
{
Expand All @@ -157,7 +160,7 @@ As per https://github.com/panoply/vscode-liquid/issues/132 the `liquid.format.en

# New! File Associated Completions

Users have even more essential features available when choosing this extension. Support for file associated completions are now available. The `files` option available to both the `.liquidrc` or workspace `.vscode/settings.json` can used to provide file path reference to project associated files. When you provide references then completion support is made available for the definition applied.
Users have even more essential features available when choosing this extension for Shopify theme development or projects using Liquid. Support for file associated completions are now available. The `files` option is available to both the `.liquidrc` or workspace `.vscode/settings.json` settings. The option can used to provide file path reference to project associated files. When you provide references then completion support is made available for the definition applied.

<table>
<thead>
Expand Down Expand Up @@ -225,21 +228,25 @@ This release provides `settings_schema.json` completion support. This is achieve

This release provides snippet file completion support. This is achieved by defining project relative path/s to directories that contain snippets or alternatively you can provide globs matches. Snippets will be shown for in `{% render '' %}` tag and will also allow you to quick open files.

# Prettify Improvements
# Æsthetic replaced Prettify

The Prettify project is now shipped under under the module name **Æsthetic**. Æsthetic replaces Prettify as the core beautification tool used by the extension. Æsthetic is now under a RC version release and exhausting tests and new features has been cooked into the project. Test cases against 100+ different code sample structures has brought Æsthetic to a safe level wherein code output respects input intent and changes will not go about augmenting in unpredictable ways.

This release is now using version `0.5.5.beta.1` of [Prettify](). Huge improvements pertaining to CSS coming along with the most stable markup (html + liquid) release to date. Test cases against 100+ different code sample structures has move Prettify to a safe level wherein code output respects input intent, meaning that changes will not go about augmenting in unpredictable ways. This release provides new beautification rules that expose more fine grained control over how your code should be beautified.
Æsthetic provides new beautification rules that expose more fine grained control over how your code should be beautified. Your `.liquidrc` file will complain about now deprecated or changed rules. You should consult the [Æsthetic Documentation](https://æsthetic.dev) to familiarize yourself with the tool and better understand how each rule will effect code output.

Below are some key features of Æsthetic and what is being shipped in **4.0.0**.

### New! Language Specifics

Prettify has made previous global level rules available on a per-language basis. This means that you use these rules in all supported lexer (liquid, markup, style and script) modes.
Æsthetic has made previous global level rules available on a per-language basis. This means that you are able to use these rules in all supported lexer (liquid, markup, style and script) modes.

- `commentIndent`
- `commentNewline`
- `preserveComment`

### New! Liquid Specific Rules
### New! Liquid Specific Lexer

Liquid beautification rules are no longer coupled together with `markup` and instead are now defined on via a new`liquid` property. This new structure decouples and separates Liquid from markup allowing for more concise control for Liquid specific beautification.
Liquid beautification rules are no longer coupled together with `markup` and instead are now defined on via a new `liquid` property. This new structure decouples and separates Liquid from markup allowing for more concise control for Liquid specific beautification. There are also several new highly refined rules available for Liquid specific beautification.

<details>

Expand Down Expand Up @@ -281,8 +288,8 @@ Liquid beautification rules are no longer coupled together with `markup` and ins
"commentNewline": false,
"forceAttribute": true,
"forceIndent": false,
"forceLeadAttribute": false,
"preserveAttributes": false,
"forceAttribute": false,
"preserveAttribute": false,
"preserveText": false,
"ignoreScripts": false,
"ignoreStyles": false,
Expand Down Expand Up @@ -349,13 +356,13 @@ This is a **global** rule that replaces `indentChar` and will use `\t` tab inden

In version **3.2.0** the extension introduced `{% schema %}` tag completion and validation support. This release improves upon this essential feature now `{% schema %}` JSON supports snippet completion capabilities.

### Snippets and Tabstops
# Snippets and Tabstops

Schema JSON provided snippet completion which can be invoked with `CRTL`+`SPACE`. All section structures are available, with additional ENBF tab-stop support which converts `id` defined values to Upcase format Labels.

### Full IETF local support

This release now supports all IETF locale completion sturctures for labels and other translation based properties.
This release now supports all IETF locale completion structures for labels and other translation based properties.

### Detailed and informative descriptions

Expand Down

0 comments on commit 8a626db

Please sign in to comment.