From eec4cb6aedbdbfb2d20b6f8e8c3956ff544aa47a Mon Sep 17 00:00:00 2001 From: Nikolas Savvidis Date: Mon, 24 Jul 2023 03:42:16 +0200 Subject: [PATCH] v0.5.4 of @liquify/schema --- schema/liquidrc.json | 2 +- schema/shopify-locales.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/schema/liquidrc.json b/schema/liquidrc.json index 7518a78d..a7530059 100644 --- a/schema/liquidrc.json +++ b/schema/liquidrc.json @@ -1 +1 @@ -{"$schema":"http://json-schema.org/draft-07/schema","title":"VSCode Liquid Extension","description":"This file is used to control settings for the vscode-liquid extension.","type":"object","additionalProperties":true,"definitions":{"engine":{"type":"object","properties":{"engine":{"type":"string","default":"shopify","enum":["standard","shopify","11ty","jekyll"],"markdownDescription":"**Default** `shopify`\n\nThe `liquid.engine` option is used to determine the Liquid template variation you are working with. This extension supports the following Liquid variations:\n\n- Standard\n- Shopify\n- 11ty\n- Jekyll\n\nFeatures and capabilities differ depending on the engine you define. For example, if you are working with the Shopify Liquid variation and you have set the engine to `Standard` then features like object and property completions will not work.\n\n**Tip**\n\nYou can optionally infer the engine with your `.liquidrc` file.\n"},"files":{"markdownDescription":"An object of which holds path references to external files used within current workspace. The files structure will differ depending on the Liquid engine specified."},"format":{"type":"object","additionalProperties":false,"properties":{"ignore":{"type":["array"],"markdownDescription":"\n**Default** `[]`\n\nA glob pattern list of file's and/or directories to be ignored from formatting. Use relative paths to exclude or ignore beautification running on certain files or uri path locations within your workspace.\n\n**Tip**\n\nYou can also leverage inline ignore comments. Place a Æsthetic ignore comment at the top of files you wish to exclude from beautification, for example:\n\n```html\n\n\n\n```\n","items":{"uniqueItems":true,"type":"string"}},"endNewline":{"type":"boolean","default":false,"markdownDescription":"Whether or not files should end with an empty newline. When this rule is `undefined` or omitted then Æsthetic will look for an `.editorconfig` file and use definitions inferred within.\n\n[Æsthetic Documentation](https://æsthetic.dev/rules/global/endNewline/)\n"},"wrap":{"type":"number","default":0,"markdownDescription":"Character width limit before applying word wrap. A `0` value disables this option.\n\n\n[Æsthetic Documentation](https://æsthetic.dev/rules/global/wrap/)\n"},"wrapFraction":{"type":"number","default":0,"markdownDescription":"Wrap fraction is used on internal structures as a secondary point of control. By default, it will use a 75% metric according to `wrap` defined values.\n\n\n[Æsthetic Documentation](https://æsthetic.dev/rules/global/wrapFraction/)\n"},"indentSize":{"type":"number","default":2,"markdownDescription":"The number of `indentChar` values to comprise a single indentation. By default this is set to `2` meaning a single indentation will be 2 whitespace characters.\n\n**How to use Tabs?**\n\nIf you're heathen who prefers Tabs. You will need to set the `indentChar` to `\\t` and infer the size limit here.\n\n\n[Æsthetic Documentation](https://æsthetic.dev/rules/global/indentSize/)\n"},"indentChar":{"type":"string","default":" ","markdownDescription":"The string characters to comprise a single indentation. Any string combination is accepted. Generally speaking, you should leave this alone unless you know what you are doing.\n\nThe `indentSize` rule will use this character. For example, if you were to set `indentSize` to `4` then this character will be repeated 4 times, ie: ` ` - by default the `indentSize` is set to `2`.\n\n\n[Æsthetic Documentation](https://æsthetic.dev/rules/global/indentChar/)\n"},"preserveLine":{"type":"number","default":3,"markdownDescription":"The maximum number of consecutive empty lines to retain (ie: preserve). By default, `3` newlines are preserved.\n\n\n[Æsthetic Documentation](https://æsthetic.dev/rules/global/preserveLine/)\n\n"},"crlf":{"type":"boolean","default":false,"markdownDescription":"If line termination should be Windows (CRLF) format. By default, Unix (LF) format is used. Setting this value to `true` will use CRLF.\n\n[Æsthetic Documentation](https://æsthetic.dev/rules/global/crlf)\n"},"preset":{"enum":["default","recommended","warrington","strict","shopify"],"default":"default","markdownDescription":"A preset ruleset style guide to use. This will assign rules according to a set of defaults to produce a certain beautification result. If this rule is `undefined` it will default to using `default` which is least obtrusive formatting style.\n\n**Options**\n\n**`default`** (required)\n\n> This is the **default** and the most unobtrusive. Formatting will use a preservationist based technique with this preset mode.\n\n**`recommended`**\n\n> This style guide is typically suited for most cases, it will apply a base set of rules aligned with the Æsthetic approach.\n\n**`warrington`**\n\n> This style guide preset is best suited for developers and specifically teams working with Shopify themes. The preset was curated by the talented [David Warrington](https://ellodave.dev/).\n\n**`strict`**\n\n> This is a strict ruleset curated by the projects author [Panoply (sissel)](https://github.com/panoply).\n\n**`shopify`** 🤡\n\n> Replicates the Prettier style of formatting. If you've used the Shopify Liquid Prettier Plugin and enjoy that beautification style using this preset will produce the same results.\n\n\n\n[Æsthetic Documentation](https://æsthetic.dev/rules/global/preset/)\n"},"liquid":{"type":"object","additionalProperties":false,"markdownDescription":"Beautification rules applied to **Liquid**","properties":{"delimiterTrims":{"type":"string","enum":["preserve","tags","outputs","never","always","multiline"],"default":"preserve","markdownDescription":"### Delimiter Trims\n\nHow delimiter whitespace trim dashes (`{%-`, `-%}`, `{{-` and `-}}`) should handled in Liquid tags and output object tokens. You should _maybe_ avoid setting this to `force` in order to avoid stripping whitespace in cases where text content contains Liquid.\n\n> **NOTE**\n>\n> This rule will not touch Liquid tokens encapsulated within strings, ie: `\"{{ foo }}\"` or `'{{ foo }}'` are left intact.\n\n\n**Options**\n\nThis is a Liquid specific formatting rule which defaults to using `preserve` when no option has been specified.\n\n- preserve\n- tags\n- outputs\n- never\n- always\n- multiline\n\n\n[Æsthetic Documentation](https://æsthetic.dev/rules/liquid/delimiterTrims/)\n\n"},"delimiterPlacement":{"type":"string","enum":["preserve","inline","consistent","force","force-multiline"],"default":"none","markdownDescription":"Controls the placement of opening and closing Liquid tag delimiters (`{%`, `{{`, `}}` and `%}`). This rule provides 3 different formatting options and will ensure that delimiters are beautified in concordance. When the rule is `undefined` it will default to using `none`.\n\n**Options**\n\nThis is a Liquid specific formatting rule which defaults to using `preserve` when no option has been specified. The **recommended** option to use is `consistent` or `force-multiline`.\n\n- preserve\n- default\n- inline\n- consistent\n- force\n- force-multiline\n\n\n[Æsthetic Documentation](https://æsthetic.dev/rules/liquid/delimiterPlacement/)\n\n"},"commentIndent":{"type":"boolean","default":false,"markdownDescription":"Applies single indentation to containing content of Liquid comments. Liquid line type comments are currently not supported by this rule. Only block type Liquid tokens will be handled.\n\n\n[Æsthetic Documentation](https://æsthetic.dev/rules/liquid/commentIndent/)\n\n"},"commentNewline":{"type":"boolean","default":false,"markdownDescription":"Inserts a new line above comment tags. When enabled the rule will add a newline even if `preserveLine` is set to `0`. The rule will not inject new lines when the previous expression is determined to already contain a new line.\n\n\n[Æsthetic Documentation](https://æsthetic.dev/rules/liquid/commentNewline/)\n"},"forceArgument":{"type":"number","default":0,"markdownDescription":"Forces Liquid tag and filter argument expressions onto newlines according to the number of arguments present on the token. By default, this rule uses a value of `0` which will result in arguments being forced when the tag or output token containing them spans ¾ (or 75%) of defined global [`wrap`](https://æsthetic.dev/rules/global/wrap) limit.\n\n\n[Æsthetic Documentation](https://æsthetic.dev/rules/liquid/forceArgument/)\n\n\n"},"forceFilter":{"type":"number","default":0,"markdownDescription":"Forces Liquid filter `|` expressions onto newlines when the number of filters contained on a tag exceeds the limit defined. By default, this rule uses a value of `0` which will result in Liquid filters being forced when the tag or output token containing them spans ¾ (or 75%) of defined global [`wrap`](https://æsthetic.dev/rules/global/wrap) limit.\n\n\n[Æsthetic Documentation](https://æsthetic.dev/rules/liquid/forceFilter/)\n"},"dedentTagList":{"type":"array","default":[],"markdownDescription":"A list of Liquid tags that should exclude standard indentation. Only tags which contain a start and end types are valid.\n\n\n[Æsthetic Documentation](https://æsthetic.dev/rules/liquid/dedentTagList/)\n","items":{"type":"string","additionalItems":true,"uniqueItems":true,"not":{"enum":["comment"]},"enum":["form","paginate","capture","case","for","if","raw","tablerow","liquid","unless","schema","style","script","stylesheet","javascript"]}},"ignoreTagList":{"type":"array","default":[],"markdownDescription":"A list of Liquid tags that should excluded from formatting. Only tags which contain a start and end types are valid.\n\n\n[Æsthetic Documentation](https://æsthetic.dev/rules/liquid/ignoreTagList/)\n","items":{"type":"string","additionalItems":true,"uniqueItems":true,"not":{"enum":["comment"]},"enum":["form","paginate","capture","case","for","if","raw","tablerow","liquid","unless","schema","style","script","stylesheet","javascript"]}},"indentAttribute":{"default":false,"type":"boolean","markdownDescription":"Whether or not to apply indentation of HTML attributes within Liquid identified tag blocks contained in HTML Tags. This rule emulates the `liquid-prettier-plugin` structures with more refined controlling. This requires the `markup` rule `forceAttributes` be set to either `true` or have limit value (e.g: `2`) defined.\n\n\n[Æsthetic Documentation](https://æsthetic.dev/rules/liquid/indentAttribute/)\n"},"lineBreakSeparator":{"default":"after","type":"string","markdownDescription":"Controls the placement of Liquid separator type characters in new line structures. In situations where you write a multiline tag expression this rule can augment the order of leading operator characters such as the parameter comma `,` separator.\n\nThis rule will not break tag content on to new lines for you, it instead together with the inferred structure you've expressed. This means that you will need to manually new line the arguments.\n\n### Options\n\nThis is a Liquid specific formatting rule which will default to `after` when no option has been specified.\n\n- before\n- after\n\n\n[Æsthetic Documentation](https://æsthetic.dev/rules/liquid/lineBreakSeparator/)\n","enum":["before","after"]},"normalizeSpacing":{"default":true,"type":"boolean","markdownDescription":"Whether or not to normalize and correct the inner spacing of Liquid tokens. This rule will equally distribute whitespace characters contained within Liquid tags and output tokens. The rule will also inject spacing in accordance with common Liquid code structures.\n\n\n[Æsthetic Documentation](https://æsthetic.dev/rules/liquid/normalizeSpacing)\n"},"preserveComment":{"type":"boolean","default":false,"markdownDescription":"Preserve the inner contents of Liquid block comments.\n\n\n[Æsthetic Documentation](https://æsthetic.dev/rules/liquid/preserveComment/)\n"},"preserveInternal":{"type":"boolean","default":false,"markdownDescription":"Prevent the internals structures of Liquid tokens from being formatted. When enabled, Æsthetic will preserve the internal formations of output and tags.\n\n\n[Æsthetic Documentation](https://æsthetic.dev/rules/liquid/preserveInternal/)\n"},"quoteConvert":{"default":"none","type":"string","markdownDescription":"How quotation characters of markup attributes and Liquid tokens should be handled. Allows for conversion to single quotes or double quotes. Markup tag attributes should always use double quotations, it's the standard in languages like HTML.\n\n[Æsthetic Documentation](https://æsthetic.dev/rules/liquid/quoteConvert/)\n","enum":["none","double","single"]}}},"markup":{"type":"object","additionalProperties":false,"markdownDescription":"Beautification rules applied to the following markup languages:\n\n- **HTML**\n- **Liquid**\n- **XML**\n- **XHTML**","properties":{"attributeCasing":{"type":"string","default":"preserve","markdownDescription":"How markup attribute names and value casing should be processed. This defaults to `preserve` which will leave casing intact and _typically_ the best option to use.\n\n**Options**\n\nThis rule defaults to using `preserve` which will leave attribute names and values intact.\n\n- preserve\n- lowercase\n- lowercase-name\n- lowercase-value\n\n\n[Æsthetic Documentation](https://æsthetic.dev/rules/markup/attributeCasing/)\n","enum":["preserve","lowercase","lowercase-name","lowercase-value"]},"attributeSort":{"type":["boolean","array"],"default":false,"oneOf":[{"type":"array","items":{"type":"string"}},{"type":"boolean"}],"markdownDescription":"Provides sorting of HTML and XML Attributes. When enabled (`true`) it will sort attributes in an alpha-numeric order. Sorting is ignored on tags which contain Liquid output and tag type tokens as attributes. The rule also accepts a list of attribute names and when provided will be sorted according to order passed.\n\n\n[Æsthetic Documentation](https://æsthetic.dev/rules/markup/attributeSort/)\n"},"commentIndent":{"type":"boolean","default":false,"markdownDescription":"Applies single indentation to containing content of HTML comments.\n\n\n[Æsthetic Documentation](https://æsthetic.dev/rules/markup/commentIndent/)\n\n"},"commentNewline":{"type":"boolean","default":false,"markdownDescription":"Inserts a new line above comment tags. When enabled the rule will add a newline even if `preserveLine` is set to `0`. The rule will not inject new lines when the previous expression is determined to already contain a new line.\n\n\n[Æsthetic Documentation](https://æsthetic.dev/rules/markup/commentNewline/)\n\n"},"delimiterTerminus":{"enum":["inline","force","adapt"],"default":"inline","markdownDescription":"Whether or not ending HTML tag delimiters should be forced onto a newline. This will emulate the style of Prettier's `singleAttributePerLine` formatting option, wherein the last `>` delimiter character breaks itself onto a new line. Though this output style was popularized by Prettier, the resulting structures produced are far from elegant (aesthetically).\n\n[Æsthetic Documentation](https://æsthetic.dev/rules/markup/delimiterTerminus/)\n\n"},"forceIndent":{"type":"boolean","default":false,"markdownDescription":"Will force indentation upon all content and tags without regard for the text nodes. To some degree this rule emulates a result similar to that you'd expect in Prettier. Inline preservation is respected in cases where a Liquid output object token is encapsulated between text nodes. In such scenarios the text content will only force indent the start and end portions.\n\n\n[Æsthetic Documentation](https://æsthetic.dev/rules/markup/forceIndent/)\n"},"forceAttribute":{"type":["boolean","number"],"default":false,"markdownDescription":"How or if markup attributes should be indented each onto their own line. You can optionally provide an integer value of `1` or more. When an integer value is passed, attributes will be forced only if the number of attributes contained on the tag exceeds the supplied value limit. When you define a `wrap` level then attributes will be automatically forced when limit is exceeded unless you've set this rule to `true` or provided an integer threshold.\n\n\n[Æsthetic Documentation](https://æsthetic.dev/rules/markup/forceAttribute/)\n"},"lineBreakValue":{"enum":["preserve","align","indent","force-preserve","force-align","force-indent"],"default":"preserve","markdownDescription":"Attribute value handling applied when values span multiple lines.\n\n**Options**\n\n- preserve\n- align\n- indent\n- force-preserve\n- force-align\n- force-indent\n\n[Æsthetic Documentation](https://æsthetic.dev/rules/markup/lineBreakValue/)\n"},"ignoreJS":{"type":"boolean","default":false,"markdownDescription":"Whether or not to format regions of code that are identified to be JavaScript. Tags such as ``) and no code is detected between the opening and closing tags then formatting will be applied in accordance with defined rules pertaining to markup.\n\n\n[Æsthetic Documentation](https://æsthetic.dev/rules/markup/ignoreJS)\n"},"ignoreJSON":{"type":"boolean","default":false,"markdownDescription":"Whether or not to format regions of code that are identified to be JSON. Such tags are typically identified using attribute annotations like ``) and no code is detected between the opening and closing tags then formatting will be applied in accordance with defined rules pertaining to markup.\n\n\n[Æsthetic Documentation](https://æsthetic.dev/rules/markup/ignoreJS)\n"},"ignoreJSON":{"type":"boolean","default":true,"markdownDescription":"Whether or not to format regions of code that are identified to be JSON. Such tags are typically identified using attribute annotations like `