Skip to content

Instantly share code, notes, and snippets.

@tjx666
Last active December 25, 2023 01:56
Show Gist options
  • Save tjx666/daa6317cf80ab5f467c50b2693527875 to your computer and use it in GitHub Desktop.
Save tjx666/daa6317cf80ab5f467c50b2693527875 to your computer and use it in GitHub Desktop.
Visual Studio Code Settings Sync Gist
{"lastUpload":"2022-02-14T06:16:33.865Z","extensionVersion":"v3.4.3"}
[
{
"metadata": {
"id": "cef2995f-cde2-4ee7-97cd-84346e546565",
"publisherId": "YuTengjing.adobe-extension-devtools",
"publisherDisplayName": "YuTengjing"
},
"name": "adobe-extension-devtools",
"publisher": "YuTengjing",
"version": "0.0.2"
},
{
"metadata": {
"id": "7a0110bb-231a-4598-aa1b-0769ea46d28b",
"publisherId": "aaron-bond.better-comments",
"publisherDisplayName": "aaron-bond"
},
"name": "better-comments",
"publisher": "aaron-bond",
"version": "2.1.0"
},
{
"metadata": {
"id": "73767f91-7dcb-43cb-90b3-596d073eea1f",
"publisherId": "jeff-hykin.better-cpp-syntax",
"publisherDisplayName": "jeff-hykin"
},
"name": "better-cpp-syntax",
"publisher": "jeff-hykin",
"version": "1.15.13"
},
{
"metadata": {
"id": "398cca50-8c14-40d0-98b5-7b362a661b18",
"publisherId": "jbenden.c-cpp-flylint",
"publisherDisplayName": "jbenden"
},
"name": "c-cpp-flylint",
"publisher": "jbenden",
"version": "1.11.0"
},
{
"metadata": {
"id": "a6a0c5b2-d078-4bf5-a9ee-4e37054414b3",
"publisherId": "formulahendry.code-runner",
"publisherDisplayName": "formulahendry"
},
"name": "code-runner",
"publisher": "formulahendry",
"version": "0.11.7"
},
{
"metadata": {
"id": "e337c67b-55c2-4fef-8949-eb260e7fb7fd",
"publisherId": "Shan.code-settings-sync",
"publisherDisplayName": "Shan"
},
"name": "code-settings-sync",
"publisher": "Shan",
"version": "3.4.3"
},
{
"metadata": {
"id": "f6dbd813-b0a0-42c1-90ea-10dde9d925a7",
"publisherId": "streetsidesoftware.code-spell-checker",
"publisherDisplayName": "streetsidesoftware"
},
"name": "code-spell-checker",
"publisher": "streetsidesoftware",
"version": "2.1.6"
},
{
"metadata": {
"id": "0f8bd812-5d52-4fff-bd1c-6b0a7ee9cad9",
"publisherId": "bierner.color-info",
"publisherDisplayName": "bierner"
},
"name": "color-info",
"publisher": "bierner",
"version": "0.7.0"
},
{
"metadata": {
"id": "1e3d51a2-1c9e-4fc4-aa60-9a8be8f01e7f",
"publisherId": "chekweitan.compare-view",
"publisherDisplayName": "chekweitan"
},
"name": "compare-view",
"publisher": "chekweitan",
"version": "0.6.0"
},
{
"metadata": {
"id": "690b692e-e8a9-493f-b802-8089d50ac1b2",
"publisherId": "ms-vscode.cpptools",
"publisherDisplayName": "ms-vscode"
},
"name": "cpptools",
"publisher": "ms-vscode",
"version": "1.9.0"
},
{
"metadata": {
"id": "6a95a3fd-3a5d-4326-b8ab-1b1653b1f183",
"publisherId": "serayuzgur.crates",
"publisherDisplayName": "serayuzgur"
},
"name": "crates",
"publisher": "serayuzgur",
"version": "0.5.10"
},
{
"metadata": {
"id": "8c2377ea-596d-46c3-92fa-1c5b66bb9d1c",
"publisherId": "dzhavat.css-initial-value",
"publisherDisplayName": "dzhavat"
},
"name": "css-initial-value",
"publisher": "dzhavat",
"version": "0.2.6"
},
{
"metadata": {
"id": "b2215d5f-675e-4a2b-b6ac-1ca737518b78",
"publisherId": "tamasfe.even-better-toml",
"publisherDisplayName": "tamasfe"
},
"name": "even-better-toml",
"publisher": "tamasfe",
"version": "0.14.2"
},
{
"metadata": {
"id": "d4e87851-cd2d-44fa-b0b9-606bfe58309c",
"publisherId": "Adobe.extendscript-debug",
"publisherDisplayName": "Adobe"
},
"name": "extendscript-debug",
"publisher": "Adobe",
"version": "1.1.2"
},
{
"metadata": {
"id": "97a82b1e-e6f7-4519-b1fc-f6be103e3824",
"publisherId": "bodil.file-browser",
"publisherDisplayName": "bodil"
},
"name": "file-browser",
"publisher": "bodil",
"version": "0.2.10"
},
{
"metadata": {
"id": "89d4a1d0-a567-4ed7-9f81-a03ab672d713",
"publisherId": "ctcuff.font-preview",
"publisherDisplayName": "ctcuff"
},
"name": "font-preview",
"publisher": "ctcuff",
"version": "1.3.2"
},
{
"metadata": {
"id": "ff3e8d46-6684-4d74-b098-c320411e0949",
"publisherId": "bierner.gif-player",
"publisherDisplayName": "bierner"
},
"name": "gif-player",
"publisher": "bierner",
"version": "0.0.2"
},
{
"metadata": {
"id": "5960f38e-0bbe-4644-8f9c-9c8824e82511",
"publisherId": "donjayamanne.githistory",
"publisherDisplayName": "donjayamanne"
},
"name": "githistory",
"publisher": "donjayamanne",
"version": "0.6.19"
},
{
"metadata": {
"id": "9f5a5fc9-8b23-4484-85c4-1438b82d8634",
"publisherId": "bierner.github-markdown-preview",
"publisherDisplayName": "bierner"
},
"name": "github-markdown-preview",
"publisher": "bierner",
"version": "0.1.0"
},
{
"metadata": {
"id": "3e891cf9-53cb-49a3-8d01-8f0b1f0afb29",
"publisherId": "codezombiech.gitignore",
"publisherDisplayName": "codezombiech"
},
"name": "gitignore",
"publisher": "codezombiech",
"version": "0.7.0"
},
{
"metadata": {
"id": "b17b0387-ccfb-44a8-b75b-3b1f925bf2f6",
"publisherId": "eamodio.gitlens-insiders",
"publisherDisplayName": "eamodio"
},
"name": "gitlens-insiders",
"publisher": "eamodio",
"version": "2022.2.1304"
},
{
"metadata": {
"id": "cc7d2112-5178-4472-8e0e-25dced95e7f0",
"publisherId": "ms-vscode.hexeditor",
"publisherDisplayName": "ms-vscode"
},
"name": "hexeditor",
"publisher": "ms-vscode",
"version": "1.9.4"
},
{
"metadata": {
"id": "7acbb4ce-c85a-49d4-8d95-a8054406ae97",
"publisherId": "ms-vscode.js-debug-nightly",
"publisherDisplayName": "ms-vscode"
},
"name": "js-debug-nightly",
"publisher": "ms-vscode",
"version": "2022.2.917"
},
{
"metadata": {
"id": "a7b993a8-0c1c-44cc-816d-c0b87cf96290",
"publisherId": "bierner.jsdoc-markdown-highlighting",
"publisherDisplayName": "bierner"
},
"name": "jsdoc-markdown-highlighting",
"publisher": "bierner",
"version": "0.0.1"
},
{
"metadata": {
"id": "4eae7368-ec63-429d-8449-57a7df5e2117",
"publisherId": "ms-vscode.live-server",
"publisherDisplayName": "ms-vscode"
},
"name": "live-server",
"publisher": "ms-vscode",
"version": "0.2.12"
},
{
"metadata": {
"id": "4358224d-f1ef-4635-a14b-a2f784a06e3d",
"publisherId": "Tyriar.luna-paint",
"publisherDisplayName": "Tyriar"
},
"name": "luna-paint",
"publisher": "Tyriar",
"version": "0.13.1"
},
{
"metadata": {
"id": "98790d67-10fa-497c-9113-f6c7489207b2",
"publisherId": "yzhang.markdown-all-in-one",
"publisherDisplayName": "yzhang"
},
"name": "markdown-all-in-one",
"publisher": "yzhang",
"version": "3.4.0"
},
{
"metadata": {
"id": "b0db4123-c5d9-4f45-bd2e-70738ebbb304",
"publisherId": "bierner.markdown-checkbox",
"publisherDisplayName": "bierner"
},
"name": "markdown-checkbox",
"publisher": "bierner",
"version": "0.3.2"
},
{
"metadata": {
"id": "f595c9c1-28b5-415e-a55f-2deb4a8c3abd",
"publisherId": "bierner.markdown-emoji",
"publisherDisplayName": "bierner"
},
"name": "markdown-emoji",
"publisher": "bierner",
"version": "0.2.1"
},
{
"metadata": {
"id": "0ca65281-8ee3-4a0a-a556-bb58556bfbbc",
"publisherId": "jjaakko.markdown-kbd",
"publisherDisplayName": "jjaakko"
},
"name": "markdown-kbd",
"publisher": "jjaakko",
"version": "0.4.2"
},
{
"metadata": {
"id": "5cbdf58a-694a-4aba-af08-61d00842eb03",
"publisherId": "bierner.markdown-preview-github-styles",
"publisherDisplayName": "bierner"
},
"name": "markdown-preview-github-styles",
"publisher": "bierner",
"version": "1.0.1"
},
{
"metadata": {
"id": "b872af63-f9e1-438e-9462-0315abe9d3aa",
"publisherId": "bierner.markdown-yaml-preamble",
"publisherDisplayName": "bierner"
},
"name": "markdown-yaml-preamble",
"publisher": "bierner",
"version": "0.1.0"
},
{
"metadata": {
"id": "26a529c9-2654-4b95-a63f-02f6a52429e6",
"publisherId": "zhuangtongfa.material-theme",
"publisherDisplayName": "zhuangtongfa"
},
"name": "material-theme",
"publisher": "zhuangtongfa",
"version": "3.13.19"
},
{
"metadata": {
"id": "e9e7f567-5669-4c9c-a2db-df05d6cf28ed",
"publisherId": "miguelsolorio.min-theme",
"publisherDisplayName": "miguelsolorio"
},
"name": "min-theme",
"publisher": "miguelsolorio",
"version": "1.5.0"
},
{
"metadata": {
"id": "42a19d78-8550-49db-958b-561a7bfdee7d",
"publisherId": "YuTengjing.open-in-external-app",
"publisherDisplayName": "YuTengjing"
},
"name": "open-in-external-app",
"publisher": "YuTengjing",
"version": "0.4.1"
},
{
"metadata": {
"id": "0d1241e3-fa60-4f24-8f2a-6d7085677c48",
"publisherId": "ionutvmi.path-autocomplete",
"publisherDisplayName": "ionutvmi"
},
"name": "path-autocomplete",
"publisher": "ionutvmi",
"version": "1.18.0"
},
{
"metadata": {
"id": "96fa4707-6983-4489-b7c5-d5ffdfdcce90",
"publisherId": "esbenp.prettier-vscode",
"publisherDisplayName": "esbenp"
},
"name": "prettier-vscode",
"publisher": "esbenp",
"version": "9.2.0"
},
{
"metadata": {
"id": "06574cb4-e5dc-4631-8174-a543a4533621",
"publisherId": "matklad.rust-analyzer",
"publisherDisplayName": "matklad"
},
"name": "rust-analyzer",
"publisher": "matklad",
"version": "0.3.939"
},
{
"metadata": {
"id": "a85a8ec7-f543-4625-8da7-d21ac04487a0",
"publisherId": "jakearl.search-editor-apply-changes",
"publisherDisplayName": "jakearl"
},
"name": "search-editor-apply-changes",
"publisher": "jakearl",
"version": "0.1.1"
},
{
"metadata": {
"id": "5fb19573-2183-4cf2-b53d-0fb869dae7ae",
"publisherId": "foxundermoon.shell-format",
"publisherDisplayName": "foxundermoon"
},
"name": "shell-format",
"publisher": "foxundermoon",
"version": "7.2.2"
},
{
"metadata": {
"id": "5c3e68a9-0b7e-498f-afed-ed1e0babc5ff",
"publisherId": "robole.snippets-ranger",
"publisherDisplayName": "robole"
},
"name": "snippets-ranger",
"publisher": "robole",
"version": "0.20.2"
},
{
"metadata": {
"id": "e56ae0dc-ddd7-462a-872d-6d14ea27f737",
"publisherId": "meganrogge.template-string-converter",
"publisherDisplayName": "meganrogge"
},
"name": "template-string-converter",
"publisher": "meganrogge",
"version": "0.6.0"
},
{
"metadata": {
"id": "f05d5b1a-dd2d-4d27-bfd6-e3cff922bd7e",
"publisherId": "qcz.text-power-tools",
"publisherDisplayName": "qcz"
},
"name": "text-power-tools",
"publisher": "qcz",
"version": "1.30.0"
},
{
"metadata": {
"id": "261cac81-cd7b-4555-bb41-0c2d2bcd3e70",
"publisherId": "Gruntfuggly.todo-tree",
"publisherDisplayName": "Gruntfuggly"
},
"name": "todo-tree",
"publisher": "Gruntfuggly",
"version": "0.0.215"
},
{
"metadata": {
"id": "e2bd68c2-cbc7-4318-ba99-0af8c7fe9e11",
"publisherId": "dozerg.tsimportsorter",
"publisherDisplayName": "dozerg"
},
"name": "tsimportsorter",
"publisher": "dozerg",
"version": "7.4.10"
},
{
"metadata": {
"id": "53585df3-9072-4bf2-b3b0-3ece63256d0b",
"publisherId": "YuTengjing.view-github-repository",
"publisherDisplayName": "YuTengjing"
},
"name": "view-github-repository",
"publisher": "YuTengjing",
"version": "1.1.0"
},
{
"metadata": {
"id": "a5223b43-8621-4351-a14e-3d560f85f277",
"publisherId": "johnsoncodehk.volar",
"publisherDisplayName": "johnsoncodehk"
},
"name": "volar",
"publisher": "johnsoncodehk",
"version": "0.31.4"
},
{
"metadata": {
"id": "a8c6502d-fef3-4642-9171-e483ca80dfe9",
"publisherId": "Spades.vs-picgo",
"publisherDisplayName": "Spades"
},
"name": "vs-picgo",
"publisher": "Spades",
"version": "2.1.6"
},
{
"metadata": {
"id": "29dad39d-46c6-45af-870f-7c9da1a1aace",
"publisherId": "YuTengjing.vscode-archive",
"publisherDisplayName": "YuTengjing"
},
"name": "vscode-archive",
"publisher": "YuTengjing",
"version": "0.0.1"
},
{
"metadata": {
"id": "2fd1d28f-fc2a-4582-8788-2f01febe43a6",
"publisherId": "IronGeek.vscode-env",
"publisherDisplayName": "IronGeek"
},
"name": "vscode-env",
"publisher": "IronGeek",
"version": "0.1.0"
},
{
"metadata": {
"id": "583b2b34-2c1e-4634-8c0b-0b82e283ea3a",
"publisherId": "dbaeumer.vscode-eslint",
"publisherDisplayName": "dbaeumer"
},
"name": "vscode-eslint",
"publisher": "dbaeumer",
"version": "2.2.3"
},
{
"metadata": {
"id": "353ab467-c4a7-4d6c-9de6-2244f600eebd",
"publisherId": "YuTengjing.vscode-fe-helper",
"publisherDisplayName": "YuTengjing"
},
"name": "vscode-fe-helper",
"publisher": "YuTengjing",
"version": "0.1.5"
},
{
"metadata": {
"id": "d637104e-1fd7-4063-98fc-8afe46012c9b",
"publisherId": "sleistner.vscode-fileutils",
"publisherDisplayName": "sleistner"
},
"name": "vscode-fileutils",
"publisher": "sleistner",
"version": "3.5.0"
},
{
"metadata": {
"id": "eedfd044-d5ac-4389-973d-3ac1fdb98ad5",
"publisherId": "kisstkondoros.vscode-gutter-preview",
"publisherDisplayName": "kisstkondoros"
},
"name": "vscode-gutter-preview",
"publisher": "kisstkondoros",
"version": "0.30.0"
},
{
"metadata": {
"id": "9ccc1dd7-7ec4-4a46-bd4f-7d7b8b9d322a",
"publisherId": "vscode-icons-team.vscode-icons",
"publisherDisplayName": "vscode-icons-team"
},
"name": "vscode-icons",
"publisher": "vscode-icons-team",
"version": "11.10.0"
},
{
"metadata": {
"id": "76169c6c-5d43-4560-93d8-95e15125880d",
"publisherId": "ms-vscode.vscode-js-profile-flame",
"publisherDisplayName": "ms-vscode"
},
"name": "vscode-js-profile-flame",
"publisher": "ms-vscode",
"version": "0.0.24"
},
{
"metadata": {
"id": "daf8b44d-8aae-4da2-80c5-1f770219f643",
"publisherId": "DavidAnson.vscode-markdownlint",
"publisherDisplayName": "DavidAnson"
},
"name": "vscode-markdownlint",
"publisher": "DavidAnson",
"version": "0.46.0"
},
{
"metadata": {
"id": "ae9e3eb0-3357-4cc0-90ee-598d2d384757",
"publisherId": "eg2.vscode-npm-script",
"publisherDisplayName": "eg2"
},
"name": "vscode-npm-script",
"publisher": "eg2",
"version": "0.3.24"
},
{
"metadata": {
"id": "d1232d17-9a0f-4fda-9cf0-e4bf18d567ae",
"publisherId": "chrisdias.vscode-opennewinstance",
"publisherDisplayName": "chrisdias"
},
"name": "vscode-opennewinstance",
"publisher": "chrisdias",
"version": "0.0.12"
},
{
"metadata": {
"id": "96a8a7c1-081c-4f43-85a2-7b5bf708ea5d",
"publisherId": "asurance.vscode-sound-player",
"publisherDisplayName": "asurance"
},
"name": "vscode-sound-player",
"publisher": "asurance",
"version": "0.0.3"
},
{
"metadata": {
"id": "ec35b5a3-9802-4c68-b5ff-e85f19ec0977",
"publisherId": "stylelint.vscode-stylelint",
"publisherDisplayName": "stylelint"
},
"name": "vscode-stylelint",
"publisher": "stylelint",
"version": "1.2.2"
},
{
"metadata": {
"id": "15305aca-2588-4ca0-8147-ab2c64730b82",
"publisherId": "ms-vscode.vscode-typescript-next",
"publisherDisplayName": "ms-vscode"
},
"name": "vscode-typescript-next",
"publisher": "ms-vscode",
"version": "4.6.20220211"
},
{
"metadata": {
"id": "78d16c76-388b-44e4-8470-6790d6c3d2d1",
"publisherId": "johnsoncodehk.vscode-typescript-vue-plugin",
"publisherDisplayName": "johnsoncodehk"
},
"name": "vscode-typescript-vue-plugin",
"publisher": "johnsoncodehk",
"version": "0.31.4"
},
{
"metadata": {
"id": "7faa914a-f674-482e-a631-c56cc96d1210",
"publisherId": "capybara1.vscode-url-title-resolver",
"publisherDisplayName": "capybara1"
},
"name": "vscode-url-title-resolver",
"publisher": "capybara1",
"version": "1.1.1"
},
{
"metadata": {
"id": "07fc4a0a-11fc-4121-ba9a-f0d534c729d8",
"publisherId": "pflannery.vscode-versionlens",
"publisherDisplayName": "pflannery"
},
"name": "vscode-versionlens",
"publisher": "pflannery",
"version": "1.0.9"
},
{
"metadata": {
"id": "6703768d-d42f-474e-9f6e-5f288d53f6e8",
"publisherId": "redhat.vscode-xml",
"publisherDisplayName": "redhat"
},
"name": "vscode-xml",
"publisher": "redhat",
"version": "0.18.3"
},
{
"metadata": {
"id": "2061917f-f76a-458a-8da9-f162de22b97e",
"publisherId": "redhat.vscode-yaml",
"publisherDisplayName": "redhat"
},
"name": "vscode-yaml",
"publisher": "redhat",
"version": "1.4.0"
},
{
"metadata": {
"id": "876e8f93-74d0-4f4f-91b7-34a09f19f444",
"publisherId": "VisualStudioExptTeam.vscodeintellicode",
"publisherDisplayName": "VisualStudioExptTeam"
},
"name": "vscodeintellicode",
"publisher": "VisualStudioExptTeam",
"version": "1.2.17"
},
{
"metadata": {
"id": "324ade6b-a934-457b-9730-a6056bcdef41",
"publisherId": "YuTengjing.ytj-snippets",
"publisherDisplayName": "YuTengjing"
},
"name": "ytj-snippets",
"publisher": "YuTengjing",
"version": "0.0.1"
}
]
{"schemas":[{"title":"rustfmt schema","description":"https://rust-lang.github.io/rustfmt","updated":"2022-01-22T15:48:25+00:00","url":"https://taplo.tamasfe.dev/schemas/rustfmt.toml.json","urlHash":"7b54a6432b1b59cd3755d9e20e8cee5852e007763af5ea7e94311efd50539af4","authors":["Aloso (https://github.com/Aloso)"],"patterns":["^(.*(/|\\\\)rustfmt\\.toml|rustfmt\\.toml)$"]},{"title":"Cargo.toml","description":"A schema for Cargo.toml.","updated":"2021-10-18T02:31:01+00:00","url":"https://taplo.tamasfe.dev/schemas/cargo.toml.json","urlHash":"842614c23c7a7c4d872d71ec1a207277f8126d32f5336bda93e715f192886da2","authors":["tamasfe (https://github.com/tamasfe)"],"patterns":["^(.*(/|\\\\)Cargo\\.toml|Cargo\\.toml)$"]},{"title":"dein.vim","description":"A schema for config of dein.vim (https://github.com/Shougo/dein.vim/blob/master/doc/dein.txt#L963)","updated":"2021-10-06T22:05:35+00:00","url":"https://taplo.tamasfe.dev/schemas/dein.toml.json","urlHash":"00a4ca5feb2062a435740e266c93fe7f40338daafc76273d59f42f1196b3aa0c","authors":["kkiyama117 (https://github.com/kkiyama117)"],"version":"0.1.0","patterns":["^(.*(/|\\\\)\\.*dein.*\\.toml|\\.*dein.*\\.toml)$"]},{"title":"Makefile.toml","description":"A schema for cargo-make makefiles","updated":"2021-09-06T13:03:37+00:00","url":"https://taplo.tamasfe.dev/schemas/makefile.toml.json","urlHash":"69ceae6b01fc0d8f1fca57cc3d812da6805c2ceaa4435c6749963006ae5f8610","authors":["Kathryn Long (https://github.com/starkat99)"],"version":"0.35.0","patterns":["^(.*(/|\\\\)Makefile\\.toml|Makefile\\.toml)$"]},{"title":"pyproject.toml","updated":"2020-12-25T18:39:37+00:00","url":"https://taplo.tamasfe.dev/schemas/pyproject.toml.json","urlHash":"d3bc40f82541aaaa1e61a27bccc8c0bd70192f44978696e3f05d9bffd2fc704a","authors":["zevisert (https://github.com/zevisert)"],"patterns":["^(.*(/|\\\\)pyproject\\.toml|pyproject\\.toml)$"]},{"title":"golangci-lint Configuration","description":"golangci-lint configuration file","updated":"2022-01-28T12:25:40+00:00","url":"https://json.schemastore.org/golangci-lint.json","urlHash":"172e8eeea6c80e3020000ad7b3edc7952ffad1543a993b993a595b6bb8aa8577","authors":["automatically included from https://schemastore.org"],"patterns":["^(.*(/|\\\\)\\.golangci\\.toml|\\.golangci\\.toml)$"]},{"title":"Ory Hydra configuration","description":"Schema for Ory Hydra configuration file","updated":"2022-01-28T12:25:40+00:00","url":"https://raw.githubusercontent.com/ory/hydra/master/.schema/version.schema.json","urlHash":"8f2dca29eb0b7c85d53fda24dd7018449d4ac1465df5b58388f215f1e8bdf1c8","authors":["automatically included from https://schemastore.org"],"patterns":["^(.*(/|\\\\)hydra\\.toml|hydra\\.toml)$"]},{"title":"Ory Keto configuration","description":"Schema for Ory Keto configuration file","updated":"2022-01-28T12:25:40+00:00","url":"https://raw.githubusercontent.com/ory/keto/master/.schema/version.schema.json","urlHash":"7269ace63d623241729eb42325058f6443c408280f7289964ef3bd0d919d1ada","authors":["automatically included from https://schemastore.org"],"patterns":["^(.*(/|\\\\)keto\\.toml|keto\\.toml)$"]},{"title":"Ory Oathkeeper configuration","description":"Schema for Ory Oathkeeper configuration file","updated":"2022-01-28T12:25:40+00:00","url":"https://raw.githubusercontent.com/ory/oathkeeper/master/.schema/version.schema.json","urlHash":"bfbb0b336f1ef43992aa128157ac42309eb43505ac46d7f3d83b46952c334eb2","authors":["automatically included from https://schemastore.org"],"patterns":["^(.*(/|\\\\)oathkeeper\\.toml|oathkeeper\\.toml)$"]},{"title":"Ory Kratos configuration","description":"Schema for Ory Kratos configuration file","updated":"2022-01-28T12:25:40+00:00","url":"https://raw.githubusercontent.com/ory/kratos/master/.schema/version.schema.json","urlHash":"3b5c9f225c88226085cff023787345d18bbc5f41c84880338e96c71a49f904f1","authors":["automatically included from https://schemastore.org"],"patterns":["^(.*(/|\\\\)kratos\\.toml|kratos\\.toml)$"]},{"title":"HEMTT","description":"HEMTT Project File","updated":"2022-01-28T12:25:40+00:00","url":"https://json.schemastore.org/hemtt-0.6.2.json","urlHash":"6fe20bdcf1f9fde588f69b70e16347cae27f3d6489e3fbce3f9bcf04a042cdc9","authors":["automatically included from https://schemastore.org"],"patterns":["^(.*(/|\\\\)hemtt\\.toml|hemtt\\.toml)$"]}]}
{"url":"https://taplo.tamasfe.dev/schemas/cargo.toml.json","schema":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Cargo.toml","description":"A schema for Cargo.toml.","type":"object","properties":{"badges":{"description":"[crates.io](https://crates.io) can display various badges for build status, test coverage, etc. for\neach crate. All badges are optional.\n\n- The badges pertaining to build status that are currently available are\n Appveyor, CircleCI, Cirrus CI, GitLab, Azure DevOps, Travis CI and Bitbucket\n Pipelines.\n- Available badges pertaining to code test coverage are Codecov and Coveralls.\n- There are also maintenance-related badges based on isitmaintained.com\n which state the issue resolution time, percent of open issues, and future\n maintenance intentions.\n\nMost badge specifications require a `repository` key. It is expected to be in\n`user/repo` format.\n\n```toml\n[badges]\n\n# Appveyor: `repository` is required. `branch` is optional; default is `master`\n# `service` is optional; valid values are `github` (default), `bitbucket`, and\n# `gitlab`; `id` is optional; you can specify the appveyor project id if you\n# want to use that instead. `project_name` is optional; use when the repository\n# name differs from the appveyor project name.\nappveyor = { repository = \"...\", branch = \"master\", service = \"github\" }\n\n# Circle CI: `repository` is required. `branch` is optional; default is `master`\ncircle-ci = { repository = \"...\", branch = \"master\" }\n\n# Cirrus CI: `repository` is required. `branch` is optional; default is `master`\ncirrus-ci = { repository = \"...\", branch = \"master\" }\n\n# GitLab: `repository` is required. `branch` is optional; default is `master`\ngitlab = { repository = \"...\", branch = \"master\" }\n\n# Azure DevOps: `project` is required. `pipeline` is required. `build` is optional; default is `1`\n# Note: project = `organization/project`, pipeline = `name_of_pipeline`, build = `definitionId`\nazure-devops = { project = \"...\", pipeline = \"...\", build=\"2\" }\n\n# Travis CI: `repository` in format \"<user>/<project>\" is required.\n# `branch` is optional; default is `master`\ntravis-ci = { repository = \"...\", branch = \"master\" }\n\n# Bitbucket Pipelines: `repository` is required. `branch` is required\nbitbucket-pipelines = { repository = \"...\", branch = \"master\" }\n\n# Codecov: `repository` is required. `branch` is optional; default is `master`\n# `service` is optional; valid values are `github` (default), `bitbucket`, and\n# `gitlab`.\ncodecov = { repository = \"...\", branch = \"master\", service = \"github\" }\n\n# Coveralls: `repository` is required. `branch` is optional; default is `master`\n# `service` is optional; valid values are `github` (default) and `bitbucket`.\ncoveralls = { repository = \"...\", branch = \"master\", service = \"github\" }\n\n# Is it maintained resolution time: `repository` is required.\nis-it-maintained-issue-resolution = { repository = \"...\" }\n\n# Is it maintained percentage of open issues: `repository` is required.\nis-it-maintained-open-issues = { repository = \"...\" }\n\n# Maintenance: `status` is required. Available options are:\n# - `actively-developed`: New features are being added and bugs are being fixed.\n# - `passively-maintained`: There are no plans for new features, but the maintainer intends to\n# respond to issues that get filed.\n# - `as-is`: The crate is feature complete, the maintainer does not intend to continue working on\n# it or providing support, but it works for the purposes it was designed for.\n# - `experimental`: The author wants to share it with the community but is not intending to meet\n# anyone's particular use case.\n# - `looking-for-maintainer`: The current maintainer would like to transfer the crate to someone\n# else.\n# - `deprecated`: The maintainer does not recommend using this crate (the description of the crate\n# can describe why, there could be a better solution available or there could be problems with\n# the crate that the author does not want to fix).\n# - `none`: Displays no badge on crates.io, since the maintainer has not chosen to specify\n# their intentions, potential crate users will need to investigate on their own.\nmaintenance = { status = \"...\" }\n```","type":"object","additionalProperties":{"type":"object","additionalProperties":{"type":"string"}},"x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/manifest.html#the-badges-section"}}},"bench":{"description":"Benchmarks provide a way to test the performance of your code using the\n[`cargo bench`](https://doc.rust-lang.org/cargo/commands/cargo-bench.html) command. They follow the same structure as [tests](https://doc.rust-lang.org/cargo/reference/cargo-targets.html#tests),\nwith each benchmark function annotated with the `#[bench]` attribute.\nSimilarly to tests:\n\n* Benchmarks are placed in the [`benches` directory](https://doc.rust-lang.org/cargo/guide/project-layout.html).\n* Benchmark functions defined in libraries and binaries have access to the\n *private* API within the target they are defined in. Benchmarks in the\n `benches` directory may use the *public* API.\n* [The `bench` field](https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-bench-field) can be used to define which targets\n are benchmarked by default.\n* [The `harness` field](https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-harness-field) can be used to disable the\n built-in harness.\n\n> **Note**: The [`#[bench]`\n> attribute](https://doc.rust-lang.org/unstable-book/library-features/test.html) is currently\n> unstable and only available on the [nightly channel](https://doc.rust-lang.org/book/appendix-07-nightly-rust.html). There are some\n> packages available on [crates.io](https://crates.io/keywords/benchmark) that\n> may help with running benchmarks on the stable channel, such as\n> [Criterion](https://crates.io/crates/criterion).","type":"array","items":{"description":"Benchmarks provide a way to test the performance of your code using the\n[`cargo bench`](https://doc.rust-lang.org/cargo/commands/cargo-bench.html) command. They follow the same structure as [tests](https://doc.rust-lang.org/cargo/reference/cargo-targets.html#tests),\nwith each benchmark function annotated with the `#[bench]` attribute.\nSimilarly to tests:\n\n* Benchmarks are placed in the [`benches` directory](https://doc.rust-lang.org/cargo/guide/project-layout.html).\n* Benchmark functions defined in libraries and binaries have access to the\n *private* API within the target they are defined in. Benchmarks in the\n `benches` directory may use the *public* API.\n* [The `bench` field](https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-bench-field) can be used to define which targets\n are benchmarked by default.\n* [The `harness` field](https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-harness-field) can be used to disable the\n built-in harness.\n\n> **Note**: The [`#[bench]`\n> attribute](https://doc.rust-lang.org/unstable-book/library-features/test.html) is currently\n> unstable and only available on the [nightly channel](https://doc.rust-lang.org/book/appendix-07-nightly-rust.html). There are some\n> packages available on [crates.io](https://crates.io/keywords/benchmark) that\n> may help with running benchmarks on the stable channel, such as\n> [Criterion](https://crates.io/crates/criterion).","$ref":"#/definitions/Target","x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/cargo-targets.html#benchmarks"}}},"x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/cargo-targets.html#benchmarks"}}},"bin":{"description":"Binary targets are executable programs that can be run after being compiled.\nThe default binary filename is `src/main.rs`, which defaults to the name of\nthe package. Additional binaries are stored in the [`src/bin/`\ndirectory](https://doc.rust-lang.org/cargo/guide/project-layout.html). The settings for each binary can be [customized](https://doc.rust-lang.org/cargo/reference/cargo-targets.html#configuring-a-target) in the `[[bin]]` tables in `Cargo.toml`.\n\nBinaries can use the public API of the package's library. They are also linked\nwith the [`[dependencies]`](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html) defined in `Cargo.toml`.\n\nYou can run individual binaries with the [`cargo run`](https://doc.rust-lang.org/cargo/commands/cargo-run.html) command with the `--bin\n<bin-name>` option. [`cargo install`](https://doc.rust-lang.org/cargo/commands/cargo-install.html) can be used to copy the executable to a\ncommon location.\n\n```toml\n# Example of customizing binaries in Cargo.toml.\n[[bin]]\nname = \"cool-tool\"\ntest = false\nbench = false\n\n[[bin]]\nname = \"frobnicator\"\nrequired-features = [\"frobnicate\"]\n```","type":"array","items":{"description":"Binary targets are executable programs that can be run after being compiled.\nThe default binary filename is `src/main.rs`, which defaults to the name of\nthe package. Additional binaries are stored in the [`src/bin/`\ndirectory](https://doc.rust-lang.org/cargo/guide/project-layout.html). The settings for each binary can be [customized](https://doc.rust-lang.org/cargo/reference/cargo-targets.html#configuring-a-target) in the `[[bin]]` tables in `Cargo.toml`.\n\nBinaries can use the public API of the package's library. They are also linked\nwith the [`[dependencies]`](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html) defined in `Cargo.toml`.\n\nYou can run individual binaries with the [`cargo run`](https://doc.rust-lang.org/cargo/commands/cargo-run.html) command with the `--bin\n<bin-name>` option. [`cargo install`](https://doc.rust-lang.org/cargo/commands/cargo-install.html) can be used to copy the executable to a\ncommon location.\n\n```toml\n# Example of customizing binaries in Cargo.toml.\n[[bin]]\nname = \"cool-tool\"\ntest = false\nbench = false\n\n[[bin]]\nname = \"frobnicator\"\nrequired-features = [\"frobnicate\"]\n```","$ref":"#/definitions/Target","x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/cargo-targets.html#binaries"}}},"x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/cargo-targets.html#binaries"}}},"build-dependencies":{"description":"You can depend on other Cargo-based crates for use in your build scripts.\nDependencies are declared through the `build-dependencies` section of the\nmanifest:\n\n```toml\n[build-dependencies]\ncc = \"1.0.3\"\n```\n\nThe build script **does not** have access to the dependencies listed\nin the `dependencies` or `dev-dependencies` section. Build\ndependencies will likewise not be available to the package itself\nunless listed under the `dependencies` section as well. A package\nitself and its build script are built separately, so their\ndependencies need not coincide. Cargo is kept simpler and cleaner by\nusing independent dependencies for independent purposes.","type":"object","additionalProperties":{"$ref":"#/definitions/Dependency"},"x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#build-dependencies"}}},"build_dependencies":{"type":"object","additionalProperties":{"$ref":"#/definitions/Dependency"},"x-taplo":{"hidden":true}},"cargo-features":{"type":"array","items":{"type":"string"}},"dependencies":{"description":"Cargo is configured to look for dependencies on [crates.io](https://crates.io) by default. Only\nthe name and a version string are required in this case. In [the cargo\nguide](https://doc.rust-lang.org/cargo/guide/index.html), we specified a dependency on the `time` crate:\n\n```toml\n[dependencies]\ntime = \"0.1.12\"\n```\n\nThe string `\"0.1.12\"` is a [semver](https://github.com/steveklabnik/semver#requirements) version requirement. Since this\nstring does not have any operators in it, it is interpreted the same way as\nif we had specified `\"^0.1.12\"`, which is called a caret requirement.\n\nA dependency can also be defined by a table with additional options:\n\n```toml\n[dependencies]\ntime = { path = \"../time\", version = \"0.1.12\" }\n```","type":"object","additionalProperties":{"$ref":"#/definitions/Dependency"},"x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html"}}},"dev-dependencies":{"description":"The format of `[dev-dependencies]` is equivalent to `[dependencies]`:\n\n```toml\n[dev-dependencies]\ntempdir = \"0.3\"\n```\n\nDev-dependencies are not used when compiling\na package for building, but are used for compiling tests, examples, and\nbenchmarks.\n\nThese dependencies are *not* propagated to other packages which depend on this\npackage.\n\nYou can also have target-specific development dependencies by using\n`dev-dependencies` in the target section header instead of `dependencies`. For\nexample:\n\n```toml\n[target.'cfg(unix)'.dev-dependencies]\nmio = \"0.0.1\"\n```\n\n> **Note**: When a package is published, only dev-dependencies that specify a\n> `version` will be included in the published crate. For most use cases,\n> dev-dependencies are not needed when published, though some users (like OS\n> packagers) may want to run tests within a crate, so providing a `version` if\n> possible can still be beneficial.\n","type":"object","additionalProperties":{"$ref":"#/definitions/Dependency"},"x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#development-dependencies"}}},"dev_dependencies":{"type":"object","additionalProperties":{"$ref":"#/definitions/Dependency"},"x-taplo":{"hidden":true}},"example":{"description":"Files located under the [examples directory](https://doc.rust-lang.org/cargo/guide/project-layout.html) are example uses of the functionality provided by the library. When compiled, they are placed in the[ target/debug/examples directory](https://doc.rust-lang.org/cargo/guide/build-cache.html).\n\nExamples can use the public API of the package's library. They are also linked with the [dependencies](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html) and [dev-dependencies](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#development-dependencies) defined in Cargo.toml.\n\nBy default, examples are executable binaries (with a `main()` function). You\ncan specify the [`crate-type` field](https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-crate-type-field) to make an example\nbe compiled as a library:\n\n```toml\n[[example]]\nname = \"foo\"\ncrate-type = [\"staticlib\"]\n```\n\nYou can run individual executable examples with the [`cargo run`](https://doc.rust-lang.org/cargo/commands/cargo-run.html) command with\nthe `--example <example-name>` option. Library examples can be built with\n[`cargo build`](https://doc.rust-lang.org/cargo/commands/cargo-build.html) with the `--example <example-name>` option. [`cargo install`](https://doc.rust-lang.org/cargo/commands/cargo-install.html)\nwith the `--example <example-name>` option can be used to copy executable\nbinaries to a common location. Examples are compiled by [`cargo test`](https://doc.rust-lang.org/cargo/commands/cargo-test.html) by\ndefault to protect them from bit-rotting. Set [the `test`\nfield](https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-test-field) to `true` if you have `#[test]` functions in the\nexample that you want to run with [`cargo test`](https://doc.rust-lang.org/cargo/commands/cargo-test.html).\n","type":"array","items":{"description":"Files located under the [examples directory](https://doc.rust-lang.org/cargo/guide/project-layout.html) are example uses of the functionality provided by the library. When compiled, they are placed in the[ target/debug/examples directory](https://doc.rust-lang.org/cargo/guide/build-cache.html).\n\nExamples can use the public API of the package's library. They are also linked with the [dependencies](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html) and [dev-dependencies](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#development-dependencies) defined in Cargo.toml.\n\nBy default, examples are executable binaries (with a `main()` function). You\ncan specify the [`crate-type` field](https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-crate-type-field) to make an example\nbe compiled as a library:\n\n```toml\n[[example]]\nname = \"foo\"\ncrate-type = [\"staticlib\"]\n```\n\nYou can run individual executable examples with the [`cargo run`](https://doc.rust-lang.org/cargo/commands/cargo-run.html) command with\nthe `--example <example-name>` option. Library examples can be built with\n[`cargo build`](https://doc.rust-lang.org/cargo/commands/cargo-build.html) with the `--example <example-name>` option. [`cargo install`](https://doc.rust-lang.org/cargo/commands/cargo-install.html)\nwith the `--example <example-name>` option can be used to copy executable\nbinaries to a common location. Examples are compiled by [`cargo test`](https://doc.rust-lang.org/cargo/commands/cargo-test.html) by\ndefault to protect them from bit-rotting. Set [the `test`\nfield](https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-test-field) to `true` if you have `#[test]` functions in the\nexample that you want to run with [`cargo test`](https://doc.rust-lang.org/cargo/commands/cargo-test.html).\n","$ref":"#/definitions/Target","x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/cargo-targets.html#examples"}}},"x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/cargo-targets.html#examples"}}},"features":{"description":"Cargo supports features to allow expression of:\n\n* conditional compilation options (usable through `cfg` attributes);\n* optional dependencies, which enhance a package, but are not required; and\n* clusters of optional dependencies, such as `postgres-all`, that would include the\n `postgres` package, the `postgres-macros` package, and possibly other packages\n (such as development-time mocking libraries, debugging tools, etc.).\n\nA feature of a package is either an optional dependency, or a set of other\nfeatures.\n","type":"object","additionalProperties":{"type":"array","items":{"type":"string"}},"x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/features.html"}}},"lib":{"$ref":"#/definitions/Target","x-taplo":{"docs":{"main":"The library target defines a \"library\" that can be used and linked by other\nlibraries and executables. The filename defaults to `src/lib.rs`, and the name\nof the library defaults to the name of the package. A package can have only\none library. The settings for the library can be [customized](https://doc.rust-lang.org/cargo/reference/cargo-targets.html#configuring-a-target) in the `[lib]`\ntable in `Cargo.toml`.\n\n```toml\n# Example of customizing the library in Cargo.toml.\n[lib]\ncrate-type = [\"cdylib\"]\nbench = false\n```\n"},"links":{"key":"https://doc.rust-lang.org/cargo/reference/cargo-targets.html#library"}}},"package":{"$ref":"#/definitions/Package"},"patch":{"description":"The `[patch]` section of `Cargo.toml` can be used to override dependencies\nwith other copies. The syntax is similar to the\n[`[dependencies]`](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html) section.\n\n","type":"object","additionalProperties":{"type":"object","additionalProperties":{"$ref":"#/definitions/Dependency"}},"x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/overriding-dependencies.html#the-patch-section"}}},"profile":{"$ref":"#/definitions/Profiles"},"project":{"$ref":"#/definitions/Package","x-taplo":{"hidden":true}},"replace":{"type":"object","additionalProperties":{"$ref":"#/definitions/Dependency"},"x-taplo":{"hidden":true}},"target":{"type":"object","additionalProperties":{"$ref":"#/definitions/Platform"}},"test":{"description":"Files located under the [`tests` directory](https://doc.rust-lang.org/cargo/guide/project-layout.html) are integration\ntests. When you run [`cargo test`](https://doc.rust-lang.org/cargo/commands/cargo-test.html), Cargo will compile each of these files as\na separate crate, and execute them.\n\nIntegration tests can use the public API of the package's library. They are\nalso linked with the [`[dependencies]`](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html) and\n[`[dev-dependencies]`](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#development-dependencies) defined in `Cargo.toml`.\n\nIf you want to share code among multiple integration tests, you can place it\nin a separate module such as `tests/common/mod.rs` and then put `mod common;`\nin each test to import it.\n\nEach integration test results in a separate executable binary, and [`cargo\ntest`](https://doc.rust-lang.org/cargo/commands/cargo-test.html) will run them serially. In some cases this can be inefficient, as it\ncan take longer to compile, and may not make full use of multiple CPUs when\nrunning the tests. If you have a lot of integration tests, you may want to\nconsider creating a single integration test, and split the tests into multiple\nmodules. The libtest harness will automatically find all of the `#[test]`\nannotated functions and run them in parallel. You can pass module names to\n[`cargo test`](https://doc.rust-lang.org/cargo/commands/cargo-test.html) to only run the tests within that module.\n\nBinary targets are automatically built if there is an integration test. This\nallows an integration test to execute the binary to exercise and test its\nbehavior. The `CARGO_BIN_EXE_<name>` [environment variable](https://doc.rust-lang.org/cargo/reference/environment-variables.html#environment-variables-cargo-sets-for-crates) is set when the\nintegration test is built so that it can use the [`env` macro](https://doc.rust-lang.org/std/macro.env.html) to locate the\nexecutable.","type":"array","items":{"description":"Files located under the [`tests` directory](https://doc.rust-lang.org/cargo/guide/project-layout.html) are integration\ntests. When you run [`cargo test`](https://doc.rust-lang.org/cargo/commands/cargo-test.html), Cargo will compile each of these files as\na separate crate, and execute them.\n\nIntegration tests can use the public API of the package's library. They are\nalso linked with the [`[dependencies]`](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html) and\n[`[dev-dependencies]`](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#development-dependencies) defined in `Cargo.toml`.\n\nIf you want to share code among multiple integration tests, you can place it\nin a separate module such as `tests/common/mod.rs` and then put `mod common;`\nin each test to import it.\n\nEach integration test results in a separate executable binary, and [`cargo\ntest`](https://doc.rust-lang.org/cargo/commands/cargo-test.html) will run them serially. In some cases this can be inefficient, as it\ncan take longer to compile, and may not make full use of multiple CPUs when\nrunning the tests. If you have a lot of integration tests, you may want to\nconsider creating a single integration test, and split the tests into multiple\nmodules. The libtest harness will automatically find all of the `#[test]`\nannotated functions and run them in parallel. You can pass module names to\n[`cargo test`](https://doc.rust-lang.org/cargo/commands/cargo-test.html) to only run the tests within that module.\n\nBinary targets are automatically built if there is an integration test. This\nallows an integration test to execute the binary to exercise and test its\nbehavior. The `CARGO_BIN_EXE_<name>` [environment variable](https://doc.rust-lang.org/cargo/reference/environment-variables.html#environment-variables-cargo-sets-for-crates) is set when the\nintegration test is built so that it can use the [`env` macro](https://doc.rust-lang.org/std/macro.env.html) to locate the\nexecutable.","$ref":"#/definitions/Target","x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/cargo-targets.html#integration-tests"}}},"x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/cargo-targets.html#integration-tests"}}},"workspace":{"$ref":"#/definitions/Workspace"}},"x-taplo-info":{"authors":["tamasfe (https://github.com/tamasfe)"],"patterns":["^(.*(/|\\\\)Cargo\\.toml|Cargo\\.toml)$"]},"definitions":{"Build":{"title":"Build","description":"The `build` field specifies a file in the package root which is a [build script](https://doc.rust-lang.org/cargo/reference/build-scripts.html) for building native code. More information can be found in the [build script guide](https://doc.rust-lang.org/cargo/reference/build-scripts.html).\n\n\n```toml\n[package]\n# ...\nbuild = \"build.rs\"\n```\n\nThe default is `\"build.rs\"`, which loads the script from a file named\n`build.rs` in the root of the package. Use `build = \"custom_build_name.rs\"` to\nspecify a path to a different file or `build = false` to disable automatic\ndetection of the build script.\n","anyOf":[{"type":"string"},{"type":"boolean"}],"x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/manifest.html#the-build-field"}}},"DebugLevel":{"title":"Debug Level","description":"The `debug` setting controls the [`-C debuginfo` flag](https://doc.rust-lang.org/rustc/codegen-options/index.html#debuginfo) which controls the\namount of debug information included in the compiled binary.","enum":[0,1,2,true,false],"anyOf":[{"type":"integer","format":"uint32","minimum":0.0},{"type":"boolean"}],"x-taplo":{"docs":{"enumValues":["\nNo debug info at all.","Line tables only.","Full debug info.","Full debug info.","\nNo debug info at all."]},"links":{"key":"https://doc.rust-lang.org/cargo/reference/profiles.html#debug"}}},"Dependency":{"title":"Dependency","anyOf":[{"$ref":"#/definitions/SemVerRequirement"},{"$ref":"#/definitions/DetailedDependency"}]},"DetailedDependency":{"title":"Detailed Dependency","type":"object","properties":{"branch":{"description":"Specify the Git branch to use in case of a [Git dependency](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#specifying-dependencies-from-git-repositories).","type":"string","x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#specifying-dependencies-from-git-repositories"}}},"default-features":{"description":"Use the default features of the dependency.","type":"boolean","x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#choosing-features"}}},"default_features":{"type":"boolean","x-taplo":{"hidden":true}},"features":{"description":"List of features to activate in the dependency.","type":"array","items":{"description":"List of features to activate in the dependency.","type":"string","x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#choosing-features"}}},"x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#choosing-features"}}},"git":{"description":"To depend on a library located in a `git` repository, the minimum information\nyou need to specify is the location of the repository with the `git` key:\n\n```toml\n[dependencies]\nrand = { git = \"https://github.com/rust-lang-nursery/rand\" }\n```\n\nCargo will fetch the `git` repository at this location then look for a\n`Cargo.toml` for the requested crate anywhere inside the `git` repository\n(not necessarily at the root - for example, specifying a member crate name\nof a workspace and setting `git` to the repository containing the workspace).\n\nSince we haven’t specified any other information, Cargo assumes that\nwe intend to use the latest commit on the main branch to build our package.\nYou can combine the `git` key with the `rev`, `tag`, or `branch` keys to\nspecify something else. Here's an example of specifying that you want to use\nthe latest commit on a branch named `next`:\n\n```toml\n[dependencies]\nrand = { git = \"https://github.com/rust-lang-nursery/rand\", branch = \"next\" }\n```\n\nSee [Git Authentication](https://doc.rust-lang.org/cargo/appendix/git-authentication.html) for help with git authentication for private repos.\n\n> **Note**: [crates.io](https://crates.io/) does not allow packages to be published with `git`\n> dependencies (`git` [dev-dependencies](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#development-dependencies) are ignored). See the [Multiple\n> locations](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#multiple-locations) section for a fallback alternative.\n","type":"string","x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#specifying-dependencies-from-git-repositories"}}},"optional":{"description":"Mark the dependency as optional.\n\nOptional dependencies can be activated through features.","type":"boolean","x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#choosing-features"}}},"package":{"description":"Specify the name of the package.\n\nWhen writing a `[dependencies]` section in `Cargo.toml` the key you write for a\ndependency typically matches up to the name of the crate you import from in the\ncode. For some projects, though, you may wish to reference the crate with a\ndifferent name in the code regardless of how it's published on crates.io. For\nexample you may wish to:\n\n* Avoid the need to `use foo as bar` in Rust source.\n* Depend on multiple versions of a crate.\n* Depend on crates with the same name from different registries.\n\nTo support this Cargo supports a `package` key in the `[dependencies]` section\nof which package should be depended on:\n\n```toml\n[package]\nname = \"mypackage\"\nversion = \"0.0.1\"\n\n[dependencies]\nfoo = \"0.1\"\nbar = { git = \"https://github.com/example/project\", package = \"foo\" }\nbaz = { version = \"0.1\", registry = \"custom\", package = \"foo\" }\n```\n\nIn this example, three crates are now available in your Rust code:\n\n```rust\nextern crate foo; // crates.io\nextern crate bar; // git repository\nextern crate baz; // registry `custom`\n```\n\nAll three of these crates have the package name of `foo` in their own\n`Cargo.toml`, so we're explicitly using the `package` key to inform Cargo that\nwe want the `foo` package even though we're calling it something else locally.\nThe `package` key, if not specified, defaults to the name of the dependency\nbeing requested.\n","type":"string","x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#renaming-dependencies-in-cargotoml"}}},"path":{"description":"Cargo supports **path dependencies** which are typically sub-crates that live within one repository.\nLet’s start off by making a new crate inside of our `hello_world` package:\n\n```console\n# inside of hello_world/\n$ cargo new hello_utils\n```\n\nThis will create a new folder `hello_utils` inside of which a `Cargo.toml` and\n`src` folder are ready to be configured. In order to tell Cargo about this, open\nup `hello_world/Cargo.toml` and add `hello_utils` to your dependencies:\n\n```toml\n[dependencies]\nhello_utils = { path = \"hello_utils\" }\n```\n\nThis tells Cargo that we depend on a crate called `hello_utils` which is found\nin the `hello_utils` folder (relative to the `Cargo.toml` it’s written in).","type":"string","x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#specifying-path-dependencies"}}},"public":{"type":"boolean","x-taplo":{"hidden":true}},"registry":{"description":"To specify a dependency from a registry other than [crates.io](https://crates.io), first the\nregistry must be configured in a `.cargo/config.toml` file. See the [registries\ndocumentation](https://doc.rust-lang.org/cargo/reference/registries.html) for more information. In the dependency, set the `registry` key\nto the name of the registry to use.\n\n```toml\n[dependencies]\nsome-crate = { version = \"1.0\", registry = \"my-registry\" }\n```\n\n> **Note**: [crates.io](https://crates.io) does not allow packages to be published with\n> dependencies on other registries.\n","type":"string","x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#specifying-dependencies-from-other-registries"}}},"registry-index":{"type":"string","x-taplo":{"hidden":true}},"rev":{"description":"Specify the Git revision to use in case of a [Git dependency](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#specifying-dependencies-from-git-repositories).","type":"string","x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#specifying-dependencies-from-git-repositories"}}},"tag":{"description":"Specify the Git tag to use in case of a [Git dependency](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#specifying-dependencies-from-git-repositories).","type":"string","x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#specifying-dependencies-from-git-repositories"}}},"version":{"$ref":"#/definitions/SemVerRequirement"}},"x-taplo":{"initFields":["version"]}},"Edition":{"title":"Edition","description":"The `edition` key affects which edition your package is compiled with. Cargo\nwill always generate packages via [`cargo new`](https://doc.rust-lang.org/cargo/commands/cargo-new.html) with the `edition` key set to the\nlatest edition. Setting the `edition` key in `[package]` will affect all\ntargets/crates in the package, including test suites, benchmarks, binaries,\nexamples, etc.","type":"string","enum":["2015","2018","2021"],"x-taplo":{"links":{"key":"https://doc.rust-lang.org/stable/edition-guide/introduction.html"}}},"Lto":{"title":"Lto","description":"The `lto` setting controls the [`-C lto` flag](https://doc.rust-lang.org/rustc/codegen-options/index.html#lto) which controls LLVM's [link time optimizations](https://llvm.org/docs/LinkTimeOptimization.html). LTO can produce better optimized code, using\nwhole-program analysis, at the cost of longer linking time.\n \nSee also the [`-C linker-plugin-lto`](https://doc.rust-lang.org/rustc/codegen-options/index.html#linker-plugin-lto) `rustc` flag for cross-language LTO.","enum":["fat","thin","off",true,false],"anyOf":[{"type":"string"},{"type":"boolean"}],"x-taplo":{"docs":{"enumValues":["Performs \"fat\" LTO which attempts to perform optimizations across all crates within the dependency graph.","Performs [\"thin\" LTO](http://blog.llvm.org/2016/06/thinlto-scalable-and-incremental-lto.html). This is similar to \"fat\", but takes\nsubstantially less time to run while still achieving performance gains\nsimilar to \"fat\".","Disables LTO.","Performs \"fat\" LTO which attempts to perform optimizations across all crates within the dependency graph.","Performs \"thin local LTO\" which performs \"thin\" LTO on the local\ncrate only across its [codegen units](https://doc.rust-lang.org/cargo/reference/profiles.html#codegen-units). No LTO is performed\nif codegen units is 1 or [opt-level](https://doc.rust-lang.org/cargo/reference/profiles.html#opt-level) is 0."]},"links":{"key":"https://doc.rust-lang.org/cargo/reference/profiles.html#lto"}}},"MetaBuild":{"title":"Meta Build","type":"array","items":{"type":"string"}},"OptLevel":{"title":"Optimization Level","description":"The `opt-level` setting controls the [`-C opt-level` flag](https://doc.rust-lang.org/rustc/codegen-options/index.html#opt-level) which controls the level\nof optimization. Higher optimization levels may produce faster runtime code at\nthe expense of longer compiler times. Higher levels may also change and\nrearrange the compiled code which may make it harder to use with a debugger.\n\nIt is recommended to experiment with different levels to find the right\nbalance for your project. There may be surprising results, such as level `3`\nbeing slower than `2`, or the `\"s\"` and `\"z\"` levels not being necessarily\nsmaller. You may also want to reevaluate your settings over time as newer\nversions of `rustc` changes optimization behavior.\n\nSee also [Profile Guided Optimization](https://doc.rust-lang.org/rustc/profile-guided-optimization.html) for more advanced optimization\ntechniques.","enum":[0,1,2,3,"s","z"],"anyOf":[{"type":"integer","format":"int32"},{"type":"string"}],"x-taplo":{"docs":{"enumValues":["No optimizations, also turns on [`cfg(debug_assertions)`](https://doc.rust-lang.org/cargo/reference/profiles.html#debug-assertions).","Basic optimizations.","Some optimizations.","All optimizations.","Optimize for binary size.","Optimize for binary size, but also turn off loop vectorization."]},"links":{"key":"https://doc.rust-lang.org/cargo/reference/profiles.html#opt-level"}}},"Package":{"title":"Package","description":"The only fields required by Cargo are [`name`](https://doc.rust-lang.org/cargo/reference/manifest.html#the-name-field) and\n[`version`](https://doc.rust-lang.org/cargo/reference/manifest.html#the-version-field). If publishing to a registry, the registry may\nrequire additional fields. See the notes below and [the publishing chapter](https://doc.rust-lang.org/cargo/reference/publishing.html) for requirements for publishing to [crates.io](https://crates.io/).","type":"object","required":["name","version"],"properties":{"authors":{"description":"The `authors` field lists people or organizations that are considered the\n\"authors\" of the package. The exact meaning is open to interpretation — it may\nlist the original or primary authors, current maintainers, or owners of the\npackage. These names will be listed on the crate's page on\n[crates.io](https://crates.io). An optional email address may be included within angled\nbrackets at the end of each author.\n\n> **Note**: [crates.io](https://crates.io) requires at least one author to be listed.","type":"array","items":{"description":"The `authors` field lists people or organizations that are considered the\n\"authors\" of the package. The exact meaning is open to interpretation — it may\nlist the original or primary authors, current maintainers, or owners of the\npackage. These names will be listed on the crate's page on\n[crates.io](https://crates.io). An optional email address may be included within angled\nbrackets at the end of each author.\n\n> **Note**: [crates.io](https://crates.io) requires at least one author to be listed.","type":"string","x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/manifest.html#the-authors-field"}}},"x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/manifest.html#the-authors-field"}}},"autobenches":{"description":"Disable automatic discovery of `bench` targets.\n\nDisabling automatic discovery should only be needed for specialized\nsituations. For example, if you have a library where you want a *module* named\n`bin`, this would present a problem because Cargo would usually attempt to\ncompile anything in the `bin` directory as an executable. Here is a sample\nlayout of this scenario:\n\n```\n├── Cargo.toml\n└── src\n ├── lib.rs\n └── bin\n └── mod.rs\n```\n","type":"boolean","x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/cargo-targets.html#target-auto-discovery"}}},"autobins":{"description":"Disable automatic discovery of `bin` targets.\n\nDisabling automatic discovery should only be needed for specialized\nsituations. For example, if you have a library where you want a *module* named\n`bin`, this would present a problem because Cargo would usually attempt to\ncompile anything in the `bin` directory as an executable. Here is a sample\nlayout of this scenario:\n\n```\n├── Cargo.toml\n└── src\n ├── lib.rs\n └── bin\n └── mod.rs\n```\n\nTo prevent Cargo from inferring `src/bin/mod.rs` as an executable, set\nthis to `false` to disable auto-discovery.","type":"boolean","x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/cargo-targets.html#target-auto-discovery"}}},"autoexamples":{"description":"Disable automatic discovery of `example` targets.\n\nDisabling automatic discovery should only be needed for specialized\nsituations. For example, if you have a library where you want a *module* named\n`bin`, this would present a problem because Cargo would usually attempt to\ncompile anything in the `bin` directory as an executable. Here is a sample\nlayout of this scenario:\n\n```\n├── Cargo.toml\n└── src\n ├── lib.rs\n └── bin\n └── mod.rs\n```\n","type":"boolean","x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/cargo-targets.html#target-auto-discovery"}}},"autotests":{"description":"Disable automatic discovery of `test` targets.\n\nDisabling automatic discovery should only be needed for specialized\nsituations. For example, if you have a library where you want a *module* named\n`bin`, this would present a problem because Cargo would usually attempt to\ncompile anything in the `bin` directory as an executable. Here is a sample\nlayout of this scenario:\n\n```\n├── Cargo.toml\n└── src\n ├── lib.rs\n └── bin\n └── mod.rs\n```\n","type":"boolean","x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/cargo-targets.html#target-auto-discovery"}}},"build":{"$ref":"#/definitions/Build"},"categories":{"description":"The `categories` field is an array of strings of the categories this package\nbelongs to.\n\n```toml\ncategories = [\"command-line-utilities\", \"development-tools::cargo-plugins\"]\n```\n\n> **Note**: [crates.io](https://crates.io) has a maximum of 5 categories. Each category should\n> match one of the strings available at https://crates.io/category_slugs, and\n> must match exactly.","type":"array","items":{"description":"The `categories` field is an array of strings of the categories this package\nbelongs to.\n\n```toml\ncategories = [\"command-line-utilities\", \"development-tools::cargo-plugins\"]\n```\n\n> **Note**: [crates.io](https://crates.io) has a maximum of 5 categories. Each category should\n> match one of the strings available at https://crates.io/category_slugs, and\n> must match exactly.","type":"string","x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/manifest.html#the-categories-field"}}},"x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/manifest.html#the-categories-field"}}},"default-run":{"description":"The `default-run` field in the `[package]` section of the manifest can be used\nto specify a default binary picked by [`cargo run`](https://doc.rust-lang.org/cargo/commands/cargo-run.html). For example, when there is\nboth `src/bin/a.rs` and `src/bin/b.rs`:\n\n```toml\n[package]\ndefault-run = \"a\"\n```","type":"string","x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/manifest.html#the-default-run-field"}}},"description":{"description":"The description is a short blurb about the package. [crates.io](https://crates.io) will display\nthis with your package. This should be plain text (not Markdown).\n\n```toml\n[package]\n# ...\ndescription = \"A short description of my package\"\n```\n\n> **Note**: [crates.io](https://crates.io) requires the `description` to be set.","type":"string","x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/manifest.html#the-description-field"}}},"documentation":{"description":"\nThe `documentation` field specifies a URL to a website hosting the crate's\ndocumentation. If no URL is specified in the manifest file, [crates.io](https://crates.io) will\nautomatically link your crate to the corresponding [docs.rs](https://docs.rs) page.\n\n```toml\n[package]\n# ...\ndocumentation = \"https://docs.rs/bitflags\"\n```\n","type":"string","x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/manifest.html#the-documentation-field"}}},"edition":{"$ref":"#/definitions/Edition"},"exclude":{"description":"You can explicitly specify that a set of file patterns should be ignored or\nincluded for the purposes of packaging. The patterns specified in the\n`exclude` field identify a set of files that are not included, and the\npatterns in `include` specify files that are explicitly included.\n\nThe patterns should be [gitignore](https://git-scm.com/docs/gitignore)-style patterns. Briefly:\n\n- `foo` matches any file or directory with the name `foo` anywhere in the\n package. This is equivalent to the pattern `**/foo`.\n- `/foo` matches any file or directory with the name `foo` only in the root of\n the package.\n- `foo/` matches any *directory* with the name `foo` anywhere in the package.\n- Common glob patterns like `*`, `?`, and `[]` are supported:\n - `*` matches zero or more characters except `/`. For example, `*.html`\n matches any file or directory with the `.html` extension anywhere in the\n package.\n - `?` matches any character except `/`. For example, `foo?` matches `food`,\n but not `foo`.\n - `[]` allows for matching a range of characters. For example, `[ab]`\n matches either `a` or `b`. `[a-z]` matches letters a through z.\n- `**/` prefix matches in any directory. For example, `**/foo/bar` matches the\n file or directory `bar` anywhere that is directly under directory `foo`.\n- `/**` suffix matches everything inside. For example, `foo/**` matches all\n files inside directory `foo`, including all files in subdirectories below\n `foo`.\n- `/**/` matches zero or more directories. For example, `a/**/b` matches\n `a/b`, `a/x/b`, `a/x/y/b`, and so on.\n- `!` prefix negates a pattern. For example, a pattern of `src/**.rs` and\n `!foo.rs` would match all files with the `.rs` extension inside the `src`\n directory, except for any file named `foo.rs`.\n\nIf git is being used for a package, the `exclude` field will be seeded with\nthe `gitignore` settings from the repository.\n\n```toml\n[package]\n# ...\nexclude = [\"build/**/*.o\", \"doc/**/*.html\"]\n```\n\n```toml\n[package]\n# ...\ninclude = [\"src/**/*\", \"Cargo.toml\"]\n```\n\nThe options are mutually exclusive: setting `include` will override an\n`exclude`. Note that `include` must be an exhaustive list of files as otherwise\nnecessary source files may not be included. The package's `Cargo.toml` is\nautomatically included.\n\nThe include/exclude list is also used for change tracking in some situations.\nFor targets built with `rustdoc`, it is used to determine the list of files to\ntrack to determine if the target should be rebuilt. If the package has a\n[build script](https://doc.rust-lang.org/cargo/reference/build-scripts.html) that does not emit any `rerun-if-*` directives, then the\ninclude/exclude list is used for tracking if the build script should be re-run\nif any of those files change.","type":"array","items":{"description":"You can explicitly specify that a set of file patterns should be ignored or\nincluded for the purposes of packaging. The patterns specified in the\n`exclude` field identify a set of files that are not included, and the\npatterns in `include` specify files that are explicitly included.\n\nThe patterns should be [gitignore](https://git-scm.com/docs/gitignore)-style patterns. Briefly:\n\n- `foo` matches any file or directory with the name `foo` anywhere in the\n package. This is equivalent to the pattern `**/foo`.\n- `/foo` matches any file or directory with the name `foo` only in the root of\n the package.\n- `foo/` matches any *directory* with the name `foo` anywhere in the package.\n- Common glob patterns like `*`, `?`, and `[]` are supported:\n - `*` matches zero or more characters except `/`. For example, `*.html`\n matches any file or directory with the `.html` extension anywhere in the\n package.\n - `?` matches any character except `/`. For example, `foo?` matches `food`,\n but not `foo`.\n - `[]` allows for matching a range of characters. For example, `[ab]`\n matches either `a` or `b`. `[a-z]` matches letters a through z.\n- `**/` prefix matches in any directory. For example, `**/foo/bar` matches the\n file or directory `bar` anywhere that is directly under directory `foo`.\n- `/**` suffix matches everything inside. For example, `foo/**` matches all\n files inside directory `foo`, including all files in subdirectories below\n `foo`.\n- `/**/` matches zero or more directories. For example, `a/**/b` matches\n `a/b`, `a/x/b`, `a/x/y/b`, and so on.\n- `!` prefix negates a pattern. For example, a pattern of `src/**.rs` and\n `!foo.rs` would match all files with the `.rs` extension inside the `src`\n directory, except for any file named `foo.rs`.\n\nIf git is being used for a package, the `exclude` field will be seeded with\nthe `gitignore` settings from the repository.\n\n```toml\n[package]\n# ...\nexclude = [\"build/**/*.o\", \"doc/**/*.html\"]\n```\n\n```toml\n[package]\n# ...\ninclude = [\"src/**/*\", \"Cargo.toml\"]\n```\n\nThe options are mutually exclusive: setting `include` will override an\n`exclude`. Note that `include` must be an exhaustive list of files as otherwise\nnecessary source files may not be included. The package's `Cargo.toml` is\nautomatically included.\n\nThe include/exclude list is also used for change tracking in some situations.\nFor targets built with `rustdoc`, it is used to determine the list of files to\ntrack to determine if the target should be rebuilt. If the package has a\n[build script](https://doc.rust-lang.org/cargo/reference/build-scripts.html) that does not emit any `rerun-if-*` directives, then the\ninclude/exclude list is used for tracking if the build script should be re-run\nif any of those files change.","type":"string","x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/manifest.html#the-exclude-and-include-fields"}}},"x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/manifest.html#the-exclude-and-include-fields"}}},"homepage":{"description":"The `homepage` field should be a URL to a site that is the home page for your\npackage.\n\n```toml\n[package]\n# ...\nhomepage = \"https://serde.rs/\"\n```","type":"string","x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/manifest.html#the-homepage-field"}}},"im-a-teapot":{"description":"Sets whether the current package is a teapot or something else that is not capable of brewing tea.","type":"boolean","x-taplo":{"hidden":true}},"include":{"description":"You can explicitly specify that a set of file patterns should be ignored or\nincluded for the purposes of packaging. The patterns specified in the\n`exclude` field identify a set of files that are not included, and the\npatterns in `include` specify files that are explicitly included.\n\nThe patterns should be [gitignore](https://git-scm.com/docs/gitignore)-style patterns. Briefly:\n\n- `foo` matches any file or directory with the name `foo` anywhere in the\n package. This is equivalent to the pattern `**/foo`.\n- `/foo` matches any file or directory with the name `foo` only in the root of\n the package.\n- `foo/` matches any *directory* with the name `foo` anywhere in the package.\n- Common glob patterns like `*`, `?`, and `[]` are supported:\n - `*` matches zero or more characters except `/`. For example, `*.html`\n matches any file or directory with the `.html` extension anywhere in the\n package.\n - `?` matches any character except `/`. For example, `foo?` matches `food`,\n but not `foo`.\n - `[]` allows for matching a range of characters. For example, `[ab]`\n matches either `a` or `b`. `[a-z]` matches letters a through z.\n- `**/` prefix matches in any directory. For example, `**/foo/bar` matches the\n file or directory `bar` anywhere that is directly under directory `foo`.\n- `/**` suffix matches everything inside. For example, `foo/**` matches all\n files inside directory `foo`, including all files in subdirectories below\n `foo`.\n- `/**/` matches zero or more directories. For example, `a/**/b` matches\n `a/b`, `a/x/b`, `a/x/y/b`, and so on.\n- `!` prefix negates a pattern. For example, a pattern of `src/**.rs` and\n `!foo.rs` would match all files with the `.rs` extension inside the `src`\n directory, except for any file named `foo.rs`.\n\nIf git is being used for a package, the `exclude` field will be seeded with\nthe `gitignore` settings from the repository.\n\n```toml\n[package]\n# ...\nexclude = [\"build/**/*.o\", \"doc/**/*.html\"]\n```\n\n```toml\n[package]\n# ...\ninclude = [\"src/**/*\", \"Cargo.toml\"]\n```\n\nThe options are mutually exclusive: setting `include` will override an\n`exclude`. Note that `include` must be an exhaustive list of files as otherwise\nnecessary source files may not be included. The package's `Cargo.toml` is\nautomatically included.\n\nThe include/exclude list is also used for change tracking in some situations.\nFor targets built with `rustdoc`, it is used to determine the list of files to\ntrack to determine if the target should be rebuilt. If the package has a\n[build script](https://doc.rust-lang.org/cargo/reference/build-scripts.html) that does not emit any `rerun-if-*` directives, then the\ninclude/exclude list is used for tracking if the build script should be re-run\nif any of those files change.","type":"array","items":{"description":"You can explicitly specify that a set of file patterns should be ignored or\nincluded for the purposes of packaging. The patterns specified in the\n`exclude` field identify a set of files that are not included, and the\npatterns in `include` specify files that are explicitly included.\n\nThe patterns should be [gitignore](https://git-scm.com/docs/gitignore)-style patterns. Briefly:\n\n- `foo` matches any file or directory with the name `foo` anywhere in the\n package. This is equivalent to the pattern `**/foo`.\n- `/foo` matches any file or directory with the name `foo` only in the root of\n the package.\n- `foo/` matches any *directory* with the name `foo` anywhere in the package.\n- Common glob patterns like `*`, `?`, and `[]` are supported:\n - `*` matches zero or more characters except `/`. For example, `*.html`\n matches any file or directory with the `.html` extension anywhere in the\n package.\n - `?` matches any character except `/`. For example, `foo?` matches `food`,\n but not `foo`.\n - `[]` allows for matching a range of characters. For example, `[ab]`\n matches either `a` or `b`. `[a-z]` matches letters a through z.\n- `**/` prefix matches in any directory. For example, `**/foo/bar` matches the\n file or directory `bar` anywhere that is directly under directory `foo`.\n- `/**` suffix matches everything inside. For example, `foo/**` matches all\n files inside directory `foo`, including all files in subdirectories below\n `foo`.\n- `/**/` matches zero or more directories. For example, `a/**/b` matches\n `a/b`, `a/x/b`, `a/x/y/b`, and so on.\n- `!` prefix negates a pattern. For example, a pattern of `src/**.rs` and\n `!foo.rs` would match all files with the `.rs` extension inside the `src`\n directory, except for any file named `foo.rs`.\n\nIf git is being used for a package, the `exclude` field will be seeded with\nthe `gitignore` settings from the repository.\n\n```toml\n[package]\n# ...\nexclude = [\"build/**/*.o\", \"doc/**/*.html\"]\n```\n\n```toml\n[package]\n# ...\ninclude = [\"src/**/*\", \"Cargo.toml\"]\n```\n\nThe options are mutually exclusive: setting `include` will override an\n`exclude`. Note that `include` must be an exhaustive list of files as otherwise\nnecessary source files may not be included. The package's `Cargo.toml` is\nautomatically included.\n\nThe include/exclude list is also used for change tracking in some situations.\nFor targets built with `rustdoc`, it is used to determine the list of files to\ntrack to determine if the target should be rebuilt. If the package has a\n[build script](https://doc.rust-lang.org/cargo/reference/build-scripts.html) that does not emit any `rerun-if-*` directives, then the\ninclude/exclude list is used for tracking if the build script should be re-run\nif any of those files change.","type":"string","x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/manifest.html#the-exclude-and-include-fields"}}},"x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/manifest.html#the-exclude-and-include-fields"}}},"keywords":{"description":"The `keywords` field is an array of strings that describe this package. This\ncan help when searching for the package on a registry, and you may choose any\nwords that would help someone find this crate.\n\n```toml\n[package]\n# ...\nkeywords = [\"gamedev\", \"graphics\"]\n```\n\n> **Note**: [crates.io](https://crates.io) has a maximum of 5 keywords. Each keyword must be\n> ASCII text, start with a letter, and only contain letters, numbers, `_` or\n> `-`, and have at most 20 characters.","type":"array","items":{"description":"The `keywords` field is an array of strings that describe this package. This\ncan help when searching for the package on a registry, and you may choose any\nwords that would help someone find this crate.\n\n```toml\n[package]\n# ...\nkeywords = [\"gamedev\", \"graphics\"]\n```\n\n> **Note**: [crates.io](https://crates.io) has a maximum of 5 keywords. Each keyword must be\n> ASCII text, start with a letter, and only contain letters, numbers, `_` or\n> `-`, and have at most 20 characters.","type":"string","x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/manifest.html#the-keywords-field"}}},"x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/manifest.html#the-keywords-field"}}},"license":{"description":"The `license` field contains the name of the software license that the package\nis released under.\n\n[crates.io](https://crates.io/) interprets the `license` field as an [SPDX 2.1 license\nexpression](https://spdx.org/spdx-specification-21-web-version#h.jxpfx0ykyb60). The name must be a known license\nfrom the [SPDX license list 3.6](https://github.com/spdx/license-list-data/tree/v3.6). Parentheses are not\ncurrently supported. See the [SPDX site](https://spdx.org/license-list) for more information.\n\nSPDX license expressions support AND and OR operators to combine multiple\nlicenses.\n\n```toml\n[package]\n# ...\nlicense = \"MIT OR Apache-2.0\"\n```\n\nUsing `OR` indicates the user may choose either license. Using `AND` indicates\nthe user must comply with both licenses simultaneously. The `WITH` operator\nindicates a license with a special exception. Some examples:\n\n* `MIT OR Apache-2.0`\n* `LGPL-2.1 AND MIT AND BSD-2-Clause`\n* `GPL-2.0+ WITH Bison-exception-2.2`\n\nIf a package is using a nonstandard license, then the `license-file` field may\nbe specified in lieu of the `license` field.","type":"string","x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/manifest.html#the-license-and-license-file-fields"}}},"license-file":{"description":"The `license-file` field contains the path to a file\ncontaining the text of the license (relative to this `Cargo.toml`).\n\n```toml\n[package]\n# ...\nlicense-file = \"LICENSE.txt\"\n```\n\n> **Note**: [crates.io](https://crates.io) requires either `license` or `license-file` to be set.","type":"string","x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/manifest.html#the-license-and-license-file-fields"}}},"links":{"description":"The `links` field specifies the name of a native library that is being linked\nto. More information can be found in the [`links`](https://doc.rust-lang.org/cargo/reference/build-scripts.html#the-links-manifest-key) section of the build\nscript guide.\n\n```toml\n[package]\n# ...\nlinks = \"foo\"\n```","type":"string","x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/manifest.html#the-links-field"}}},"metabuild":{"$ref":"#/definitions/MetaBuild","x-taplo":{"hidden":true}},"metadata":{"description":"Cargo by default will warn about unused keys in `Cargo.toml` to assist in\ndetecting typos and such. The `package.metadata` table, however, is completely\nignored by Cargo and will not be warned about. This section can be used for\ntools which would like to store package configuration in `Cargo.toml`. For\nexample:\n\n```toml\n[package]\nname = \"...\"\n# ...\n\n# Metadata used when generating an Android APK, for example.\n[package.metadata.android]\npackage-name = \"my-awesome-android-app\"\nassets = \"path/to/static\"\n```\n","type":"object","additionalProperties":true,"x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/manifest.html#the-metadata-table"}}},"name":{"description":"The package name is an identifier used to refer to the package. It is used\nwhen listed as a dependency in another package, and as the default name of\ninferred lib and bin targets.\n\nThe name must use only [alphanumeric](https://doc.rust-lang.org/std/primitive.char.html#method.is_alphanumeric) characters or `-` or `_`, and cannot be empty.\nNote that [`cargo new`](https://doc.rust-lang.org/cargo/commands/cargo-new.html) and [`cargo init`](https://doc.rust-lang.org/cargo/commands/cargo-init.html) impose some additional restrictions on\nthe package name, such as enforcing that it is a valid Rust identifier and not\na keyword. [crates.io](https://crates.io) imposes even more restrictions, such as\nenforcing only ASCII characters, not a reserved name, not a special Windows\nname such as \"nul\", is not too long, etc.","type":"string","x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/manifest.html#the-name-field"}}},"namespaced-features":{"type":"boolean","x-taplo":{"hidden":true}},"publish":{"$ref":"#/definitions/Publish"},"publish-lockfile":{"type":"boolean","x-taplo":{"hidden":true}},"readme":{"description":"The `readme` field should be the path to a file in the package root (relative\nto this `Cargo.toml`) that contains general information about the package.\nThis file will be transferred to the registry when you publish. [crates.io](https://crates.io)\nwill interpret it as Markdown and render it on the crate's page.\n\n```toml\n[package]\n# ...\nreadme = \"README.md\"\n```\n\nIf no value is specified for this field, and a file named `README.md`,\n`README.txt` or `README` exists in the package root, then the name of that\nfile will be used. You can suppress this behavior by setting this field to\n`false`. If the field is set to `true`, a default value of `README.md` will\nbe assumed.\n","$ref":"#/definitions/Readme","x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/manifest.html#the-readme-field"}}},"repository":{"description":"The `repository` field should be a URL to the source repository for your\npackage.\n\n```toml\n[package]\n# ...\nrepository = \"https://github.com/rust-lang/cargo/\"\n```","type":"string","x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/manifest.html#the-repository-field"}}},"resolver":{"$ref":"#/definitions/Resolver"},"rust-version":{"description":"The `rust-version` field is an optional key that tells cargo what version of the\nRust language and compiler your package can be compiled with. If the currently\nselected version of the Rust compiler is older than the stated version, cargo\nwill exit with an error, telling the user what version is required.\n\nThe first version of Cargo that supports this field was released with Rust 1.56.0.\nIn older releases, the field will be ignored, and Cargo will display a warning.\n\n```toml\n[package]\n# ...\nrust-version = \"1.56\"\n```\n\nThe Rust version must be a bare version number with two or three components; it\ncannot include semver operators or pre-release identifiers. Compiler pre-release\nidentifiers such as -nightly will be ignored while checking the Rust version.\nThe `rust-version` must be equal to or newer than the version that first\nintroduced the configured `edition`.\n\nThe `rust-version` may be ignored using the `--ignore-rust-version` option.\n\nSetting the `rust-version` key in `[package]` will affect all targets/crates in\nthe package, including test suites, benchmarks, binaries, examples, etc.","type":"string","x-taplo":{"links":{"key":"https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-rust-version-field"}}},"version":{"$ref":"#/definitions/SemVer"},"workspace":{"description":"The `workspace` field can be used to configure the workspace that this package\nwill be a member of. If not specified this will be inferred as the first\nCargo.toml with `[workspace]` upwards in the filesystem. Setting this is\nuseful if the member is not inside a subdirectory of the workspace root.\n\n```toml\n[package]\n# ...\nworkspace = \"path/to/workspace/root\"\n```\n\nThis field cannot be specified if the manifest already has a `[workspace]`\ntable defined. That is, a crate cannot both be a root crate in a workspace\n(contain `[workspace]`) and also be a member crate of another workspace\n(contain `package.workspace`).\n\nFor more information, see the [workspaces chapter](https://doc.rust-lang.org/cargo/reference/workspaces.html).","type":"string","x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/manifest.html#the-workspace-field"}}}},"x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/manifest.html#the-package-section"}}},"Panic":{"title":"Panic","description":"The `panic` setting controls the [`-C panic` flag](https://doc.rust-lang.org/rustc/codegen-options/index.html#panic) which controls which panic\nstrategy to use.\n\nWhen set to `\"unwind\"`, the actual value depends on the default of the target\nplatform. For example, the NVPTX platform does not support unwinding, so it\nalways uses `\"abort\"`.\n\nTests, benchmarks, build scripts, and proc macros ignore the `panic` setting.\nThe `rustc` test harness currently requires `unwind` behavior. See the\n[`panic-abort-tests`](https://doc.rust-lang.org/cargo/reference/unstable.html#panic-abort-tests) unstable flag which enables `abort` behavior.\n\nAdditionally, when using the `abort` strategy and building a test, all of the\ndependencies will also be forced to built with the `unwind` strategy.","type":"string","enum":["unwind","abort"],"x-taplo":{"docs":{"enumValues":["Unwind the stack upon panic.","Terminate the process upon panic."]},"links":{"key":"https://doc.rust-lang.org/cargo/reference/profiles.html#panic"}}},"Platform":{"title":"Platform","type":"object","properties":{"build-dependencies":{"description":"You can depend on other Cargo-based crates for use in your build scripts.\nDependencies are declared through the `build-dependencies` section of the\nmanifest:\n\n```toml\n[build-dependencies]\ncc = \"1.0.3\"\n```\n\nThe build script **does not** have access to the dependencies listed\nin the `dependencies` or `dev-dependencies` section. Build\ndependencies will likewise not be available to the package itself\nunless listed under the `dependencies` section as well. A package\nitself and its build script are built separately, so their\ndependencies need not coincide. Cargo is kept simpler and cleaner by\nusing independent dependencies for independent purposes.","type":"object","additionalProperties":{"$ref":"#/definitions/Dependency"},"x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#build-dependencies"}}},"build_dependencies":{"type":"object","additionalProperties":{"$ref":"#/definitions/Dependency"},"x-taplo":{"hidden":true}},"dependencies":{"description":"Cargo is configured to look for dependencies on [crates.io](https://crates.io) by default. Only\nthe name and a version string are required in this case. In [the cargo\nguide](https://doc.rust-lang.org/cargo/guide/index.html), we specified a dependency on the `time` crate:\n\n```toml\n[dependencies]\ntime = \"0.1.12\"\n```\n\nThe string `\"0.1.12\"` is a [semver](https://github.com/steveklabnik/semver#requirements) version requirement. Since this\nstring does not have any operators in it, it is interpreted the same way as\nif we had specified `\"^0.1.12\"`, which is called a caret requirement.\n\nA dependency can also be defined by a table with additional options:\n\n```toml\n[dependencies]\ntime = { path = \"../time\", version = \"0.1.12\" }\n```","type":"object","additionalProperties":{"$ref":"#/definitions/Dependency"},"x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html"}}},"dev-dependencies":{"description":"The format of `[dev-dependencies]` is equivalent to `[dependencies]`:\n\n```toml\n[dev-dependencies]\ntempdir = \"0.3\"\n```\n\nDev-dependencies are not used when compiling\na package for building, but are used for compiling tests, examples, and\nbenchmarks.\n\nThese dependencies are *not* propagated to other packages which depend on this\npackage.\n\nYou can also have target-specific development dependencies by using\n`dev-dependencies` in the target section header instead of `dependencies`. For\nexample:\n\n```toml\n[target.'cfg(unix)'.dev-dependencies]\nmio = \"0.0.1\"\n```\n\n> **Note**: When a package is published, only dev-dependencies that specify a\n> `version` will be included in the published crate. For most use cases,\n> dev-dependencies are not needed when published, though some users (like OS\n> packagers) may want to run tests within a crate, so providing a `version` if\n> possible can still be beneficial.\n","type":"object","additionalProperties":{"$ref":"#/definitions/Dependency"},"x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#development-dependencies"}}},"dev_dependencies":{"type":"object","additionalProperties":{"$ref":"#/definitions/Dependency"},"x-taplo":{"hidden":true}}}},"Profile":{"title":"Profile","type":"object","properties":{"build-override":{"$ref":"#/definitions/Profile","x-taplo":{"docs":{"main":"Profile settings can be overridden for specific packages and build-time\ncrates. To override the settings for a specific package, use the `package`\ntable to change the settings for the named package:\n\n```toml\n# The `foo` package will use the -Copt-level=3 flag.\n[profile.dev.package.foo]\nopt-level = 3\n```\n\nThe package name is actually a [Package ID Spec](https://doc.rust-lang.org/cargo/reference/pkgid-spec.html), so you can\ntarget individual versions of a package with syntax such as\n`[profile.dev.package.\"foo:2.1.0\"]`.\n\nTo override the settings for all dependencies (but not any workspace member),\nuse the `\"*\"` package name:\n\n```toml\n# Set the default for dependencies.\n[profile.dev.package.\"*\"]\nopt-level = 2\n```\n\nTo override the settings for build scripts, proc macros, and their\ndependencies, use the `build-override` table:\n\n```toml\n# Set the settings for build scripts and proc-macros.\n[profile.dev.build-override]\nopt-level = 3\n```\n\n> Note: When a dependency is both a normal dependency and a build dependency,\n> Cargo will try to only build it once when `--target` is not specified. When\n> using `build-override`, the dependency may need to be built twice, once as a\n> normal dependency and once with the overridden build settings. This may\n> increase initial build times.\n"},"links":{"key":"https://doc.rust-lang.org/cargo/reference/profiles.html#overrides"}}},"codegen-units":{"description":"The `codegen-units` setting controls the [`-C codegen-units` flag](https://doc.rust-lang.org/rustc/codegen-options/index.html#codegen-units) which\ncontrols how many \"code generation units\" a crate will be split into. More\ncode generation units allows more of a crate to be processed in parallel\npossibly reducing compile time, but may produce slower code.\n\nThis option takes an integer greater than 0.\n\nThe default is 256 for [incremental](https://doc.rust-lang.org/cargo/reference/profiles.html#incremental) builds, and 16 for\nnon-incremental builds.","type":"integer","format":"uint32","minimum":0.0,"x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/profiles.html#codegen-units"}}},"debug":{"$ref":"#/definitions/DebugLevel"},"debug-assertions":{"description":"The `debug-assertions` setting controls the [`-C debug-assertions` flag](https://doc.rust-lang.org/rustc/codegen-options/index.html#debug-assertions) which\nturns `cfg(debug_assertions)` [conditional compilation](https://doc.rust-lang.org/reference/conditional-compilation.html#debug_assertions) on or off. Debug\nassertions are intended to include runtime validation which is only available\nin debug/development builds. These may be things that are too expensive or\notherwise undesirable in a release build. Debug assertions enables the\n[`debug_assert!` macro](https://doc.rust-lang.org/std/macro.debug_assert.html) in the standard library.","type":"boolean","x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/profiles.html#debug-assertions"}}},"dir-name":{"type":"string","x-taplo":{"hidden":true}},"incremental":{"description":"The `incremental` setting controls the [`-C incremental` flag](https://doc.rust-lang.org/rustc/codegen-options/index.html#incremental) which controls\nwhether or not incremental compilation is enabled. Incremental compilation\ncauses `rustc` to to save additional information to disk which will be reused\nwhen recompiling the crate, improving re-compile times. The additional\ninformation is stored in the `target` directory.\n\nThe valid options are:\n\n* `true`: enabled\n* `false`: disabled\n\nIncremental compilation is only used for workspace members and \"path\"\ndependencies.\n\nThe incremental value can be overridden globally with the `CARGO_INCREMENTAL`\n[environment variable](https://doc.rust-lang.org/cargo/reference/environment-variables.html) or the [`build.incremental`](https://doc.rust-lang.org/cargo/reference/config.html#buildincremental) config variable.","type":"boolean","x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/profiles.html#incremental"}}},"inherits":{"type":"string","x-taplo":{"hidden":true}},"lto":{"$ref":"#/definitions/Lto"},"opt-level":{"$ref":"#/definitions/OptLevel"},"overflow-checks":{"description":"The `overflow-checks` setting controls the [`-C overflow-checks` flag](https://doc.rust-lang.org/rustc/codegen-options/index.html#overflow-checks) which\ncontrols the behavior of [runtime integer overflow](https://doc.rust-lang.org/reference/expressions/operator-expr.html#overflow). When overflow-checks are\nenabled, a panic will occur on overflow.","type":"boolean","x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/profiles.html#overflow-checks"}}},"package":{"description":"Package-specific overrides.\n\nThe package name is a [Package ID Spec](https://doc.rust-lang.org/cargo/reference/pkgid-spec.html), so you can\ntarget individual versions of a package with syntax such as `[profile.dev.package.\"foo:2.1.0\"]`.","type":"object","additionalProperties":{"$ref":"#/definitions/Profile"},"x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/profiles.html#overrides"}}},"panic":{"$ref":"#/definitions/Panic"},"rpath":{"description":"The `rpath` setting controls the [`-C rpath` flag](https://doc.rust-lang.org/rustc/codegen-options/index.html#rpath) which controls\nwhether or not [`rpath`](https://en.wikipedia.org/wiki/Rpath) is enabled.","type":"boolean","x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/profiles.html#rpath"}}}}},"Profiles":{"title":"Profiles","description":"Profiles provide a way to alter the compiler settings, influencing things like optimizations and debugging symbols.\n\nCargo has 4 built-in profiles: dev, release, test, and bench. It automatically chooses the profile based on which command is being run, the package and target that is being built, and command-line flags like --release.","type":"object","properties":{"bench":{"$ref":"#/definitions/Profile","x-taplo":{"docs":{"main":"`bench` Cargo built-in profile."},"links":{"key":"https://doc.rust-lang.org/cargo/reference/profiles.html#bench"}}},"dev":{"$ref":"#/definitions/Profile","x-taplo":{"docs":{"main":"`dev` Cargo built-in profile."},"links":{"key":"https://doc.rust-lang.org/cargo/reference/profiles.html#dev"}}},"release":{"$ref":"#/definitions/Profile","x-taplo":{"docs":{"main":"`release` Cargo built-in profile."},"links":{"key":"https://doc.rust-lang.org/cargo/reference/profiles.html#release"}}},"test":{"$ref":"#/definitions/Profile","x-taplo":{"docs":{"main":"`test` Cargo built-in profile."},"links":{"key":"https://doc.rust-lang.org/cargo/reference/profiles.html#test"}}}},"additionalProperties":{"$ref":"#/definitions/Profile"},"x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/profiles.html"}}},"Publish":{"title":"Publish","description":"The `publish` field can be used to prevent a package from being published to a package registry (like *crates.io*) by mistake, for instance to keep a package\nprivate in a company.\n\n```toml\n[package]\n# ...\npublish = false\n```\n\nThe value may also be an array of strings which are registry names that are\nallowed to be published to.\n\n```toml\n[package]\n# ...\npublish = [\"some-registry-name\"]\n```","anyOf":[{"type":"array","items":{"type":"string"}},{"type":"boolean"}],"x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/manifest.html#the-publish-field"}}},"Readme":{"title":"Readme","description":"The `readme` field should be the path to a file in the package root (relative\nto this `Cargo.toml`) that contains general information about the package.\nThis file will be transferred to the registry when you publish. [crates.io](https://crates.io)\nwill interpret it as Markdown and render it on the crate's page.\n\n```toml\n[package]\n# ...\nreadme = \"README.md\"\n```\n\nIf no value is specified for this field, and a file named `README.md`,\n`README.txt` or `README` exists in the package root, then the name of that\nfile will be used. You can suppress this behavior by setting this field to\n`false`. If the field is set to `true`, a default value of `README.md` will\nbe assumed.\n","anyOf":[{"type":"string"},{"type":"boolean"}],"x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/manifest.html#the-readme-field"}}},"Resolver":{"title":"Resolver","description":"A different feature resolver algorithm can be used by specifying the resolver version in Cargo.toml like this:\n\n[package]\nname = \"my-package\"\nversion = \"1.0.0\"\nresolver = \"2\"\n\nThe version \"1\" resolver is the original resolver that shipped with Cargo up to version 1.50. The default is \"2\" if the root package specifies edition = \"2021\" or a newer edition. Otherwise the default is \"1\".\n\nThe version \"2\" resolver introduces changes in feature unification. See the features chapter for more details.\n\nThe resolver is a global option that affects the entire workspace. The resolver version in dependencies is ignored, only the value in the top-level package will be used. If using a virtual workspace, the version should be specified in the [workspace] table, for example:\n\n[workspace]\nmembers = [\"member1\", \"member2\"]\nresolver = \"2\"","type":"string","enum":["1","2"],"x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions"}}},"SemVer":{"title":"Semantic Version","description":"Cargo bakes in the concept of [Semantic Versioning](https://semver.org/), so make sure you follow some basic rules:\n\n* Before you reach 1.0.0, anything goes, but if you make breaking changes,\n increment the minor version. In Rust, breaking changes include adding fields to\n structs or variants to enums.\n* After 1.0.0, only make breaking changes when you increment the major version.\n Don’t break the build.\n* After 1.0.0, don’t add any new public API (no new `pub` anything) in patch-level\n versions. Always increment the minor version if you add any new `pub` structs,\n traits, fields, types, functions, methods or anything else.\n* Use version numbers with three numeric parts such as 1.0.0 rather than 1.0.","default":"0.1.0","type":"string","pattern":"^\\s*(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?\\s*$","x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/manifest.html#the-version-field"}}},"SemVerRequirement":{"title":"Semantic Version Requirement","description":"The [version requirement](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html) of the target dependency.","default":"*","type":"string","x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html"}}},"Target":{"title":"Target","type":"object","properties":{"bench":{"description":"The `bench` field indicates whether or not the target is benchmarked by\ndefault by [`cargo bench`](https://doc.rust-lang.org/cargo/commands/cargo-bench.html). The default is `true` for lib, bins, and\nbenchmarks.","type":"boolean","x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-bench-field"}}},"crate-type":{"description":"The `crate-type` field defines the [crate types](https://doc.rust-lang.org/reference/linkage.html) that will be generated by the\ntarget. It is an array of strings, allowing you to specify multiple crate\ntypes for a single target. This can only be specified for libraries and\nexamples. Binaries, tests, and benchmarks are always the \"bin\" crate type.\n\nThe available options are `bin`, `lib`, `rlib`, `dylib`, `cdylib`,\n`staticlib`, and `proc-macro`. You can read more about the different crate\ntypes in the [Rust Reference Manual](https://doc.rust-lang.org/reference/linkage.html).","type":"array","items":{"description":"The `crate-type` field defines the [crate types](https://doc.rust-lang.org/reference/linkage.html) that will be generated by the\ntarget. It is an array of strings, allowing you to specify multiple crate\ntypes for a single target. This can only be specified for libraries and\nexamples. Binaries, tests, and benchmarks are always the \"bin\" crate type.\n\nThe available options are `bin`, `lib`, `rlib`, `dylib`, `cdylib`,\n`staticlib`, and `proc-macro`. You can read more about the different crate\ntypes in the [Rust Reference Manual](https://doc.rust-lang.org/reference/linkage.html).","type":"string","x-taplo":{"docs":{"enumValues":["A runnable executable will be produced. This requires that there is a `main` function in the crate which\nwill be run when the program begins executing. This will link in all Rust and\nnative dependencies, producing a distributable binary.","A Rust library will be produced.\nThis is an ambiguous concept as to what exactly is produced because a library\ncan manifest itself in several forms. The purpose of this generic `lib` option\nis to generate the \"compiler recommended\" style of library. The output library\nwill always be usable by rustc, but the actual type of library may change from\ntime-to-time. The remaining output types are all different flavors of\nlibraries, and the `lib` type can be seen as an alias for one of them (but the\nactual one is compiler-defined).","A \"Rust library\" file will be produced. This is used as an intermediate artifact and can be thought of as a\n\"static Rust library\". These `rlib` files, unlike `staticlib` files, are\ninterpreted by the compiler in future linkage. This essentially means\nthat `rustc` will look for metadata in `rlib` files like it looks for metadata\nin dynamic libraries. This form of output is used to produce statically linked\nexecutables as well as `staticlib` outputs.","A dynamic Rust library will be produced. This is different from the `lib` output type in that this forces\ndynamic library generation. The resulting dynamic library can be used as a\ndependency for other libraries and/or executables. This output type will\ncreate `*.so` files on linux, `*.dylib` files on osx, and `*.dll` files on\nwindows.","A dynamic system library will be produced. This is used when compiling\na dynamic library to be loaded from another language. This output type will\ncreate `*.so` files on Linux, `*.dylib` files on macOS, and `*.dll` files on\nWindows.","A static system library will be produced. This is different from other library outputs in that\nthe compiler will never attempt to link to `staticlib` outputs. The\npurpose of this output type is to create a static library containing all of\nthe local crate's code along with all upstream dependencies. The static\nlibrary is actually a `*.a` archive on linux and osx and a `*.lib` file on\nwindows. This format is recommended for use in situations such as linking\nRust code into an existing non-Rust application because it will not have\ndynamic dependencies on other Rust code.","The output produced is not specified, but if a `-L` path is provided to it then the\ncompiler will recognize the output artifacts as a macro and it can be loaded\nfor a program. Crates compiled with this crate type must only export\n[procedural macros](https://doc.rust-lang.org/reference/procedural-macros.html). The compiler will automatically set the `proc_macro`\n[configuration option](https://doc.rust-lang.org/reference/conditional-compilation.html). The crates are always compiled with the same target\nthat the compiler itself was built with. For example, if you are executing\nthe compiler from Linux with an `x86_64` CPU, the target will be\n`x86_64-unknown-linux-gnu` even if the crate is a dependency of another crate\nbeing built for a different target."]},"links":{"key":"https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-crate-type-field"}}},"x-taplo":{"docs":{"enumValues":["A runnable executable will be produced. This requires that there is a `main` function in the crate which\nwill be run when the program begins executing. This will link in all Rust and\nnative dependencies, producing a distributable binary.","A Rust library will be produced.\nThis is an ambiguous concept as to what exactly is produced because a library\ncan manifest itself in several forms. The purpose of this generic `lib` option\nis to generate the \"compiler recommended\" style of library. The output library\nwill always be usable by rustc, but the actual type of library may change from\ntime-to-time. The remaining output types are all different flavors of\nlibraries, and the `lib` type can be seen as an alias for one of them (but the\nactual one is compiler-defined).","A \"Rust library\" file will be produced. This is used as an intermediate artifact and can be thought of as a\n\"static Rust library\". These `rlib` files, unlike `staticlib` files, are\ninterpreted by the compiler in future linkage. This essentially means\nthat `rustc` will look for metadata in `rlib` files like it looks for metadata\nin dynamic libraries. This form of output is used to produce statically linked\nexecutables as well as `staticlib` outputs.","A dynamic Rust library will be produced. This is different from the `lib` output type in that this forces\ndynamic library generation. The resulting dynamic library can be used as a\ndependency for other libraries and/or executables. This output type will\ncreate `*.so` files on linux, `*.dylib` files on osx, and `*.dll` files on\nwindows.","A dynamic system library will be produced. This is used when compiling\na dynamic library to be loaded from another language. This output type will\ncreate `*.so` files on Linux, `*.dylib` files on macOS, and `*.dll` files on\nWindows.","A static system library will be produced. This is different from other library outputs in that\nthe compiler will never attempt to link to `staticlib` outputs. The\npurpose of this output type is to create a static library containing all of\nthe local crate's code along with all upstream dependencies. The static\nlibrary is actually a `*.a` archive on linux and osx and a `*.lib` file on\nwindows. This format is recommended for use in situations such as linking\nRust code into an existing non-Rust application because it will not have\ndynamic dependencies on other Rust code.","The output produced is not specified, but if a `-L` path is provided to it then the\ncompiler will recognize the output artifacts as a macro and it can be loaded\nfor a program. Crates compiled with this crate type must only export\n[procedural macros](https://doc.rust-lang.org/reference/procedural-macros.html). The compiler will automatically set the `proc_macro`\n[configuration option](https://doc.rust-lang.org/reference/conditional-compilation.html). The crates are always compiled with the same target\nthat the compiler itself was built with. For example, if you are executing\nthe compiler from Linux with an `x86_64` CPU, the target will be\n`x86_64-unknown-linux-gnu` even if the crate is a dependency of another crate\nbeing built for a different target."]},"links":{"key":"https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-crate-type-field"}}},"crate_type":{"type":"array","items":{"type":"string","x-taplo":{"hidden":true}},"x-taplo":{"hidden":true}},"doc":{"description":"The `doc` field indicates whether or not the target is included in the\ndocumentation generated by [`cargo doc`](https://doc.rust-lang.org/cargo/commands/cargo-doc.html) by default. The default is `true` for\nlibraries and binaries.\n\n> **Note**: The binary will be skipped if its name is the same as the lib\n> target.","type":"boolean","x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-doc-field"}}},"doctest":{"description":"The `doctest` field indicates whether or not [documentation examples](https://doc.rust-lang.org/rustdoc/documentation-tests.html) are\ntested by default by [`cargo test`](https://doc.rust-lang.org/cargo/commands/cargo-test.html). This is only relevant for libraries, it\nhas no effect on other sections. The default is `true` for the library.\n","type":"boolean","x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-doctest-field"}}},"edition":{"$ref":"#/definitions/Edition"},"harness":{"description":"The `harness` field indicates that the [`--test` flag](https://doc.rust-lang.org/rustc/command-line-arguments.html#option-test) will be passed to\n`rustc` which will automatically include the libtest library which is the\ndriver for collecting and running tests marked with the [`#[test]` attribute](https://doc.rust-lang.org/reference/attributes/testing.html#the-test-attribute) or benchmarks with the `#[bench]` attribute. The\ndefault is `true` for all targets.\n\nIf set to `false`, then you are responsible for defining a `main()` function\nto run tests and benchmarks.\n\nTests have the [`cfg(test)` conditional expression](https://doc.rust-lang.org/reference/conditional-compilation.html#test) enabled whether\nor not the harness is enabled.","type":"boolean","x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-harness-field"}}},"name":{"description":"The `name` field specifies the name of the target, which corresponds to the\nfilename of the artifact that will be generated. For a library, this is the\ncrate name that dependencies will use to reference it.\n\nFor the `[lib]` and the default binary (`src/main.rs`), this defaults to the\nname of the package, with any dashes replaced with underscores. For other\n[auto discovered](https://doc.rust-lang.org/cargo/reference/cargo-targets.html#target-auto-discovery) targets, it defaults to the\ndirectory or file name.\n\nThis is required for all targets except `[lib]`.","type":"string","x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-name-field"}}},"path":{"description":"The `path` field specifies where the source for the crate is located, relative\nto the `Cargo.toml` file.\n\nIf not specified, the [inferred path](https://doc.rust-lang.org/cargo/reference/cargo-targets.html#target-auto-discovery) is used based on\nthe target name.","type":"string","x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-path-field"}}},"plugin":{"type":"boolean","x-taplo":{"hidden":true}},"proc-macro":{"description":"The `proc-macro` field indicates that the library is a [procedural macro](https://doc.rust-lang.org/book/ch19-06-macros.html)\n([reference](https://doc.rust-lang.org/reference/procedural-macros.html)). This is only valid for the `[lib]`\ntarget.","type":"boolean","x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-proc-macro-field"}}},"proc_macro":{"type":"boolean","x-taplo":{"hidden":true}},"required-features":{"description":"The `required-features` field specifies which [features](https://doc.rust-lang.org/cargo/reference/features.html) the target needs in\norder to be built. If any of the required features are not enabled, the\ntarget will be skipped. This is only relevant for the `[[bin]]`, `[[bench]]`,\n`[[test]]`, and `[[example]]` sections, it has no effect on `[lib]`.\n\n```toml\n[features]\n# ...\npostgres = []\nsqlite = []\ntools = []\n\n[[bin]]\nname = \"my-pg-tool\"\nrequired-features = [\"postgres\", \"tools\"]\n```\n","type":"array","items":{"description":"The `required-features` field specifies which [features](https://doc.rust-lang.org/cargo/reference/features.html) the target needs in\norder to be built. If any of the required features are not enabled, the\ntarget will be skipped. This is only relevant for the `[[bin]]`, `[[bench]]`,\n`[[test]]`, and `[[example]]` sections, it has no effect on `[lib]`.\n\n```toml\n[features]\n# ...\npostgres = []\nsqlite = []\ntools = []\n\n[[bin]]\nname = \"my-pg-tool\"\nrequired-features = [\"postgres\", \"tools\"]\n```\n","type":"string","x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-required-features-field"}}},"x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-required-features-field"}}},"test":{"description":"The `test` field indicates whether or not the target is tested by default by\n[`cargo test`](https://doc.rust-lang.org/cargo/commands/cargo-test.html). The default is `true` for lib, bins, and tests.\n\n> **Note**: Examples are built by [`cargo test`](https://doc.rust-lang.org/cargo/commands/cargo-test.html) by default to ensure they\n> continue to compile, but they are not *tested* by default. Setting `test =\n> true` for an example will also build it as a test and run any\n> [`#[test]`](https://doc.rust-lang.org/reference/attributes/testing.html#the-test-attribute) functions defined in the example.","type":"boolean","x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-test-field"}}}}},"Workspace":{"title":"Workspace","description":"The `[workspace]` table in `Cargo.toml` defines which packages are members of\nthe workspace:\n\n```toml\n[workspace]\nmembers = [\"member1\", \"path/to/member2\", \"crates/*\"]\nexclude = [\"crates/foo\", \"path/to/other\"]\n```\n\nAn empty `[workspace]` table can be used with a `[package]` to conveniently\ncreate a workspace with the package and all of its path dependencies.\n\nAll [`path` dependencies](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#specifying-path-dependencies) residing in the workspace directory automatically\nbecome members. Additional members can be listed with the `members` key, which\nshould be an array of strings containing directories with `Cargo.toml` files.\n\nThe `members` list also supports [globs](https://docs.rs/glob/0.3.0/glob/struct.Pattern.html) to match multiple paths, using\ntypical filename glob patterns like `*` and `?`.\n\nThe `exclude` key can be used to prevent paths from being included in a\nworkspace. This can be useful if some path dependencies aren't desired to be\nin the workspace at all, or using a glob pattern and you want to remove a\ndirectory.\n\nAn empty `[workspace]` table can be used with a `[package]` to conveniently\ncreate a workspace with the package and all of its path dependencies.","type":"object","properties":{"default-members":{"description":"The optional `default-members` key can be specified to set the members to\noperate on when in the workspace root and the package selection flags are not\nused:\n\n```toml\n[workspace]\nmembers = [\"path/to/member1\", \"path/to/member2\", \"path/to/member3/*\"]\ndefault-members = [\"path/to/member2\", \"path/to/member3/foo\"]\n```\n\nWhen specified, `default-members` must expand to a subset of `members`.","type":"array","items":{"description":"The optional `default-members` key can be specified to set the members to\noperate on when in the workspace root and the package selection flags are not\nused:\n\n```toml\n[workspace]\nmembers = [\"path/to/member1\", \"path/to/member2\", \"path/to/member3/*\"]\ndefault-members = [\"path/to/member2\", \"path/to/member3/foo\"]\n```\n\nWhen specified, `default-members` must expand to a subset of `members`.","type":"string","x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/workspaces.html#the-workspace-section"}}},"x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/workspaces.html#the-workspace-section"}}},"exclude":{"description":"The `exclude` key can be used to prevent paths from being included in a\nworkspace. This can be useful if some path dependencies aren't desired to be\nin the workspace at all, or using a glob pattern and you want to remove a\ndirectory.","type":"array","items":{"description":"The `exclude` key can be used to prevent paths from being included in a\nworkspace. This can be useful if some path dependencies aren't desired to be\nin the workspace at all, or using a glob pattern and you want to remove a\ndirectory.","type":"string","x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/workspaces.html#the-workspace-section"}}},"x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/workspaces.html#the-workspace-section"}}},"members":{"description":"All [`path` dependencies] residing in the workspace directory automatically\nbecome members. Additional members can be listed with the `members` key, which\nshould be an array of strings containing directories with `Cargo.toml` files.\n\nThe `members` list also supports [globs] to match multiple paths, using\ntypical filename glob patterns like `*` and `?`.","type":"array","items":{"description":"All [`path` dependencies] residing in the workspace directory automatically\nbecome members. Additional members can be listed with the `members` key, which\nshould be an array of strings containing directories with `Cargo.toml` files.\n\nThe `members` list also supports [globs] to match multiple paths, using\ntypical filename glob patterns like `*` and `?`.","type":"string","x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/workspaces.html#the-workspace-section"}}},"x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/workspaces.html#the-workspace-section"}}},"metadata":{"description":"The `workspace.metadata` table is ignored by Cargo and will not be warned\nabout. This section can be used for tools that would like to store workspace\nconfiguration in `Cargo.toml`. For example:\n\n```toml\n[workspace]\nmembers = [\"member1\", \"member2\"]\n\n[workspace.metadata.webcontents]\nroot = \"path/to/webproject\"\ntool = [\"npm\", \"run\", \"build\"]\n# ...\n```\n\nThere is a similar set of tables at the package level at\n`package.metadata`. While cargo does not specify a\nformat for the content of either of these tables, it is suggested that\nexternal tools may wish to use them in a consistent fashion, such as referring\nto the data in `workspace.metadata` if data is missing from `package.metadata`,\nif that makes sense for the tool in question.\n","type":"object","additionalProperties":true,"x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/workspaces.html#the-workspace-section"}}},"resolver":{"$ref":"#/definitions/Resolver"}},"x-taplo":{"links":{"key":"https://doc.rust-lang.org/cargo/reference/workspaces.html"}}}}}}
{
"title": "JSON schema for the Stylelint configuration files",
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"definitions": {
"alwaysMultiLineRule": {
"type": [
"null",
"string",
"array"
],
"oneOf": [
{
"type": "null"
},
{
"type": "string",
"enum": [
"always",
"always-multi-line",
[]
]
},
{
"type": "array",
"minItems": 2,
"maxItems": 2,
"uniqueItems": true,
"items": {
"type": [
"string",
"object"
],
"anyOf": [
{
"type": "string",
"enum": [
"always",
"always-multi-line",
{}
]
},
{
"$ref": "#/definitions/coreRule"
}
]
}
}
]
},
"alwaysNeverRule": {
"type": [
"null",
"string",
"array"
],
"oneOf": [
{
"type": "null"
},
{
"type": "string",
"enum": [
"always",
"never",
[]
]
},
{
"type": "array",
"minItems": 2,
"maxItems": 2,
"uniqueItems": true,
"items": {
"type": [
"string",
"object"
],
"anyOf": [
{
"type": "string",
"enum": [
"always",
"never",
{}
]
},
{
"$ref": "#/definitions/coreRule"
}
]
}
}
]
},
"arrayStringRule": {
"type": [
"null",
"string",
"array"
],
"oneOf": [
{
"type": [
"null",
"string"
]
},
{
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items": {
"type": [
"string",
"array",
"object"
],
"anyOf": [
{
"type": "string",
"enum": [
[],
{}
]
},
{
"$ref": "#/definitions/simpleArrayStringRule"
},
{
"$ref": "#/definitions/coreRule"
}
]
}
}
]
},
"booleanRule": {
"default": true,
"type": [
"null",
"boolean",
"array"
],
"oneOf": [
{
"type": "null"
},
{
"type": "boolean",
"enum": [
true,
[]
]
},
{
"type": "array",
"minItems": 2,
"maxItems": 2,
"uniqueItems": true,
"items": {
"type": [
"boolean",
"object"
],
"anyOf": [
{
"type": "boolean",
"enum": [
true,
{}
]
},
{
"$ref": "#/definitions/coreRule"
}
]
}
}
]
},
"coreRule": {
"properties": {
"message": {
"description": "Custom message that will be used in errors and warnings",
"type": "string"
},
"severity": {
"description": "Message status",
"type": "string",
"enum": [
"warning",
"error"
]
}
}
},
"integerRule": {
"type": [
"null",
"integer",
"array"
],
"oneOf": [
{
"type": [
"null",
"integer"
]
},
{
"type": "array",
"minItems": 2,
"maxItems": 2,
"uniqueItems": true,
"items": {
"type": [
"integer",
"object"
],
"anyOf": [
{
"type": "integer",
"enum": [
{}
]
},
{
"$ref": "#/definitions/coreRule"
}
]
}
}
]
},
"lowerUpperRule": {
"type": [
"null",
"string",
"array"
],
"oneOf": [
{
"type": "null"
},
{
"type": "string",
"enum": [
"lower",
"upper",
[]
]
},
{
"type": "array",
"minItems": 2,
"maxItems": 2,
"uniqueItems": true,
"items": {
"type": [
"string",
"object"
],
"anyOf": [
{
"type": "string",
"enum": [
"lower",
"upper",
{}
]
},
{
"$ref": "#/definitions/coreRule"
}
]
}
}
]
},
"newlineRule": {
"type": [
"null",
"string",
"array"
],
"oneOf": [
{
"type": "null"
},
{
"type": "string",
"enum": [
"always",
"always-multi-line",
"never-multi-line",
[]
]
},
{
"type": "array",
"minItems": 2,
"maxItems": 2,
"uniqueItems": true,
"items": {
"type": [
"string",
"object"
],
"anyOf": [
{
"type": "string",
"enum": [
"always",
"always-multi-line",
"never-multi-line",
{}
]
},
{
"$ref": "#/definitions/coreRule"
}
]
}
}
]
},
"newlineSpaceRule": {
"type": [
"null",
"string",
"array"
],
"oneOf": [
{
"type": "null"
},
{
"type": "string",
"enum": [
"always",
"never",
"always-single-line",
"never-single-line",
"always-multi-line",
"never-multi-line",
[]
]
},
{
"type": "array",
"minItems": 2,
"maxItems": 2,
"uniqueItems": true,
"items": {
"type": [
"string",
"object"
],
"anyOf": [
{
"type": "string",
"enum": [
"always",
"never",
"always-single-line",
"never-single-line",
"always-multi-line",
"never-multi-line",
{}
]
},
{
"$ref": "#/definitions/coreRule"
}
]
}
}
]
},
"newlineSpaceWithIgnoreRule": {
"type": [
"null",
"string",
"array"
],
"oneOf": [
{
"type": "null"
},
{
"type": "string",
"enum": [
"always",
"never",
"always-single-line",
"never-single-line",
"always-multi-line",
"never-multi-line",
[]
]
},
{
"type": "array",
"minItems": 2,
"maxItems": 2,
"uniqueItems": true,
"items": {
"type": [
"string",
"object"
],
"anyOf": [
{
"type": "string",
"enum": [
"always",
"always-single-line",
"never-single-line",
"always-multi-line",
"never-multi-line",
{}
]
},
{
"type": "object",
"allOf": [
{
"$ref": "#/definitions/coreRule"
}
],
"properties": {
"ignoreAtRules": {
"$ref": "#/definitions/simpleStringOrArrayStringRule"
}
}
}
]
}
}
]
},
"objectRule": {
"type": [
"null",
"object",
"array"
],
"oneOf": [
{
"type": "null"
},
{
"type": "object",
"patternProperties": {
".*": {
"$ref": "#/definitions/simpleArrayStringRule"
}
}
},
{
"type": "array",
"minItems": 2,
"maxItems": 2,
"uniqueItems": true,
"items": {
"type": [
"object"
],
"anyOf": [
{
"type": "object",
"allOf": [
{
"$ref": "#/definitions/coreRule"
}
],
"patternProperties": {
"^((?!message|severity).)*$": {
"$ref": "#/definitions/simpleArrayStringRule"
}
}
}
]
}
}
]
},
"simpleArrayStringRule": {
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items": {
"type": "string"
}
},
"simpleStringOrArrayStringRule": {
"type": [
"string",
"array"
],
"oneOf": [
{
"type": "string"
},
{
"$ref": "#/definitions/simpleArrayStringRule"
}
]
},
"singleDoubleRule": {
"type": [
"null",
"string",
"array"
],
"oneOf": [
{
"type": "null"
},
{
"type": "string",
"enum": [
"single",
"double",
[]
]
},
{
"type": "array",
"minItems": 2,
"maxItems": 2,
"uniqueItems": true,
"items": {
"type": [
"string",
"object"
],
"anyOf": [
{
"type": "string",
"enum": [
"single",
"double",
{}
]
},
{
"$ref": "#/definitions/coreRule"
}
]
}
}
]
},
"spaceRule": {
"type": [
"null",
"string",
"array"
],
"oneOf": [
{
"type": "null"
},
{
"type": "string",
"enum": [
"always",
"never",
"always-single-line",
"never-single-line",
[]
]
},
{
"type": "array",
"minItems": 2,
"maxItems": 2,
"uniqueItems": true,
"items": {
"type": [
"string",
"object"
],
"anyOf": [
{
"type": "string",
"enum": [
"always",
"never",
"always-single-line",
"never-single-line",
{}
]
},
{
"$ref": "#/definitions/coreRule"
}
]
}
}
]
},
"stringRule": {
"type": [
"null",
"string",
"array"
],
"oneOf": [
{
"type": [
"null",
"string"
]
},
{
"type": "array",
"minItems": 2,
"maxItems": 2,
"uniqueItems": true,
"items": {
"type": [
"string",
"object"
],
"anyOf": [
{
"type": "string",
"enum": [
{}
]
},
{
"$ref": "#/definitions/coreRule"
}
]
}
}
]
},
"unitRule": {
"type": [
"null",
"string",
"array"
],
"oneOf": [
{
"type": "null"
},
{
"type": "string",
"enum": [
"em",
"ex",
"px",
"%",
"rem",
"vw",
"vh",
"vm",
"vmin",
"vmax",
"ch",
"in",
"cm",
"mm",
"q",
"pt",
"pc",
"deg",
"grad",
"rad",
"turn",
"ms",
"s",
"Hz",
"kHz",
"dpi",
"dpcm",
"dppx",
"fr",
[]
]
},
{
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items": {
"type": [
"string",
"array",
"object"
],
"anyOf": [
{
"type": "string",
"enum": [
"em",
"ex",
"px",
"%",
"rem",
"vw",
"vh",
"vm",
"vmin",
"vmax",
"ch",
"in",
"cm",
"mm",
"q",
"pt",
"pc",
"deg",
"grad",
"rad",
"turn",
"ms",
"s",
"Hz",
"kHz",
"dpi",
"dpcm",
"dppx",
"fr",
[],
{}
]
},
{
"type": "array",
"uniqueItems": true,
"minItems": 1,
"items": {
"type": "string",
"enum": [
"em",
"ex",
"px",
"%",
"rem",
"vw",
"vh",
"vm",
"vmin",
"vmax",
"ch",
"in",
"cm",
"mm",
"q",
"pt",
"pc",
"deg",
"grad",
"rad",
"turn",
"ms",
"s",
"Hz",
"kHz",
"dpi",
"dpcm",
"dppx",
"fr"
]
}
},
{
"type": "object",
"allOf": [
{
"$ref": "#/definitions/coreRule"
}
],
"properties": {
"ignoreProperties": {
"description": "Ignore units in the values of declarations with the specified properties",
"type": "object",
"patternProperties": {
"(em|ex|ch|vw|vh|cm|mm|in|pt|pc|px|rem|vmin|vmax|%)": {
"$ref": "#/definitions/simpleArrayStringRule"
}
}
}
}
}
]
}
}
]
},
"atRule": {
"properties": {
"at-rule-blacklist": {
"description": "Specify a blacklist of disallowed at-rules",
"$ref": "#/definitions/arrayStringRule"
},
"at-rule-empty-line-before": {
"description": "Require or disallow an empty line before at-rules",
"type": [
"null",
"string",
"array"
],
"oneOf": [
{
"type": "null"
},
{
"type": "string",
"enum": [
"always",
"never",
[]
]
},
{
"type": "array",
"minItems": 2,
"maxItems": 2,
"uniqueItems": true,
"items": {
"type": [
"string",
"object"
],
"anyOf": [
{
"type": "string",
"enum": [
"always",
"never",
{}
]
},
{
"type": "object",
"allOf": [
{
"$ref": "#/definitions/coreRule"
}
],
"properties": {
"except": {
"type": "array",
"uniqueItems": true,
"minItems": 1,
"items": {
"type": "string",
"enum": [
"after-same-name",
"inside-block",
"blockless-after-same-name-blockless",
"blockless-after-blockless",
"first-nested"
]
}
},
"ignore": {
"type": "array",
"uniqueItems": true,
"minItems": 1,
"items": {
"type": "string",
"enum": [
"after-comment",
"first-nested",
"inside-block",
"blockless-after-same-name-blockless",
"blockless-after-blockless"
]
}
},
"ignoreAtRules": {
"$ref": "#/definitions/simpleStringOrArrayStringRule"
}
}
}
]
}
}
]
},
"at-rule-name-case": {
"description": "Specify lowercase or uppercase for at-rules names",
"$ref": "#/definitions/lowerUpperRule"
},
"at-rule-name-newline-after": {
"description": "Require a newline after at-rule names",
"$ref": "#/definitions/alwaysMultiLineRule"
},
"at-rule-name-space-after": {
"description": "Require a single space after at-rule names",
"type": [
"null",
"string",
"array"
],
"oneOf": [
{
"type": "null"
},
{
"type": "string",
"enum": [
"always",
"always-single-line",
[]
]
},
{
"type": "array",
"minItems": 2,
"maxItems": 2,
"uniqueItems": true,
"items": {
"type": [
"string",
"object"
],
"anyOf": [
{
"type": "string",
"enum": [
"always",
"always-single-line",
{}
]
},
{
"$ref": "#/definitions/coreRule"
}
]
}
}
]
},
"at-rule-no-unknown": {
"description": "Disallow unknown at-rules",
"type": [
"null",
"boolean",
"array"
],
"oneOf": [
{
"type": "null"
},
{
"type": "boolean",
"enum": [
true,
[]
]
},
{
"type": "array",
"minItems": 2,
"maxItems": 2,
"uniqueItems": true,
"items": {
"type": [
"boolean",
"object"
],
"anyOf": [
{
"type": "boolean",
"enum": [
true,
{}
]
},
{
"type": "object",
"allOf": [
{
"$ref": "#/definitions/coreRule"
}
],
"properties": {
"ignoreAtRules": {
"$ref": "#/definitions/simpleArrayStringRule"
}
}
}
]
}
}
]
},
"at-rule-no-vendor-prefix": {
"description": "Disallow vendor prefixes for at-rules",
"$ref": "#/definitions/booleanRule"
},
"at-rule-semicolon-newline-after": {
"description": "Require a newline after the semicolon of at-rules",
"type": [
"null",
"string",
"array"
],
"oneOf": [
{
"type": "null"
},
{
"type": "string",
"enum": [
"always",
[]
]
},
{
"type": "array",
"minItems": 2,
"maxItems": 2,
"uniqueItems": true,
"items": {
"type": [
"string",
"object"
],
"anyOf": [
{
"type": "string",
"enum": [
"always",
{}
]
},
{
"$ref": "#/definitions/coreRule"
}
]
}
}
]
},
"at-rule-whitelist": {
"description": "Specify a whitelist of allowed at-rules",
"$ref": "#/definitions/arrayStringRule"
}
}
},
"block": {
"properties": {
"block-closing-brace-empty-line-before": {
"description": "Require or disallow an empty line before the closing brace of blocks",
"type": [
"null",
"string",
"array"
],
"oneOf": [
{
"type": "null"
},
{
"type": "string",
"enum": [
"always-multi-line",
"never",
[]
]
},
{
"type": "array",
"minItems": 2,
"maxItems": 2,
"uniqueItems": true,
"items": {
"type": [
"string",
"object"
],
"anyOf": [
{
"type": "string",
"enum": [
"always-multi-line",
"never",
{}
]
},
{
"$ref": "#/definitions/coreRule"
}
]
}
}
]
},
"block-closing-brace-newline-after": {
"description": "Require a newline or disallow whitespace after the closing brace of blocks",
"$ref": "#/definitions/newlineSpaceWithIgnoreRule"
},
"block-closing-brace-newline-before": {
"description": "Require a newline or disallow whitespace before the closing brace of blocks",
"$ref": "#/definitions/newlineRule"
},
"block-closing-brace-space-afte": {
"description": "Require a single space or disallow whitespace after the closing brace of blocks",
"$ref": "#/definitions/newlineSpaceRule"
},
"block-closing-brace-space-before": {
"description": "Require a single space or disallow whitespace before the closing brace of blocks",
"$ref": "#/definitions/newlineSpaceRule"
},
"block-no-empty": {
"description": "Disallow empty blocks",
"$ref": "#/definitions/booleanRule"
},
"block-no-single-line": {
"description": "Disallow single-line blocks",
"$ref": "#/definitions/booleanRule"
},
"block-opening-brace-newline-after": {
"description": "Require a newline after the opening brace of blocks",
"$ref": "#/definitions/newlineRule"
},
"block-opening-brace-newline-before": {
"description": "Require a newline or disallow whitespace before the opening brace of blocks",
"type": [
"null",
"string",
"array"
],
"oneOf": [
{
"type": "null"
},
{
"type": "string",
"enum": [
"always",
"always-single-line",
"never-single-line",
"always-multi-line",
"never-multi-line",
[]
]
},
{
"type": "array",
"minItems": 2,
"maxItems": 2,
"uniqueItems": true,
"items": {
"type": [
"string",
"object"
],
"anyOf": [
{
"type": "string",
"enum": [
"always",
"always-single-line",
"never-single-line",
"always-multi-line",
"never-multi-line",
{}
]
},
{
"$ref": "#/definitions/coreRule"
}
]
}
}
]
},
"block-opening-brace-space-after": {
"description": "Require a single space or disallow whitespace after the opening brace of blocks",
"$ref": "#/definitions/newlineSpaceRule"
},
"block-opening-brace-space-before": {
"description": "Require a single space or disallow whitespace before the opening brace of blocks",
"$ref": "#/definitions/newlineSpaceWithIgnoreRule"
}
}
},
"color": {
"properties": {
"color-hex-case": {
"description": "Specify lowercase or uppercase for hex colors",
"$ref": "#/definitions/lowerUpperRule"
},
"color-hex-length": {
"description": "Specify short or long notation for hex colors",
"type": [
"null",
"string",
"array"
],
"oneOf": [
{
"type": "null"
},
{
"type": "string",
"enum": [
"short",
"long",
[]
]
},
{
"type": "array",
"minItems": 2,
"maxItems": 2,
"uniqueItems": true,
"items": {
"type": [
"string",
"object"
],
"anyOf": [
{
"type": "string",
"enum": [
"short",
"long",
{}
]
},
{
"$ref": "#/definitions/coreRule"
}
]
}
}
]
},
"color-named": {
"description": "Require (where possible) or disallow named colors",
"type": [
"null",
"string",
"array"
],
"oneOf": [
{
"type": "null"
},
{
"type": "string",
"enum": [
"always-where-possible",
"never",
[]
]
},
{
"type": "array",
"minItems": 2,
"maxItems": 2,
"uniqueItems": true,
"items": {
"type": [
"string",
"object"
],
"anyOf": [
{
"type": "string",
"enum": [
"always-where-possible",
"never",
{}
]
},
{
"type": "object",
"allOf": [
{
"$ref": "#/definitions/coreRule"
}
],
"properties": {
"ignore": {
"$ref": "#/definitions/simpleArrayStringRule"
}
}
}
]
}
}
]
},
"color-no-hex": {
"description": "Disallow hex colors",
"$ref": "#/definitions/booleanRule"
},
"color-no-invalid-hex": {
"description": "Disallow invalid hex colors",
"$ref": "#/definitions/booleanRule"
}
}
},
"comment": {
"properties": {
"comment-empty-line-before": {
"description": "Require or disallow an empty line before comments",
"type": [
"null",
"string",
"array"
],
"oneOf": [
{
"type": "null"
},
{
"type": "string",
"enum": [
"always",
"never",
[]
]
},
{
"type": "array",
"minItems": 2,
"maxItems": 2,
"uniqueItems": true,
"items": {
"type": [
"string",
"object"
],
"anyOf": [
{
"type": "string",
"enum": [
"always",
"never",
{}
]
},
{
"type": "object",
"allOf": [
{
"$ref": "#/definitions/coreRule"
}
],
"properties": {
"except": {
"description": "Reverse the primary option for comments that are nested and the first child of their parent node",
"type": "array",
"uniqueItems": true,
"minItems": 1,
"items": {
"type": "string",
"enum": [
"first-nested"
]
}
},
"ignore": {
"description": "Don't require an empty line between comments",
"type": "array",
"uniqueItems": true,
"minItems": 1,
"items": {
"type": "string",
"enum": [
"between-comments",
"after-comment",
"stylelint-commands"
]
}
}
}
}
]
}
}
]
},
"comment-no-empty": {
"description": "Disallow empty comments",
"$ref": "#/definitions/booleanRule"
},
"comment-whitespace-inside": {
"description": "Require or disallow whitespace on the inside of comment markers",
"$ref": "#/definitions/alwaysNeverRule"
},
"comment-word-blacklist": {
"description": "Specify a blacklist of disallowed words within comments",
"$ref": "#/definitions/arrayStringRule"
}
}
},
"customMedia": {
"properties": {
"custom-media-pattern": {
"description": "Specify a pattern for custom media query names",
"$ref": "#/definitions/stringRule"
}
}
},
"customProperty": {
"properties": {
"custom-property-empty-line-before": {
"description": "Require or disallow an empty line before custom properties",
"type": [
"null",
"string",
"array"
],
"oneOf": [
{
"type": "null"
},
{
"type": "string",
"enum": [
"always",
"never",
[]
]
},
{
"type": "array",
"minItems": 2,
"maxItems": 2,
"uniqueItems": true,
"items": {
"type": [
"string",
"object"
],
"anyOf": [
{
"type": "string",
"enum": [
"always",
"never",
{}
]
},
{
"type": "object",
"allOf": [
{
"$ref": "#/definitions/coreRule"
}
],
"properties": {
"except": {
"description": "Reverse the primary option for custom properties that come after a comment, custom property or first child of their parent node",
"type": "array",
"uniqueItems": true,
"minItems": 1,
"items": {
"type": "string",
"enum": [
"after-comment",
"after-custom-property",
"first-nested"
]
}
},
"ignore": {
"description": "Ignore custom properties that are preceded by comments or inside single-line blocks",
"type": "array",
"uniqueItems": true,
"minItems": 1,
"items": {
"type": "string",
"enum": [
"after-comment",
"inside-single-line-block"
]
}
}
}
}
]
}
}
]
},
"custom-property-no-outside-root": {
"description": "Disallow custom properties outside of `:root` rules",
"$ref": "#/definitions/booleanRule"
},
"custom-property-pattern": {
"description": "Specify a pattern for custom properties",
"$ref": "#/definitions/stringRule"
}
}
},
"declaration": {
"properties": {
"declaration-bang-space-after": {
"description": "Require a single space or disallow whitespace after the bang of declarations",
"$ref": "#/definitions/alwaysNeverRule"
},
"declaration-bang-space-before": {
"description": "Require a single space or disallow whitespace before the bang of declarations",
"$ref": "#/definitions/alwaysNeverRule"
},
"declaration-colon-newline-after": {
"description": "Require a newline or disallow whitespace after the colon of declarations",
"$ref": "#/definitions/alwaysMultiLineRule"
},
"declaration-colon-space-after": {
"description": "Require a single space or disallow whitespace after the colon of declarations",
"type": [
"null",
"string",
"array"
],
"oneOf": [
{
"type": "null"
},
{
"type": "string",
"enum": [
"always",
"never",
"always-single-line",
[]
]
},
{
"type": "array",
"minItems": 2,
"maxItems": 2,
"uniqueItems": true,
"items": {
"type": [
"string",
"object"
],
"anyOf": [
{
"type": "string",
"enum": [
"always",
"never",
"always-single-line",
{}
]
},
{
"$ref": "#/definitions/coreRule"
}
]
}
}
]
},
"declaration-colon-space-before": {
"description": "Require a single space or disallow whitespace before the colon of declarations",
"$ref": "#/definitions/alwaysNeverRule"
},
"declaration-empty-line-before": {
"description": "Require or disallow an empty line before declarations",
"type": [
"null",
"string",
"array"
],
"oneOf": [
{
"type": "null"
},
{
"type": "string",
"enum": [
"always",
"never",
[]
]
},
{
"type": "array",
"minItems": 2,
"maxItems": 2,
"uniqueItems": true,
"items": {
"type": [
"string",
"object"
],
"anyOf": [
{
"type": "string",
"enum": [
"always",
"never",
{}
]
},
{
"type": "object",
"allOf": [
{
"$ref": "#/definitions/coreRule"
}
],
"properties": {
"except": {
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items": {
"type": "string",
"enum": [
"after-comment",
"after-declaration",
"first-nested"
]
}
},
"ignore": {
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items": {
"type": "string",
"enum": [
"after-comment",
"after-declaration",
"inside-single-line-block"
]
}
}
}
}
]
}
}
]
},
"declaration-no-important": {
"description": "Disallow `!important` within declarations",
"$ref": "#/definitions/booleanRule"
},
"declaration-property-unit-blacklist": {
"description": "Specify a blacklist of disallowed property and unit pairs within declarations",
"$ref": "#/definitions/objectRule"
},
"declaration-property-unit-whitelist": {
"description": "Specify a whitelist of allowed property and unit pairs within declarations",
"$ref": "#/definitions/objectRule"
},
"declaration-property-value-blacklist": {
"description": "Specify a blacklist of disallowed property and value pairs within declarations",
"$ref": "#/definitions/objectRule"
},
"declaration-property-value-whitelist": {
"description": "Specify a whitelist of allowed property and value pairs within declarations",
"$ref": "#/definitions/objectRule"
}
}
},
"declarationBlock": {
"properties": {
"declaration-block-no-duplicate-properties": {
"description": "Disallow duplicate properties within declaration blocks",
"type": [
"null",
"boolean",
"array"
],
"oneOf": [
{
"type": "null"
},
{
"type": "boolean",
"enum": [
true,
[]
]
},
{
"type": "array",
"minItems": 2,
"maxItems": 2,
"uniqueItems": true,
"items": {
"type": [
"boolean",
"object"
],
"anyOf": [
{
"type": "boolean",
"enum": [
true,
{}
]
},
{
"type": "object",
"allOf": [
{
"$ref": "#/definitions/coreRule"
}
],
"properties": {
"ignore": {
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items": {
"type": "string",
"enum": [
"consecutive-duplicates",
"consecutive-duplicates-with-different-values"
]
}
},
"ignoreProperties": {
"$ref": "#/definitions/simpleArrayStringRule"
}
}
}
]
}
}
]
},
"declaration-block-no-ignored-properties": {
"description": "Disallow property values that are ignored due to another property value in the same rule",
"$ref": "#/definitions/booleanRule"
},
"declaration-block-no-redundant-longhand-properties": {
"description": "Disallow longhand properties that can be combined into one shorthand property",
"type": [
"null",
"boolean",
"array"
],
"oneOf": [
{
"type": "null"
},
{
"type": "boolean",
"enum": [
true,
[]
]
},
{
"type": "array",
"minItems": 2,
"maxItems": 2,
"uniqueItems": true,
"items": {
"type": [
"boolean",
"object"
],
"anyOf": [
{
"type": "boolean",
"enum": [
true,
{}
]
},
{
"type": "object",
"allOf": [
{
"$ref": "#/definitions/coreRule"
}
],
"properties": {
"ignoreShorthands": {
"$ref": "#/definitions/simpleArrayStringRule"
}
}
}
]
}
}
]
},
"declaration-block-no-shorthand-property-overrides": {
"description": "Disallow shorthand properties that override related longhand properties",
"$ref": "#/definitions/booleanRule"
},
"declaration-block-properties-order": {
"description": "Specify the order of properties within declaration blocks",
"type": [
"null",
"string",
"array"
],
"oneOf": [
{
"type": "null"
},
{
"type": "string",
"enum": [
"alphabetical",
[]
]
},
{
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items": {
"type": [
"string",
"array",
"object"
],
"anyOf": [
{
"type": "string",
"enum": [
"alphabetical",
[],
{}
]
},
{
"type": "string"
},
{
"$ref": "#/definitions/simpleArrayStringRule"
},
{
"type": "object",
"allOf": [
{
"$ref": "#/definitions/coreRule"
}
],
"dependencies": {
"order": [
"properties"
],
"properties": [
"order"
]
},
"properties": {
"unspecified": {
"description": "These options only apply if you've defined your own array of properties",
"type": "string",
"enum": [
"top",
"bottom",
"bottomAlphabetical",
"ignore"
]
},
"order": {
"type": "string",
"enum": [
"strict",
"flexible"
]
},
"properties": {
"$ref": "#/definitions/simpleArrayStringRule"
}
}
}
]
}
}
]
},
"declaration-block-semicolon-newline-after": {
"description": "Require a newline or disallow whitespace after the semicolons of declaration blocks",
"$ref": "#/definitions/newlineRule"
},
"declaration-block-semicolon-newline-before": {
"description": "Require a newline or disallow whitespace before the semicolons of declaration blocks",
"$ref": "#/definitions/newlineRule"
},
"declaration-block-semicolon-space-after": {
"description": "Require a single space or disallow whitespace after the semicolons of declaration blocks",
"$ref": "#/definitions/spaceRule"
},
"declaration-block-semicolon-space-before": {
"description": "Require a single space or disallow whitespace before the semicolons of declaration blocks",
"$ref": "#/definitions/spaceRule"
},
"declaration-block-single-line-max-declarations": {
"description": "Limit the number of declaration within a single line declaration block",
"$ref": "#/definitions/integerRule"
},
"declaration-block-trailing-semicolon": {
"description": "Require or disallow a trailing semicolon within declaration blocks",
"$ref": "#/definitions/alwaysNeverRule"
}
}
},
"font": {
"properties": {
"font-family-name-quotes": {
"description": "Specify whether or not quotation marks should be used around font family names",
"type": [
"null",
"string",
"array"
],
"oneOf": [
{
"type": "null"
},
{
"type": "string",
"enum": [
"always-where-required",
"always-where-recommended",
"always-unless-keyword",
[]
]
},
{
"type": "array",
"minItems": 2,
"maxItems": 2,
"uniqueItems": true,
"items": {
"type": [
"string",
"object"
],
"anyOf": [
{
"type": "string",
"enum": [
"always-where-required",
"always-where-recommended",
"always-unless-keyword",
{}
]
},
{
"$ref": "#/definitions/coreRule"
}
]
}
}
]
},
"font-weight-notation": {
"description": "Require numeric or named (where possible) `font-weight` values. Also, when named values are expected, require only valid names",
"type": [
"null",
"string",
"array"
],
"oneOf": [
{
"type": "null"
},
{
"type": "string",
"enum": [
"numeric",
"named-where-possible",
[]
]
},
{
"type": "array",
"minItems": 2,
"maxItems": 2,
"uniqueItems": true,
"items": {
"type": [
"string",
"object"
],
"anyOf": [
{
"type": "string",
"enum": [
"numeric",
"named-where-possible",
{}
]
},
{
"type": "object",
"allOf": [
{
"$ref": "#/definitions/coreRule"
}
],
"properties": {
"ignore": {
"type": "array",
"uniqueItems": true,
"minItems": 1,
"items": {
"type": "string",
"enum": [
"relative"
]
}
}
}
}
]
}
}
]
}
}
},
"function": {
"properties": {
"function-blacklist": {
"description": "Specify a blacklist of disallowed functions",
"$ref": "#/definitions/arrayStringRule"
},
"function-calc-no-unspaced-operator": {
"description": "Disallow an unspaced operator within `calc` functions",
"$ref": "#/definitions/booleanRule"
},
"function-comma-newline-after": {
"description": "Require a newline or disallow whitespace after the commas of functions",
"$ref": "#/definitions/newlineRule"
},
"function-comma-newline-before": {
"description": "Require a newline or disallow whitespace before the commas of functions",
"$ref": "#/definitions/newlineRule"
},
"function-comma-space-after": {
"description": "Require a single space or disallow whitespace after the commas of functions",
"$ref": "#/definitions/spaceRule"
},
"function-comma-space-before": {
"description": "Require a single space or disallow whitespace before the commas of functions",
"$ref": "#/definitions/spaceRule"
},
"function-linear-gradient-no-nonstandard-direction": {
"description": "Disallow direction values in `linear-gradient()` calls that are not valid according to the standard syntax",
"$ref": "#/definitions/booleanRule"
},
"function-max-empty-lines": {
"description": "Limit the number of adjacent empty lines within functions",
"$ref": "#/definitions/integerRule"
},
"function-name-case": {
"description": "Specify lowercase or uppercase for function names",
"type": [
"null",
"string",
"array"
],
"oneOf": [
{
"type": "null"
},
{
"type": "string",
"enum": [
"lower",
"upper",
[]
]
},
{
"type": "array",
"minItems": 2,
"maxItems": 2,
"uniqueItems": true,
"items": {
"type": [
"string",
"object"
],
"anyOf": [
{
"type": "string",
"enum": [
"lower",
"upper",
{}
]
},
{
"type": "object",
"allOf": [
{
"$ref": "#/definitions/coreRule"
}
],
"description": "Ignore case of function names",
"properties": {
"ignoreFunctions": {
"$ref": "#/definitions/simpleArrayStringRule"
}
}
}
]
}
}
]
},
"function-parentheses-newline-inside": {
"description": "Require a newline or disallow whitespace on the inside of the parentheses of functions",
"$ref": "#/definitions/newlineRule"
},
"function-parentheses-space-inside": {
"description": "Require a single space or disallow whitespace on the inside of the parentheses of functions",
"$ref": "#/definitions/spaceRule"
},
"function-url-data-uris": {
"description": "Require or disallow data URIs for urls",
"$ref": "#/definitions/alwaysNeverRule"
},
"function-url-no-scheme-relative": {
"description": "Disallow scheme-relative urls",
"$ref": "#/definitions/booleanRule"
},
"function-url-quotes": {
"description": "Require or disallow quotes for urls",
"$ref": "#/definitions/alwaysNeverRule"
},
"function-url-scheme-whitelist": {
"description": "Specify a whitelist of allowed url schemes",
"$ref": "#/definitions/arrayStringRule"
},
"function-whitelist": {
"description": "Specify a whitelist of allowed functions",
"$ref": "#/definitions/arrayStringRule"
},
"function-whitespace-after": {
"description": "Require or disallow whitespace after functions",
"$ref": "#/definitions/alwaysNeverRule"
}
}
},
"generalSheet": {
"properties": {
"indentation": {
"description": "Specify indentation",
"type": [
"null",
"integer",
"string",
"array"
],
"oneOf": [
{
"type": [
"null",
"integer"
]
},
{
"type": "string",
"enum": [
"tab",
[]
]
},
{
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items": {
"type": "integer"
}
},
{
"type": "array",
"minItems": 2,
"maxItems": 2,
"uniqueItems": true,
"items": {
"type": [
"integer",
"string",
"object"
],
"anyOf": [
{
"type": "integer"
},
{
"type": "string",
"enum": [
"tab",
{}
]
},
{
"type": "object",
"allOf": [
{
"$ref": "#/definitions/coreRule"
}
],
"properties": {
"indentInsideParens": {
"description": "If `true`, the closing brace of a block (rule or at-rule) will be expected at the same indentation level as the block's inner nodes",
"type": "string",
"enum": [
"twice",
"once-at-root-twice-in-block"
]
},
"except": {
"description": "Do not indent for these things",
"type": "array",
"uniqueItems": true,
"minItems": 1,
"items": {
"type": "string",
"enum": [
"block",
"param",
"value"
]
}
},
"ignore": {
"description": "Ignore the indentation inside parentheses",
"type": "array",
"uniqueItems": true,
"minItems": 1,
"items": {
"type": "string",
"enum": [
"inside-parens",
"param",
"value"
]
}
}
}
}
]
}
}
]
},
"max-empty-lines": {
"description": "Limit the number of adjacent empty lines",
"$ref": "#/definitions/integerRule"
},
"max-line-length": {
"description": "Limit the length of a line",
"type": [
"null",
"integer",
"array"
],
"oneOf": [
{
"type": [
"null",
"integer"
]
},
{
"type": "array",
"minItems": 2,
"maxItems": 2,
"uniqueItems": true,
"items": {
"type": [
"integer",
"object"
],
"anyOf": [
{
"type": "integer"
},
{
"type": "object",
"allOf": [
{
"$ref": "#/definitions/coreRule"
}
],
"properties": {
"ignore": {
"type": [
"string",
"array"
],
"anyOf": [
{
"type": "string",
"enum": [
"non-comments",
"comments"
]
},
{
"type": "array",
"uniqueItems": true,
"minItems": 1,
"items": {
"type": "string",
"enum": [
"non-comments",
"comments"
]
}
}
]
}
}
}
]
}
}
]
},
"max-nesting-depth": {
"description": "Limit the allowed nesting depth",
"type": [
"null",
"integer",
"array"
],
"oneOf": [
{
"type": [
"null",
"integer"
]
},
{
"type": "array",
"minItems": 2,
"maxItems": 2,
"uniqueItems": true,
"items": {
"type": [
"integer",
"object"
],
"anyOf": [
{
"type": "integer"
},
{
"type": "object",
"allOf": [
{
"$ref": "#/definitions/coreRule"
}
],
"properties": {
"ignore": {
"type": "array",
"uniqueItems": true,
"minItems": 1,
"items": {
"type": "string",
"enum": [
"blockless-at-rules",
"pseudo-classes"
]
}
},
"ignoreAtRules": {
"$ref": "#/definitions/simpleArrayStringRule"
}
}
}
]
}
}
]
},
"no-browser-hacks": {
"description": "Disallow browser hacks that are irrelevant to the browsers you are targeting",
"type": [
"null",
"boolean",
"array"
],
"oneOf": [
{
"type": "null"
},
{
"type": "boolean",
"enum": [
true,
[]
]
},
{
"type": "array",
"minItems": 2,
"maxItems": 2,
"uniqueItems": true,
"items": {
"type": [
"boolean",
"object"
],
"anyOf": [
{
"type": "boolean",
"enum": [
true,
{}
]
},
{
"type": "object",
"allOf": [
{
"$ref": "#/definitions/coreRule"
}
],
"properties": {
"browsers": {
"$ref": "#/definitions/simpleStringOrArrayStringRule"
}
}
}
]
}
}
]
},
"no-descending-specificity": {
"description": "Disallow selectors of lower specificity from coming after overriding selectors of higher specificity",
"$ref": "#/definitions/booleanRule"
},
"no-duplicate-selectors": {
"description": "Disallow duplicate selectors within a stylesheet",
"$ref": "#/definitions/booleanRule"
},
"no-empty-source": {
"description": "Disallow empty sources",
"$ref": "#/definitions/booleanRule"
},
"no-eol-whitespace": {
"description": "Disallow end-of-line whitespace",
"type": [
"null",
"boolean",
"array"
],
"oneOf": [
{
"type": "null"
},
{
"type": "boolean",
"enum": [
true,
[]
]
},
{
"type": "array",
"minItems": 2,
"maxItems": 2,
"uniqueItems": true,
"items": {
"type": [
"boolean",
"object"
],
"anyOf": [
{
"type": "boolean",
"enum": [
true,
{}
]
},
{
"type": "object",
"allOf": [
{
"$ref": "#/definitions/coreRule"
}
],
"properties": {
"ignore": {
"type": "array",
"uniqueItems": true,
"minItems": 1,
"items": {
"type": "string",
"enum": [
"empty-lines"
]
}
}
}
}
]
}
}
]
},
"no-extra-semicolons": {
"description": "Disallow extra semicolons",
"$ref": "#/definitions/booleanRule"
},
"no-indistinguishable-colors": {
"description": "Disallow colors that are suspiciously close to being identical",
"type": [
"null",
"boolean",
"array"
],
"oneOf": [
{
"type": "null"
},
{
"type": "boolean",
"enum": [
true,
[]
]
},
{
"type": "array",
"minItems": 2,
"maxItems": 2,
"uniqueItems": true,
"items": {
"type": [
"boolean",
"object"
],
"anyOf": [
{
"type": "boolean",
"enum": [
true,
{}
]
},
{
"type": "object",
"allOf": [
{
"$ref": "#/definitions/coreRule"
}
],
"properties": {
"threshold": {
"type": "integer",
"default": 3,
"minimum": 0,
"maximum": 100
},
"ignore": {
"$ref": "#/definitions/simpleArrayStringRule"
},
"whitelist": {
"description": "An array of color pairs to ignore. Each pair is an array with two items",
"type": "array",
"uniqueItems": true,
"minItems": 1,
"items": {
"$ref": "#/definitions/simpleArrayStringRule"
}
}
}
}
]
}
}
]
},
"no-invalid-double-slash-comments": {
"description": "Disallow double-slash comments `(//...)` which are not supported by CSS and could lead to unexpected results",
"$ref": "#/definitions/booleanRule"
},
"no-missing-end-of-source-newline": {
"description": "Disallow missing end-of-source newlines",
"$ref": "#/definitions/booleanRule"
},
"no-unknown-animations": {
"description": "Disallow animation names that do not correspond to a `@keyframes` declaration",
"$ref": "#/definitions/booleanRule"
},
"no-unsupported-browser-features": {
"description": "Disallow features that are unsupported by the browsers that you are targeting",
"type": [
"null",
"boolean",
"array"
],
"oneOf": [
{
"type": "null"
},
{
"type": "boolean",
"enum": [
true,
[]
]
},
{
"type": "array",
"minItems": 2,
"maxItems": 2,
"uniqueItems": true,
"items": {
"type": [
"boolean",
"object"
],
"anyOf": [
{
"type": "boolean",
"enum": [
true,
{}
]
},
{
"type": "object",
"allOf": [
{
"$ref": "#/definitions/coreRule"
}
],
"properties": {
"browsers": {
"type": "string"
},
"ignore": {
"$ref": "#/definitions/simpleStringOrArrayStringRule"
}
}
}
]
}
}
]
}
}
},
"keyframeDeclaration": {
"properties": {
"keyframe-declaration-no-important": {
"description": "Disallow !important within keyframe declarations",
"$ref": "#/definitions/booleanRule"
}
}
},
"length": {
"properties": {
"length-zero-no-unit": {
"description": "Disallow units for zero lengths",
"$ref": "#/definitions/booleanRule"
}
}
},
"mediaFeature": {
"properties": {
"media-feature-colon-space-after": {
"description": "Require a single space or disallow whitespace after the colon in media features",
"$ref": "#/definitions/alwaysNeverRule"
},
"media-feature-colon-space-before": {
"description": "Require a single space or disallow whitespace before the colon in media features",
"$ref": "#/definitions/alwaysNeverRule"
},
"media-feature-name-case": {
"description": "Specify lowercase or uppercase for media feature names",
"$ref": "#/definitions/lowerUpperRule"
},
"media-feature-name-no-unknown": {
"description": "Disallow unknown media feature names",
"type": [
"null",
"boolean",
"array"
],
"oneOf": [
{
"type": "null"
},
{
"type": "boolean",
"enum": [
true,
[]
]
},
{
"type": "array",
"minItems": 2,
"maxItems": 2,
"uniqueItems": true,
"items": {
"type": [
"boolean",
"object"
],
"anyOf": [
{
"type": "boolean",
"enum": [
true,
{}
]
},
{
"type": "object",
"allOf": [
{
"$ref": "#/definitions/coreRule"
}
],
"properties": {
"ignoreMediaFeatureNames": {
"$ref": "#/definitions/simpleArrayStringRule"
}
}
}
]
}
}
]
},
"media-feature-name-no-vendor-prefix": {
"description": "Disallow vendor prefixes for media feature names",
"$ref": "#/definitions/booleanRule"
},
"media-feature-no-missing-punctuation": {
"description": "Disallow missing punctuation for non-boolean media features",
"$ref": "#/definitions/booleanRule"
},
"media-feature-parentheses-space-inside": {
"description": "Require a single space or disallow whitespace on the inside of the parentheses within media features",
"$ref": "#/definitions/alwaysNeverRule"
},
"media-feature-range-operator-space-after": {
"description": "Require a single space or disallow whitespace after the range operator in media features",
"$ref": "#/definitions/alwaysNeverRule"
},
"media-feature-range-operator-space-before": {
"description": "Require a single space or disallow whitespace before the range operator in media features",
"$ref": "#/definitions/alwaysNeverRule"
}
}
},
"mediaQueryList": {
"properties": {
"media-query-list-comma-newline-after": {
"description": "Require a newline or disallow whitespace after the commas of media query lists",
"$ref": "#/definitions/newlineRule"
},
"media-query-list-comma-newline-before": {
"description": "Require a newline or disallow whitespace before the commas of media query lists",
"$ref": "#/definitions/newlineRule"
},
"media-query-list-comma-space-after": {
"description": "Require a single space or disallow whitespace after the commas of media query lists",
"$ref": "#/definitions/spaceRule"
},
"media-query-list-comma-space-before": {
"description": "Require a single space or disallow whitespace before the commas of media query lists",
"$ref": "#/definitions/spaceRule"
}
}
},
"number": {
"properties": {
"number-leading-zero": {
"description": "Require or disallow a leading zero for fractional numbers less than 1",
"$ref": "#/definitions/alwaysNeverRule"
},
"number-max-precision": {
"description": "Limit the number of decimal places allowed in numbers",
"$ref": "#/definitions/integerRule"
},
"number-no-trailing-zeros": {
"description": "Disallow trailing zeros in numbers",
"$ref": "#/definitions/booleanRule"
}
}
},
"property": {
"properties": {
"property-blacklist": {
"description": "Specify a blacklist of disallowed properties",
"$ref": "#/definitions/arrayStringRule"
},
"property-case": {
"description": "Specify lowercase or uppercase for properties",
"$ref": "#/definitions/lowerUpperRule"
},
"property-no-unknown": {
"description": "Disallow unknown properties",
"type": [
"null",
"boolean",
"array"
],
"oneOf": [
{
"type": "null"
},
{
"type": "boolean",
"enum": [
true,
[]
]
},
{
"type": "array",
"minItems": 2,
"maxItems": 2,
"uniqueItems": true,
"items": {
"type": [
"boolean",
"object"
],
"anyOf": [
{
"type": "boolean",
"enum": [
true,
{}
]
},
{
"type": "object",
"allOf": [
{
"$ref": "#/definitions/coreRule"
}
],
"properties": {
"ignoreProperties": {
"$ref": "#/definitions/simpleArrayStringRule"
},
"checkPrefixed": {
"description": "If `true`, this rule will check vendor-prefixed properties",
"type": "boolean"
}
}
}
]
}
}
]
},
"property-no-vendor-prefix": {
"description": "Disallow vendor prefixes for properties",
"$ref": "#/definitions/booleanRule"
},
"property-whitelist": {
"description": "Specify a whitelist of allowed properties",
"$ref": "#/definitions/arrayStringRule"
}
}
},
"rootRule": {
"properties": {
"root-no-standard-properties": {
"description": "Disallow standard properties inside `:root` rules",
"$ref": "#/definitions/booleanRule"
}
}
},
"rule": {
"properties": {
"rule-nested-empty-line-before": {
"description": "Require or disallow an empty line before nested rules",
"type": [
"null",
"string",
"array"
],
"oneOf": [
{
"type": "null"
},
{
"type": "string",
"enum": [
"always",
"never",
"always-multi-line",
"never-multi-line",
[]
]
},
{
"type": "array",
"minItems": 2,
"maxItems": 2,
"uniqueItems": true,
"items": {
"type": [
"string",
"object"
],
"anyOf": [
{
"type": "string",
"enum": [
"always",
"never",
"always-multi-line",
"never-multi-line",
{}
]
},
{
"type": "object",
"allOf": [
{
"$ref": "#/definitions/coreRule"
}
],
"properties": {
"except": {
"description": "Reverse the primary option if the rule is the first in a block",
"type": "array",
"uniqueItems": true,
"minItems": 1,
"items": {
"type": "string",
"enum": [
"first-nested"
]
}
},
"ignore": {
"description": "Ignore rules that come after a comment",
"type": "array",
"uniqueItems": true,
"minItems": 1,
"items": {
"type": "string",
"enum": [
"after-comment"
]
}
}
}
}
]
}
}
]
},
"rule-non-nested-empty-line-before": {
"description": "Require or disallow an empty line before non-nested rules",
"type": [
"null",
"string",
"array"
],
"oneOf": [
{
"type": "null"
},
{
"type": "string",
"enum": [
"always",
"never",
"always-multi-line",
"never-multi-line",
[]
]
},
{
"type": "array",
"minItems": 2,
"maxItems": 2,
"uniqueItems": true,
"items": {
"type": [
"string",
"object"
],
"anyOf": [
{
"type": "string",
"enum": [
"always",
"never",
"always-multi-line",
"never-multi-line",
{}
]
},
{
"type": "object",
"allOf": [
{
"$ref": "#/definitions/coreRule"
}
],
"properties": {
"except": {
"description": "Reverse the primary option if the rule is the first in a block",
"type": "array",
"uniqueItems": true,
"minItems": 1,
"items": {
"type": "string",
"enum": [
"after-single-line-comment"
]
}
},
"ignore": {
"description": "Ignore rules that come after a comment",
"type": "array",
"uniqueItems": true,
"minItems": 1,
"items": {
"type": "string",
"enum": [
"after-comment"
]
}
}
}
}
]
}
}
]
}
}
},
"selector": {
"properties": {
"selector-attribute-brackets-space-inside": {
"description": "Require a single space or disallow whitespace on the inside of the brackets within attribute selector",
"$ref": "#/definitions/alwaysNeverRule"
},
"selector-attribute-operator-blacklist": {
"description": "Specify a blacklist of disallowed attribute operators",
"$ref": "#/definitions/arrayStringRule"
},
"selector-attribute-operator-space-after": {
"description": "Require a single space or disallow whitespace after operators within attribute selectors",
"$ref": "#/definitions/alwaysNeverRule"
},
"selector-attribute-operator-space-before": {
"description": "Require a single space or disallow whitespace before operators within attribute selectors",
"$ref": "#/definitions/alwaysNeverRule"
},
"selector-attribute-operator-whitelist": {
"description": "Specify a whitelist of allowed attribute operators",
"$ref": "#/definitions/arrayStringRule"
},
"selector-attribute-quotes": {
"description": "Require or disallow quotes for attribute values",
"$ref": "#/definitions/alwaysNeverRule"
},
"selector-class-pattern": {
"description": "Specify a pattern for class selectors",
"type": [
"null",
"string",
"array"
],
"oneOf": [
{
"type": [
"null",
"string"
]
},
{
"type": "array",
"minItems": 2,
"maxItems": 2,
"uniqueItems": true,
"items": {
"type": [
"string",
"object"
],
"anyOf": [
{
"type": "string"
},
{
"type": "object",
"allOf": [
{
"$ref": "#/definitions/coreRule"
}
],
"properties": {
"resolveNestedSelectors": {
"description": "This option will resolve nested selectors with `&` interpolation",
"type": "boolean",
"default": false
}
}
}
]
}
}
]
},
"selector-combinator-space-after": {
"description": "Require a single space or disallow whitespace after the combinators of selectors",
"$ref": "#/definitions/alwaysNeverRule"
},
"selector-combinator-space-before": {
"description": "Require a single space or disallow whitespace before the combinators of selectors",
"$ref": "#/definitions/alwaysNeverRule"
},
"selector-descendant-combinator-no-non-space": {
"description": "Disallow non-space characters for descendant combinators of selectors",
"$ref": "#/definitions/booleanRule"
},
"selector-id-pattern": {
"description": "Specify a pattern for id selectors",
"$ref": "#/definitions/stringRule"
},
"selector-max-compound-selectors": {
"description": "Limit the number of compound selectors in a selector",
"$ref": "#/definitions/integerRule"
},
"selector-max-specificity": {
"description": "Limit the specificity of selectors",
"$ref": "#/definitions/stringRule"
},
"selector-nested-pattern": {
"description": "Specify a pattern for the selectors of rules nested within rules",
"$ref": "#/definitions/stringRule"
},
"selector-no-attribute": {
"description": "Disallow attribute selectors",
"$ref": "#/definitions/booleanRule"
},
"selector-no-combinator": {
"description": "Disallow combinators in selectors",
"$ref": "#/definitions/booleanRule"
},
"selector-no-id": {
"description": "Disallow id selectors",
"$ref": "#/definitions/booleanRule"
},
"selector-no-qualifying-type": {
"description": "Disallow qualifying a selector by type",
"type": [
"null",
"boolean",
"array"
],
"oneOf": [
{
"type": "null"
},
{
"type": "boolean",
"enum": [
true,
[]
]
},
{
"type": "array",
"minItems": 2,
"maxItems": 2,
"uniqueItems": true,
"items": {
"type": [
"boolean",
"object"
],
"anyOf": [
{
"type": "boolean",
"enum": [
true,
{}
]
},
{
"type": "object",
"allOf": [
{
"$ref": "#/definitions/coreRule"
}
],
"properties": {
"ignore": {
"type": "array",
"uniqueItems": true,
"minItems": 1,
"items": {
"type": "string",
"enum": [
"attribute",
"class",
"id"
]
}
}
}
}
]
}
}
]
},
"selector-no-type": {
"description": "Disallow type selectors",
"type": [
"null",
"boolean",
"array"
],
"oneOf": [
{
"type": "null"
},
{
"type": "boolean",
"enum": [
true,
[]
]
},
{
"type": "array",
"minItems": 2,
"maxItems": 2,
"uniqueItems": true,
"items": {
"type": [
"boolean",
"object"
],
"anyOf": [
{
"type": "boolean",
"enum": [
true,
{}
]
},
{
"type": "object",
"allOf": [
{
"$ref": "#/definitions/coreRule"
}
],
"properties": {
"ignore": {
"type": "array",
"uniqueItems": true,
"minItems": 1,
"items": {
"type": "string",
"enum": [
"compounded",
"descendant"
]
}
},
"ignoreTypes": {
"$ref": "#/definitions/simpleArrayStringRule"
}
}
}
]
}
}
]
},
"selector-no-universal": {
"description": "Disallow the universal selector",
"$ref": "#/definitions/booleanRule"
},
"selector-no-vendor-prefix": {
"description": "Disallow vendor prefixes for selectors",
"$ref": "#/definitions/booleanRule"
},
"selector-pseudo-class-case": {
"description": "Specify lowercase or uppercase for pseudo-class selectors",
"$ref": "#/definitions/lowerUpperRule"
},
"selector-pseudo-class-no-unknown": {
"description": "Disallow unknown pseudo-class selectors",
"type": [
"null",
"boolean",
"array"
],
"oneOf": [
{
"type": "null"
},
{
"type": "boolean",
"enum": [
true,
[]
]
},
{
"type": "array",
"minItems": 2,
"maxItems": 2,
"uniqueItems": true,
"items": {
"type": [
"boolean",
"object"
],
"anyOf": [
{
"type": "boolean",
"enum": [
true,
{}
]
},
{
"type": "object",
"allOf": [
{
"$ref": "#/definitions/coreRule"
}
],
"properties": {
"ignorePseudoClasses": {
"$ref": "#/definitions/simpleArrayStringRule"
}
}
}
]
}
}
]
},
"selector-pseudo-class-parentheses-space-inside": {
"description": "Require a single space or disallow whitespace on the inside of the parentheses within pseudo-class selectors",
"$ref": "#/definitions/alwaysNeverRule"
},
"selector-pseudo-class-whitelist": {
"description": "Specify a whitelist of allowed pseudo-class selectors",
"$ref": "#/definitions/arrayStringRule"
},
"selector-pseudo-element-case": {
"description": "Specify lowercase or uppercase for pseudo-element selectors",
"$ref": "#/definitions/lowerUpperRule"
},
"selector-pseudo-element-colon-notation": {
"description": "Specify single or double colon notation for applicable pseudo-elements",
"$ref": "#/definitions/singleDoubleRule"
},
"selector-pseudo-element-no-unknown": {
"description": "Disallow unknown pseudo-element selectors",
"type": [
"null",
"boolean",
"array"
],
"oneOf": [
{
"type": "null"
},
{
"type": "boolean",
"enum": [
true,
[]
]
},
{
"type": "array",
"minItems": 2,
"maxItems": 2,
"uniqueItems": true,
"items": {
"type": [
"boolean",
"object"
],
"anyOf": [
{
"type": "boolean",
"enum": [
true,
{}
]
},
{
"type": "object",
"allOf": [
{
"$ref": "#/definitions/coreRule"
}
],
"properties": {
"ignorePseudoElements": {
"$ref": "#/definitions/simpleArrayStringRule"
}
}
}
]
}
}
]
},
"selector-root-no-composition": {
"description": "Disallow the composition of :root in selectors",
"$ref": "#/definitions/booleanRule"
},
"selector-type-case": {
"description": "Specify lowercase or uppercase for type selectors",
"$ref": "#/definitions/lowerUpperRule"
},
"selector-type-no-unknown": {
"description": "Disallow unknown type selectors",
"type": [
"null",
"boolean",
"array"
],
"oneOf": [
{
"type": "null"
},
{
"type": "boolean",
"enum": [
true,
[]
]
},
{
"type": "array",
"minItems": 2,
"maxItems": 2,
"uniqueItems": true,
"items": {
"type": [
"boolean",
"object"
],
"anyOf": [
{
"type": "boolean",
"enum": [
true,
{}
]
},
{
"type": "object",
"allOf": [
{
"$ref": "#/definitions/coreRule"
}
],
"properties": {
"ignoreTypes": {
"$ref": "#/definitions/simpleArrayStringRule"
}
}
}
]
}
}
]
},
"selector-max-empty-lines": {
"description": "Limit the number of adjacent empty lines within selectors",
"$ref": "#/definitions/integerRule"
}
}
},
"selectorList": {
"properties": {
"selector-list-comma-newline-after": {
"description": "Require a newline or disallow whitespace after the commas of selector lists",
"$ref": "#/definitions/newlineRule"
},
"selector-list-comma-newline-before": {
"description": "Require a newline or disallow whitespace before the commas of selector lists",
"$ref": "#/definitions/newlineRule"
},
"selector-list-comma-space-after": {
"description": "Require a single space or disallow whitespace after the commas of selector lists",
"$ref": "#/definitions/spaceRule"
},
"selector-list-comma-space-before": {
"description": "Require a single space or disallow whitespace before the commas of selector lists",
"$ref": "#/definitions/spaceRule"
}
}
},
"shorthandProperty": {
"properties": {
"shorthand-property-no-redundant-values": {
"description": "Disallow redundant values in shorthand properties",
"$ref": "#/definitions/booleanRule"
}
}
},
"string": {
"properties": {
"string-no-newline": {
"description": "Disallow (unescaped) newlines in strings",
"$ref": "#/definitions/booleanRule"
},
"string-quotes": {
"description": "Specify single or double quotes around strings",
"$ref": "#/definitions/singleDoubleRule"
}
}
},
"stylelintDisableComment": {
"properties": {
"stylelint-disable-reason": {
"description": "Require a reason comment before or after `stylelint-disable` comments",
"type": [
"null",
"string",
"array"
],
"oneOf": [
{
"type": "null"
},
{
"type": "string",
"enum": [
"always-before",
"always-after",
[]
]
},
{
"type": "array",
"minItems": 2,
"maxItems": 2,
"uniqueItems": true,
"items": {
"type": [
"string",
"object"
],
"anyOf": [
{
"type": "string",
"enum": [
"always-before",
"always-after",
{}
]
},
{
"$ref": "#/definitions/coreRule"
}
]
}
}
]
}
}
},
"time": {
"properties": {
"time-no-imperceptible": {
"description": "Disallow `animation` and `transition` less than or equal to 100ms",
"$ref": "#/definitions/booleanRule"
}
}
},
"unit": {
"properties": {
"unit-blacklist": {
"description": "Specify a blacklist of disallowed units",
"$ref": "#/definitions/unitRule"
},
"unit-case": {
"description": "Specify lowercase or uppercase for units",
"$ref": "#/definitions/lowerUpperRule"
},
"unit-no-unknown": {
"description": "Disallow unknown units",
"type": [
"null",
"boolean",
"array"
],
"oneOf": [
{
"type": "null"
},
{
"type": "boolean",
"enum": [
true,
[]
]
},
{
"type": "array",
"minItems": 2,
"maxItems": 2,
"uniqueItems": true,
"items": {
"type": [
"boolean",
"object"
],
"anyOf": [
{
"type": "boolean",
"enum": [
true,
{}
]
},
{
"type": "object",
"allOf": [
{
"$ref": "#/definitions/coreRule"
}
],
"properties": {
"ignoreUnits": {
"$ref": "#/definitions/simpleArrayStringRule"
}
}
}
]
}
}
]
},
"unit-whitelist": {
"description": "Specify a whitelist of allowed units",
"$ref": "#/definitions/unitRule"
}
}
},
"value": {
"properties": {
"value-keyword-case": {
"description": "Specify lowercase or uppercase for keywords values",
"type": [
"null",
"string",
"array"
],
"oneOf": [
{
"type": "null"
},
{
"type": "string",
"enum": [
"lower",
"upper",
[]
]
},
{
"type": "array",
"minItems": 2,
"maxItems": 2,
"uniqueItems": true,
"items": {
"type": [
"string",
"object"
],
"anyOf": [
{
"type": "string",
"enum": [
"lower",
"upper",
{}
]
},
{
"type": "object",
"allOf": [
{
"$ref": "#/definitions/coreRule"
}
],
"properties": {
"ignoreKeywords": {
"description": "Ignore case of keywords values",
"$ref": "#/definitions/simpleArrayStringRule"
}
}
}
]
}
}
]
},
"value-no-vendor-prefix": {
"description": "Disallow vendor prefixes for values",
"$ref": "#/definitions/booleanRule"
}
}
},
"valueList": {
"properties": {
"value-list-comma-newline-after": {
"description": "Require a newline or disallow whitespace after the commas of value lists",
"$ref": "#/definitions/newlineRule"
},
"value-list-comma-newline-before": {
"description": "Require a newline or disallow whitespace before the commas of value lists",
"$ref": "#/definitions/newlineRule"
},
"value-list-comma-space-after": {
"description": "Require a single space or disallow whitespace after the commas of value lists",
"$ref": "#/definitions/spaceRule"
},
"value-list-comma-space-before": {
"description": "Require a single space or disallow whitespace before the commas of value lists",
"$ref": "#/definitions/spaceRule"
},
"value-list-max-empty-lines": {
"description": "Limit the number of adjacent empty lines within value lists",
"$ref": "#/definitions/integerRule"
}
}
}
},
"properties": {
"extends": {
"description": "Your configuration can extend an existing configuration(s) (whether your own or a third-party config)",
"$ref": "#/definitions/simpleStringOrArrayStringRule"
},
"plugins": {
"description": "Plugins are rules or sets of rules built by the community that support methodologies, toolsets, non-standard CSS features, or very specific use cases",
"$ref": "#/definitions/simpleArrayStringRule"
},
"processors": {
"description": "Processors are functions that hook into stylelint's pipeline, modifying code on its way into stylelint and modifying results on their way out",
"type": "array",
"items": {
"anyOf": [
{
"type": "string"
},
{
"type": "array",
"items": [
{
"type": "string"
}
],
"additionalItems": {
"type": "object"
}
}
]
}
},
"ignoreFiles": {
"description": "Provide a glob or array of globs to ignore specific files",
"$ref": "#/definitions/simpleStringOrArrayStringRule"
},
"defaultSeverity": {
"description": "The default severity level for all rules that do not have a severity specified in their secondary options",
"type": "string",
"enum": [
"warning",
"error"
]
},
"rules": {
"type": "object",
"allOf": [
{
"$ref": "#/definitions/atRule"
},
{
"$ref": "#/definitions/block"
},
{
"$ref": "#/definitions/color"
},
{
"$ref": "#/definitions/comment"
},
{
"$ref": "#/definitions/customMedia"
},
{
"$ref": "#/definitions/customProperty"
},
{
"$ref": "#/definitions/declaration"
},
{
"$ref": "#/definitions/declarationBlock"
},
{
"$ref": "#/definitions/font"
},
{
"$ref": "#/definitions/function"
},
{
"$ref": "#/definitions/generalSheet"
},
{
"$ref": "#/definitions/keyframeDeclaration"
},
{
"$ref": "#/definitions/length"
},
{
"$ref": "#/definitions/mediaFeature"
},
{
"$ref": "#/definitions/mediaQueryList"
},
{
"$ref": "#/definitions/number"
},
{
"$ref": "#/definitions/property"
},
{
"$ref": "#/definitions/rootRule"
},
{
"$ref": "#/definitions/rule"
},
{
"$ref": "#/definitions/selector"
},
{
"$ref": "#/definitions/selectorList"
},
{
"$ref": "#/definitions/shorthandProperty"
},
{
"$ref": "#/definitions/string"
},
{
"$ref": "#/definitions/stylelintDisableComment"
},
{
"$ref": "#/definitions/time"
},
{
"$ref": "#/definitions/unit"
},
{
"$ref": "#/definitions/value"
},
{
"$ref": "#/definitions/valueList"
}
]
}
}
}
{
"title": "JSON schema for ESLint configuration files",
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"definitions": {
"rule": {
"oneOf": [
{
"description": "ESLint rule\n\n0 - turns the rule off\n1 - turn the rule on as a warning (doesn't affect exit code)\n2 - turn the rule on as an error (exit code is 1 when triggered)\n",
"type": "integer",
"minimum": 0,
"maximum": 2
},
{
"description": "ESLint rule\n\n\"off\" - turns the rule off\n\"warn\" - turn the rule on as a warning (doesn't affect exit code)\n\"error\" - turn the rule on as an error (exit code is 1 when triggered)\n",
"type": "string",
"enum": [
"off", "warn", "error"
]
},
{
"type": "array"
}
]
},
"possibleErrors": {
"properties": {
"comma-dangle": { "$ref": "#/definitions/rule", "description": "Require or disallow trailing commas"},
"for-direction": {"$ref": "#/definitions/rule", "description": "Enforce “for” loop update clause moving the counter in the right direction"},
"getter-return": {"$ref": "#/definitions/rule", "description": "Enforce return statements in getters"},
"no-await-in-loop": {"$ref": "#/definitions/rule", "description": "Disallow await inside of loops"},
"no-compare-neg-zero": {"$ref": "#/definitions/rule", "description": "Disallow comparing against -0"},
"no-cond-assign": { "$ref": "#/definitions/rule", "description": "Disallow assignment operators in conditional expressions" },
"no-console": { "$ref": "#/definitions/rule", "description": "Disallow the use of console" },
"no-constant-condition": { "$ref": "#/definitions/rule", "description": "Disallow constant expressions in conditions" },
"no-control-regex": { "$ref": "#/definitions/rule", "description": "Disallow control characters in regular expressions" },
"no-debugger": { "$ref": "#/definitions/rule", "description": "Disallow the use of debugger" },
"no-dupe-args": { "$ref": "#/definitions/rule", "description": "Disallow duplicate arguments in function definitions" },
"no-dupe-keys": { "$ref": "#/definitions/rule", "description": "Disallow duplicate keys in object literals" },
"no-duplicate-case": { "$ref": "#/definitions/rule", "description": "Disallow duplicate case labels" },
"no-empty": { "$ref": "#/definitions/rule", "description": "Disallow empty block statements" },
"no-empty-character-class": { "$ref": "#/definitions/rule", "description": "Disallow empty character classes in regular expressions" },
"no-ex-assign": { "$ref": "#/definitions/rule", "description": "Disallow reassigning exceptions in catch clauses" },
"no-extra-boolean-cast": { "$ref": "#/definitions/rule", "description": "Disallow unnecessary boolean casts" },
"no-extra-parens": { "$ref": "#/definitions/rule", "description": "Disallow unnecessary parentheses" },
"no-extra-semi": { "$ref": "#/definitions/rule", "description": "Disallow unnecessary semicolons" },
"no-func-assign": { "$ref": "#/definitions/rule", "description": "Disallow reassigning function declarations" },
"no-inner-declarations": { "$ref": "#/definitions/rule", "description": "Disallow function or var declarations in nested blocks" },
"no-invalid-regexp": { "$ref": "#/definitions/rule", "description": "Disallow invalid regular expression strings in RegExp constructors" },
"no-irregular-whitespace": { "$ref": "#/definitions/rule", "description": "Disallow irregular whitespace outside of strings and comments" },
"no-negated-in-lhs": { "$ref": "#/definitions/rule", "description": "Disallow negating the left operand in in expressions (deprecated)"},
"no-obj-calls": { "$ref": "#/definitions/rule", "description": "Disallow calling global object properties as functions" },
"no-prototype-builtins": { "$ref": "#/definitions/rule", "description": "Disallow calling some Object.prototype methods directly on objects" },
"no-regex-spaces": { "$ref": "#/definitions/rule", "description": "Disallow multiple spaces in regular expressions" },
"no-sparse-arrays": { "$ref": "#/definitions/rule", "description": "Disallow sparse arrays" },
"no-template-curly-in-string": { "$ref": "#/definitions/rule", "description": "Disallow template literal placeholder syntax in regular strings" },
"no-unexpected-multiline": { "$ref": "#/definitions/rule", "description": "Disallow confusing multiline expressions" },
"no-unreachable": { "$ref": "#/definitions/rule", "description": "Disallow unreachable code after return, throw, continue, and break statements" },
"no-unsafe-finally": { "$ref": "#/definitions/rule", "description": "Disallow control flow statements in finally blocks" },
"no-unsafe-negation": { "$ref": "#/definitions/rule", "description": "Disallow negating the left operand of relational operators" },
"use-isnan": { "$ref": "#/definitions/rule", "description": "Require calls to isNaN() when checking for NaN" },
"valid-jsdoc": { "$ref": "#/definitions/rule", "description": "Enforce valid JSDoc comments" },
"valid-typeof": { "$ref": "#/definitions/rule", "description": "Enforce comparing typeof expressions against valid strings" }
}
},
"bestPractices": {
"properties": {
"accessor-pairs": { "$ref": "#/definitions/rule", "description": "Enforce getter and setter pairs in objects" },
"array-callback-return": { "$ref": "#/definitions/rule", "description": "Enforce return statements in callbacks of array methods" },
"block-scoped-var": { "$ref": "#/definitions/rule", "description": "Enforce the use of variables within the scope they are defined" },
"class-methods-use-this": { "$ref": "#/definitions/rule", "description": "Enforce that class methods utilize this" },
"complexity": { "$ref": "#/definitions/rule", "description": "Enforce a maximum cyclomatic complexity allowed in a program" },
"consistent-return": { "$ref": "#/definitions/rule", "description": "Require return statements to either always or never specify values" },
"curly": { "$ref": "#/definitions/rule", "description": "Enforce consistent brace style for all control statements" },
"default-case": { "$ref": "#/definitions/rule", "description": "Require default cases in switch statements" },
"dot-location": { "$ref": "#/definitions/rule", "description": "Enforce consistent newlines before and after dots" },
"dot-notation": { "$ref": "#/definitions/rule", "description": "Enforce dot notation whenever possible" },
"eqeqeq": { "$ref": "#/definitions/rule", "description": "Require the use of === and !==" },
"guard-for-in": { "$ref": "#/definitions/rule", "description": "Require for-in loops to include an if statement" },
"no-alert": { "$ref": "#/definitions/rule", "description": "Disallow the use of alert, confirm, and prompt" },
"no-caller": { "$ref": "#/definitions/rule", "description": "Disallow the use of arguments.caller or arguments.callee" },
"no-case-declarations": { "$ref": "#/definitions/rule", "description": "Disallow lexical declarations in case clauses" },
"no-div-regex": { "$ref": "#/definitions/rule", "description": "Disallow division operators explicitly at the beginning of regular expressions" },
"no-else-return": { "$ref": "#/definitions/rule", "description": "Disallow else blocks after return statements in if statements" },
"no-empty-function": { "$ref": "#/definitions/rule", "description": "Disallow empty functions" },
"no-empty-pattern": { "$ref": "#/definitions/rule", "description": "Disallow empty destructuring patterns" },
"no-eq-null": { "$ref": "#/definitions/rule", "description": "Disallow null comparisons without type-checking operators" },
"no-eval": { "$ref": "#/definitions/rule", "description": "Disallow the use of eval()" },
"no-extend-native": { "$ref": "#/definitions/rule", "description": "Disallow extending native types" },
"no-extra-bind": { "$ref": "#/definitions/rule", "description": "Disallow unnecessary calls to .bind()" },
"no-extra-label": { "$ref": "#/definitions/rule", "description": "Disallow unnecessary labels" },
"no-fallthrough": { "$ref": "#/definitions/rule", "description": "Disallow fallthrough of case statements" },
"no-floating-decimal": { "$ref": "#/definitions/rule", "description": "Disallow leading or trailing decimal points in numeric literals" },
"no-global-assign": { "$ref": "#/definitions/rule", "description": "Disallow assignments to native objects or read-only global variables" },
"no-implicit-coercion": { "$ref": "#/definitions/rule", "description": "Disallow shorthand type conversions" },
"no-implicit-globals": { "$ref": "#/definitions/rule", "description": "Disallow var and named function declarations in the global scope" },
"no-implied-eval": { "$ref": "#/definitions/rule", "description": "Disallow the use of eval()-like methods" },
"no-invalid-this": { "$ref": "#/definitions/rule", "description": "Disallow this keywords outside of classes or class-like objects" },
"no-iterator": { "$ref": "#/definitions/rule", "description": "Disallow the use of the __iterator__ property" },
"no-labels": { "$ref": "#/definitions/rule", "description": "Disallow labeled statements" },
"no-lone-blocks": { "$ref": "#/definitions/rule", "description": "Disallow unnecessary nested blocks" },
"no-loop-func": { "$ref": "#/definitions/rule", "description": "Disallow function declarations and expressions inside loop statements" },
"no-magic-numbers": { "$ref": "#/definitions/rule", "description": "Disallow magic numbers" },
"no-multi-spaces": { "$ref": "#/definitions/rule", "description": "Disallow multiple spaces" },
"no-multi-str": { "$ref": "#/definitions/rule", "description": "Disallow multiline strings" },
"no-native-reassign": { "$ref": "#/definitions/rule"},
"no-new": { "$ref": "#/definitions/rule", "description": "Disallow new operators outside of assignments or comparisons" },
"no-new-func": { "$ref": "#/definitions/rule", "description": "Disallow new operators with the Function object" },
"no-new-wrappers": { "$ref": "#/definitions/rule", "description": "Disallow new operators with the String, Number, and Boolean objects" },
"no-octal": { "$ref": "#/definitions/rule", "description": "Disallow octal literals" },
"no-octal-escape": { "$ref": "#/definitions/rule", "description": "Disallow octal escape sequences in string literals" },
"no-param-reassign": { "$ref": "#/definitions/rule", "description": "Disallow reassigning function parameters" },
"no-proto": { "$ref": "#/definitions/rule", "description": "Disallow the use of the __proto__ property" },
"no-redeclare": { "$ref": "#/definitions/rule", "description": "Disallow var redeclaration" },
"no-restricted-properties": { "$ref": "#/definitions/rule", "description": "Disallow certain properties on certain objects" },
"no-return-assign": { "$ref": "#/definitions/rule", "description": "Disallow assignment operators in return statements" },
"no-return-await": { "$ref": "#/definitions/rule", "description": "Disallow unnecessary return await" },
"no-script-url": { "$ref": "#/definitions/rule", "description": "Disallow javascript: urls" },
"no-self-assign": { "$ref": "#/definitions/rule", "description": "Disallow assignments where both sides are exactly the same" },
"no-self-compare": { "$ref": "#/definitions/rule", "description": "Disallow comparisons where both sides are exactly the same" },
"no-sequences": { "$ref": "#/definitions/rule", "description": "Disallow comma operators" },
"no-throw-literal": { "$ref": "#/definitions/rule", "description": "Disallow throwing literals as exceptions" },
"no-unmodified-loop-condition": { "$ref": "#/definitions/rule", "description": "Disallow unmodified loop conditions" },
"no-unused-expressions": { "$ref": "#/definitions/rule", "description": "Disallow unused expressions" },
"no-unused-labels": { "$ref": "#/definitions/rule", "description": "Disallow unused labels" },
"no-useless-call": { "$ref": "#/definitions/rule", "description": "Disallow unnecessary calls to .call() and .apply()" },
"no-useless-concat": { "$ref": "#/definitions/rule", "description": "Disallow unnecessary concatenation of literals or template literals" },
"no-useless-escape": { "$ref": "#/definitions/rule", "description": "Disallow unnecessary escape characters" },
"no-useless-return": { "$ref": "#/definitions/rule", "description": "Disallow redundant return statements" },
"no-void": { "$ref": "#/definitions/rule", "description": "Disallow void operators" },
"no-warning-comments": { "$ref": "#/definitions/rule", "description": "Disallow specified warning terms in comments" },
"no-with": { "$ref": "#/definitions/rule", "description": "Disallow with statements" },
"prefer-promise-reject-errors": { "$ref": "#/definitions/rule", "description": "Require using Error objects as Promise rejection reasons" },
"radix": { "$ref": "#/definitions/rule", "description": "Enforce the consistent use of the radix argument when using parseInt()" },
"require-await": { "$ref": "#/definitions/rule", "description": "Disallow async functions which have no await expression" },
"vars-on-top": { "$ref": "#/definitions/rule", "description": "Require var declarations be placed at the top of their containing scope" },
"wrap-iife": { "$ref": "#/definitions/rule", "description": "Require parentheses around immediate function invocations" },
"yoda": { "$ref": "#/definitions/rule", "description": "Require or Disallow “Yoda” conditions" }
}
},
"strictMode": {
"properties": {
"strict": { "$ref": "#/definitions/rule", "description": "require or disallow strict mode directives" }
}
},
"variables": {
"properties": {
"init-declarations": { "$ref": "#/definitions/rule", "description": "Require or disallow initialization in var declarations" },
"no-catch-shadow": { "$ref": "#/definitions/rule", "description": "Disallow catch clause parameters from shadowing variables in the outer scope" },
"no-delete-var": { "$ref": "#/definitions/rule", "description": "Disallow deleting variables" },
"no-label-var": { "$ref": "#/definitions/rule", "description": "Disallow labels that share a name with a variable" },
"no-restricted-globals": { "$ref": "#/definitions/rule", "description": "Disallow specified global variables" },
"no-shadow": { "$ref": "#/definitions/rule", "description": "Disallow var declarations from shadowing variables in the outer scope" },
"no-shadow-restricted-names": { "$ref": "#/definitions/rule", "description": "Disallow identifiers from shadowing restricted names" },
"no-undef": { "$ref": "#/definitions/rule", "description": "Disallow the use of undeclared variables unless mentioned in /*global */ comments" },
"no-undefined": { "$ref": "#/definitions/rule", "description": "Disallow the use of undefined as an identifier" },
"no-undef-init": { "$ref": "#/definitions/rule", "description": "Disallow initializing variables to undefined" },
"no-unused-vars": { "$ref": "#/definitions/rule", "description": "Disallow unused variables" },
"no-use-before-define": { "$ref": "#/definitions/rule", "description": "Disallow the use of variables before they are defined" }
}
},
"nodeAndCommonJs": {
"properties": {
"callback-return": { "$ref": "#/definitions/rule", "description": "Require return statements after callbacks" },
"global-require": { "$ref": "#/definitions/rule", "description": "Require require() calls to be placed at top-level module scope" },
"handle-callback-err": { "$ref": "#/definitions/rule", "description": "Require error handling in callbacks" },
"no-buffer-constructor": { "$ref": "#/definitions/rule", "description": "Disallow use of the Buffer() constructor" },
"no-mixed-requires": { "$ref": "#/definitions/rule", "description": "Disallow require calls to be mixed with regular var declarations" },
"no-new-require": { "$ref": "#/definitions/rule", "description": "Disallow new operators with calls to require" },
"no-path-concat": { "$ref": "#/definitions/rule", "description": "Disallow string concatenation with __dirname and __filename" },
"no-process-env": { "$ref": "#/definitions/rule", "description": "Disallow the use of process.env" },
"no-process-exit": { "$ref": "#/definitions/rule", "description": "Disallow the use of process.exit()" },
"no-restricted-modules": { "$ref": "#/definitions/rule", "description": "Disallow specified modules when loaded by require" },
"no-sync": { "$ref": "#/definitions/rule", "description": "Disallow synchronous methods" }
}
},
"stylisticIssues": {
"properties": {
"array-bracket-newline": { "$ref": "#/definitions/rule", "description": "Enforce line breaks after opening and before closing array brackets" },
"array-bracket-spacing": { "$ref": "#/definitions/rule", "description": "Enforce consistent spacing inside array brackets" },
"array-element-newline": { "$ref": "#/definitions/rule", "description": "Enforce line breaks after each array element" },
"block-spacing": { "$ref": "#/definitions/rule", "description": "Enforce consistent spacing inside single-line blocks" },
"brace-style": { "$ref": "#/definitions/rule", "description": "Enforce consistent brace style for blocks" },
"camelcase": { "$ref": "#/definitions/rule", "description": "Enforce camelcase naming convention" },
"capitalized-comments": { "$ref": "#/definitions/rule", "description": "Enforce or disallow capitalization of the first letter of a comment" },
"comma-dangle": { "$ref": "#/definitions/rule", "description": "Require or disallow trailing commas" },
"comma-spacing": { "$ref": "#/definitions/rule", "description": "Enforce consistent spacing before and after commas" },
"comma-style": { "$ref": "#/definitions/rule", "description": "Enforce consistent comma style" },
"computed-property-spacing": { "$ref": "#/definitions/rule", "description": "Enforce consistent spacing inside computed property brackets" },
"consistent-this": { "$ref": "#/definitions/rule", "description": "Enforce consistent naming when capturing the current execution context" },
"eol-last": { "$ref": "#/definitions/rule", "description": "Enforce at least one newline at the end of files" },
"func-call-spacing": { "$ref": "#/definitions/rule", "description": "Require or disallow spacing between function identifiers and their invocations" },
"func-name-matching": { "$ref": "#/definitions/rule", "description": "Require function names to match the name of the variable or property to which they are assigned" },
"func-names": { "$ref": "#/definitions/rule", "description": "Require or disallow named function expressions" },
"func-style": { "$ref": "#/definitions/rule", "description": "Enforce the consistent use of either function declarations or expressions" },
"function-call-argument-newline": { "$ref": "#/definitions/rule", "description": "Enforce line breaks between arguments of a function call" },
"function-paren-newline": { "$ref": "#/definitions/rule", "description": "Enforce consistent line breaks inside function parentheses" },
"id-blacklist": { "$ref": "#/definitions/rule", "description": "Disallow specified identifiers" },
"id-length": { "$ref": "#/definitions/rule", "description": "Enforce minimum and maximum identifier lengths" },
"id-match": { "$ref": "#/definitions/rule", "description": "Require identifiers to match a specified regular expression" },
"implicit-arrow-linebreak": { "$ref": "#/definitions/rule", "description": "Enforce the location of arrow function bodies" },
"indent": { "$ref": "#/definitions/rule", "description": "Enforce consistent indentation" },
"indent-legacy": { "$ref": "#/definitions/rule", "description": "Enforce consistent indentation (legacy, deprecated)" },
"jsx-quotes": { "$ref": "#/definitions/rule", "description": "Enforce the consistent use of either double or single quotes in JSX attributes" },
"key-spacing": { "$ref": "#/definitions/rule", "description": "Enforce consistent spacing between keys and values in object literal properties" },
"keyword-spacing": { "$ref": "#/definitions/rule", "description": "Enforce consistent spacing before and after keywords" },
"line-comment-position": { "$ref": "#/definitions/rule", "description": "Enforce position of line comments" },
"lines-between-class-members": { "$ref": "#/definitions/rule", "description": "Require or disallow an empty line between class members" },
"linebreak-style": { "$ref": "#/definitions/rule", "description": "Enforce consistent linebreak style" },
"lines-around-comment": { "$ref": "#/definitions/rule", "description": "Require empty lines around comments" },
"lines-around-directive": { "$ref": "#/definitions/rule", "description": "Require or disallow newlines around directives" },
"max-depth": { "$ref": "#/definitions/rule", "description": "Enforce a maximum depth that blocks can be nested" },
"max-len": { "$ref": "#/definitions/rule", "description": "Enforce a maximum line length" },
"max-lines": { "$ref": "#/definitions/rule", "description": "Enforce a maximum number of lines per file" },
"max-nested-callbacks": { "$ref": "#/definitions/rule", "description": "Enforce a maximum depth that callbacks can be nested" },
"max-params": { "$ref": "#/definitions/rule", "description": "Enforce a maximum number of parameters in function definitions" },
"max-statements": { "$ref": "#/definitions/rule", "description": "Enforce a maximum number of statements allowed in function blocks" },
"max-statements-per-line": { "$ref": "#/definitions/rule", "description": "Enforce a maximum number of statements allowed per line" },
"multiline-comment-style": { "$ref": "#/definitions/rule", "description": "Enforce a particular style for multiline comments" },
"multiline-ternary": { "$ref": "#/definitions/rule", "description": "Enforce newlines between operands of ternary expressions" },
"new-cap": { "$ref": "#/definitions/rule", "description": "Require constructor function names to begin with a capital letter" },
"newline-after-var": { "$ref": "#/definitions/rule", "description": "Require or disallow an empty line after var declarations" },
"newline-before-return": { "$ref": "#/definitions/rule", "description": "Require an empty line before return statements" },
"newline-per-chained-call": { "$ref": "#/definitions/rule", "description": "Require a newline after each call in a method chain" },
"new-parens": { "$ref": "#/definitions/rule", "description": "Require parentheses when invoking a constructor with no arguments" },
"no-array-constructor": { "$ref": "#/definitions/rule", "description": "Disallow Array constructors" },
"no-bitwise": { "$ref": "#/definitions/rule", "description": "Disallow bitwise operators" },
"no-continue": { "$ref": "#/definitions/rule", "description": "Disallow continue statements" },
"no-inline-comments": { "$ref": "#/definitions/rule", "description": "Disallow inline comments after code" },
"no-lonely-if": { "$ref": "#/definitions/rule", "description": "Disallow if statements as the only statement in else blocks" },
"no-mixed-operators": { "$ref": "#/definitions/rule", "description": "Disallow mixed binary operators" },
"no-mixed-spaces-and-tabs": { "$ref": "#/definitions/rule", "description": "Disallow mixed spaces and tabs for indentation" },
"no-multi-assign": { "$ref": "#/definitions/rule", "description": "Disallow use of chained assignment expressions" },
"no-multiple-empty-lines": { "$ref": "#/definitions/rule", "description": "Disallow multiple empty lines" },
"no-negated-condition": { "$ref": "#/definitions/rule", "description": "Disallow negated conditions" },
"no-nested-ternary": { "$ref": "#/definitions/rule", "description": "Disallow nested ternary expressions" },
"no-new-object": { "$ref": "#/definitions/rule", "description": "Disallow Object constructors" },
"no-plusplus": { "$ref": "#/definitions/rule", "description": "Disallow the unary operators ++ and --" },
"no-restricted-syntax": { "$ref": "#/definitions/rule", "description": "Disallow specified syntax" },
"no-spaced-func": { "$ref": "#/definitions/rule"},
"no-tabs": { "$ref": "#/definitions/rule", "description": "Disallow tabs in file" },
"no-ternary": { "$ref": "#/definitions/rule", "description": "Disallow ternary operators" },
"no-trailing-spaces": { "$ref": "#/definitions/rule", "description": "Disallow trailing whitespace at the end of lines" },
"no-underscore-dangle": { "$ref": "#/definitions/rule", "description": "Disallow dangling underscores in identifiers" },
"no-unneeded-ternary": { "$ref": "#/definitions/rule", "description": "Disallow ternary operators when simpler alternatives exist" },
"no-whitespace-before-property": { "$ref": "#/definitions/rule", "description": "Disallow whitespace before properties" },
"nonblock-statement-body-position": { "$ref": "#/definitions/rule", "description": "Enforce the location of single-line statements" },
"object-curly-newline": { "$ref": "#/definitions/rule", "description": "Enforce consistent line breaks inside braces" },
"object-curly-spacing": { "$ref": "#/definitions/rule", "description": "Enforce consistent spacing inside braces" },
"object-property-newline": { "$ref": "#/definitions/rule", "description": "Enforce placing object properties on separate lines" },
"object-shorthand": { "$ref": "#/definitions/rule"},
"one-var": { "$ref": "#/definitions/rule", "description": "Enforce variables to be declared either together or separately in functions" },
"one-var-declaration-per-line": { "$ref": "#/definitions/rule", "description": "Require or disallow newlines around var declarations" },
"operator-assignment": { "$ref": "#/definitions/rule", "description": "Require or disallow assignment operator shorthand where possible" },
"operator-linebreak": { "$ref": "#/definitions/rule", "description": "Enforce consistent linebreak style for operators" },
"padded-blocks": { "$ref": "#/definitions/rule", "description": "Require or disallow padding within blocks" },
"padding-line-between-statements": { "$ref": "#/definitions/rule", "description": "Require or disallow padding lines between statements" },
"quote-props": { "$ref": "#/definitions/rule", "description": "Require quotes around object literal property names" },
"quotes": { "$ref": "#/definitions/rule", "description": "Enforce the consistent use of either backticks, double, or single quotes" },
"require-jsdoc": { "$ref": "#/definitions/rule", "description": "Require JSDoc comments" },
"semi": { "$ref": "#/definitions/rule", "description": "Require or disallow semicolons instead of ASI" },
"semi-spacing": { "$ref": "#/definitions/rule", "description": "Enforce consistent spacing before and after semicolons" },
"semi-style": { "$ref": "#/definitions/rule", "description": "Enforce location of semicolons" },
"sort-keys": { "$ref": "#/definitions/rule", "description": "Requires object keys to be sorted" },
"sort-vars": { "$ref": "#/definitions/rule", "description": "Require variables within the same declaration block to be sorted" },
"space-before-blocks": { "$ref": "#/definitions/rule", "description": "Enforce consistent spacing before blocks" },
"space-before-function-paren": { "$ref": "#/definitions/rule", "description": "Enforce consistent spacing before function definition opening parenthesis" },
"spaced-comment": { "$ref": "#/definitions/rule", "description": "Enforce consistent spacing after the // or /* in a comment" },
"space-infix-ops": { "$ref": "#/definitions/rule", "description": "Require spacing around operators" },
"space-in-parens": { "$ref": "#/definitions/rule", "description": "Enforce consistent spacing inside parentheses" },
"space-unary-ops": { "$ref": "#/definitions/rule", "description": "Enforce consistent spacing before or after unary operators" },
"switch-colon-spacing": { "$ref": "#/definitions/rule", "description": "Enforce spacing around colons of switch statements" },
"template-tag-spacing": { "$ref": "#/definitions/rule", "description": "Require or disallow spacing between template tags and their literals" },
"unicode-bom": { "$ref": "#/definitions/rule", "description": "Require or disallow Unicode byte order mark (BOM)" },
"wrap-regex": { "$ref": "#/definitions/rule", "description": "Require parenthesis around regex literals" }
}
},
"ecmaScript6": {
"properties": {
"arrow-body-style": { "$ref": "#/definitions/rule", "description": "Require braces around arrow function bodies" },
"arrow-parens": { "$ref": "#/definitions/rule", "description": "Require parentheses around arrow function arguments" },
"arrow-spacing": { "$ref": "#/definitions/rule", "description": "Enforce consistent spacing before and after the arrow in arrow functions" },
"constructor-super": { "$ref": "#/definitions/rule", "description": "Require super() calls in constructors" },
"generator-star-spacing": { "$ref": "#/definitions/rule", "description": "Enforce consistent spacing around * operators in generator functions" },
"no-class-assign": { "$ref": "#/definitions/rule", "description": "Disallow reassigning class members" },
"no-confusing-arrow": { "$ref": "#/definitions/rule", "description": "Disallow arrow functions where they could be confused with comparisons" },
"no-const-assign": { "$ref": "#/definitions/rule", "description": "Disallow reassigning const variables" },
"no-dupe-class-members": { "$ref": "#/definitions/rule", "description": "Disallow duplicate class members" },
"no-duplicate-imports": { "$ref": "#/definitions/rule", "description": "Disallow duplicate module imports" },
"no-new-symbol": { "$ref": "#/definitions/rule", "description": "Disallow new operators with the Symbol object" },
"no-restricted-imports": { "$ref": "#/definitions/rule", "description": "Disallow specified modules when loaded by import" },
"no-this-before-super": { "$ref": "#/definitions/rule", "description": "Disallow this/super before calling super() in constructors" },
"no-useless-computed-key": { "$ref": "#/definitions/rule", "description": "Disallow unnecessary computed property keys in object literals" },
"no-useless-constructor": { "$ref": "#/definitions/rule", "description": "Disallow unnecessary constructors" },
"no-useless-rename": { "$ref": "#/definitions/rule", "description": "Disallow renaming import, export, and destructured assignments to the same name" },
"no-var": { "$ref": "#/definitions/rule", "description": "Require let or const instead of var" },
"object-shorthand": { "$ref": "#/definitions/rule", "description": "Require or disallow method and property shorthand syntax for object literals" },
"prefer-arrow-callback": { "$ref": "#/definitions/rule", "description": "Require arrow functions as callbacks" },
"prefer-const": { "$ref": "#/definitions/rule", "description": "Require const declarations for variables that are never reassigned after declared" },
"prefer-destructuring": { "$ref": "#/definitions/rule", "description": "Require destructuring from arrays and/or objects" },
"prefer-numeric-literals": { "$ref": "#/definitions/rule", "description": "Disallow parseInt() in favor of binary, octal, and hexadecimal literals" },
"prefer-reflect": { "$ref": "#/definitions/rule", "description": "Require Reflect methods where applicable" },
"prefer-rest-params": { "$ref": "#/definitions/rule", "description": "Require rest parameters instead of arguments" },
"prefer-spread": { "$ref": "#/definitions/rule", "description": "Require spread operators instead of .apply()" },
"prefer-template": { "$ref": "#/definitions/rule", "description": "Require template literals instead of string concatenation" },
"require-yield": { "$ref": "#/definitions/rule", "description": "Require generator functions to contain yield" },
"rest-spread-spacing": { "$ref": "#/definitions/rule", "description": "Enforce spacing between rest and spread operators and their expressions" },
"sort-imports": { "$ref": "#/definitions/rule", "description": "Enforce sorted import declarations within modules" },
"symbol-description": { "$ref": "#/definitions/rule", "description": "Require symbol descriptions" },
"template-curly-spacing": { "$ref": "#/definitions/rule", "description": "Require or disallow spacing around embedded expressions of template strings" },
"yield-star-spacing": { "$ref": "#/definitions/rule", "description": "Require or disallow spacing around the * in yield* expressions" }
}
},
"legacy": {
"properties": {
"max-depth": { "$ref": "#/definitions/rule" },
"max-len": { "$ref": "#/definitions/rule" },
"max-params": { "$ref": "#/definitions/rule" },
"max-statements": { "$ref": "#/definitions/rule" },
"no-bitwise": { "$ref": "#/definitions/rule" },
"no-plusplus": { "$ref": "#/definitions/rule" }
}
}
},
"properties": {
"ecmaFeatures": {
"description": "By default, ESLint supports only ECMAScript 5 syntax. You can override that setting to enable support for ECMAScript 6 as well as JSX by using configuration settings.",
"type": "object",
"properties": {
"arrowFunctions": { "type": "boolean" },
"binaryLiterals": { "type": "boolean" },
"blockBindings": { "type": "boolean" },
"classes": { "type": "boolean" },
"defaultParams": { "type": "boolean" },
"destructuring": { "type": "boolean" },
"experimentalObjectRestSpread": { "type": "boolean",
"description": "Enables support for the experimental object rest/spread properties (IMPORTANT: This is an experimental feature that may change significantly in the future. It’s recommended that you do not write rules relying on this functionality unless you are willing to incur maintenance cost when it changes.)"},
"forOf": { "type": "boolean" },
"generators": { "type": "boolean" },
"globalReturn": { "type": "boolean", "description": "allow return statements in the global scope" },
"impliedStrict": { "type": "boolean", "description": "enable global strict mode (if ecmaVersion is 5 or greater)" },
"jsx": { "type": "boolean", "description": "enable JSX" },
"modules": { "type": "boolean" },
"objectLiteralComputedProperties": { "type": "boolean" },
"objectLiteralDuplicateProperties": { "type": "boolean" },
"objectLiteralShorthandMethods": { "type": "boolean" },
"objectLiteralShorthandProperties": { "type": "boolean" },
"octalLiterals": { "type": "boolean" },
"regexUFlag": { "type": "boolean" },
"regexYFlag": { "type": "boolean" },
"restParams": { "type": "boolean" },
"spread": { "type": "boolean" },
"superInFunctions": { "type": "boolean" },
"templateStrings": { "type": "boolean" },
"unicodeCodePointEscapes": { "type": "boolean" }
}
},
"env": {
"description": "An environment defines global variables that are predefined.",
"type": "object",
"properties": {
"amd": {
"type": "boolean",
"description": "defines require() and define() as global variables as per the amd spec"
},
"applescript": {
"type": "boolean",
"description": "AppleScript global variables"
},
"atomtest": {
"type": "boolean",
"description": "Atom test helper globals"
},
"browser": {
"type": "boolean",
"description": "browser global variables"
},
"commonjs": {
"type": "boolean",
"description": "CommonJS global variables and CommonJS scoping (use this for browser-only code that uses Browserify/WebPack)"
},
"shared-node-browser": {
"type": "boolean",
"description": "Globals common to both Node and Browser"
},
"embertest": {
"type": "boolean",
"description": "Ember test helper globals"
},
"es6": {
"type": "boolean",
"description": "enable all ECMAScript 6 features except for modules"
},
"greasemonkey": {
"type": "boolean",
"description": "GreaseMonkey globals"
},
"jasmine": {
"type": "boolean",
"description": "adds all of the Jasmine testing global variables for version 1.3 and 2.0"
},
"jest": {
"type": "boolean",
"description": "Jest global variables"
},
"jquery": {
"type": "boolean",
"description": "jQuery global variables"
},
"meteor": {
"type": "boolean",
"description": "Meteor global variables"
},
"mocha": {
"type": "boolean",
"description": "adds all of the Mocha test global variables"
},
"mongo": {
"type": "boolean",
"description": "MongoDB global variables"
},
"nashorn": {
"type": "boolean",
"description": "Java 8 Nashorn global variables"
},
"node": {
"type": "boolean",
"description": "Node.js global variables and Node.js scoping"
},
"phantomjs": {
"type": "boolean",
"description": "PhantomJS global variables"
},
"prototypejs": {
"type": "boolean",
"description": "Prototype.js global variables"
},
"protractor": {
"type": "boolean",
"description": "Protractor global variables"
},
"qunit": {
"type": "boolean",
"description": "QUnit global variables"
},
"serviceworker": {
"type": "boolean",
"description": "Service Worker global variables"
},
"shelljs": {
"type": "boolean",
"description": "ShellJS global variables"
},
"webextensions": {
"type": "boolean",
"description": "WebExtensions globals"
},
"worker": {
"type": "boolean",
"description": "web workers global variables"
}
}
},
"extends": {
"description": "If you want to extend a specific configuration file, you can use the extends property and specify the path to the file. The path can be either relative or absolute.",
"type": [ "string", "array" ],
"items": {
"type": "string"
}
},
"globals": {
"description": "Set each global variable name equal to true to allow the variable to be overwritten or false to disallow overwriting.",
"type": "object",
"additionalProperties": {
"oneOf": [
{
"type": "string",
"enum": [
"readonly", "writable", "off"
]
},
{
"description": "The values false|\"readable\" and true|\"writeable\" are deprecated, they are equivalent to \"readonly\" and \"writable\", respectively.",
"type": "boolean"
}
]
}
},
"noInlineConfig": {
"description": "Prevent comments from changing config or rules",
"type": "boolean"
},
"parser": {
"type": "string"
},
"parserOptions": {
"description": "The JavaScript language options to be supported",
"type": "object",
"properties": {
"ecmaFeatures": {
"$ref": "#/properties/ecmaFeatures"
},
"ecmaVersion": {
"enum": [ 3, 5, 6, 2015, 7, 2016, 8, 2017, 9, 2018, 10, 2019, 11, 2020, 12, 2021, 13, 2022, "latest" ],
"default": 11,
"description": "Set to 3, 5, 6, 7, 8, 9, 10, 11 (default), 12, 13 or \"latest\" to specify the version of ECMAScript syntax you want to use. You can also set to 2015 (same as 6), 2016 (same as 7), 2017 (same as 8), 2018 (same as 9), 2019 (same as 10), 2020 (same as 11) or 2021 (same as 12) or 2022 (same as 13) to use the year-based naming. \"latest\" always enables the latest supported ECMAScript version."
},
"sourceType": {
"enum": [ "script", "module" ],
"default": "script",
"description": "set to \"script\" (default) or \"module\" if your code is in ECMAScript modules"
}
}
},
"plugins": {
"description": "ESLint supports the use of third-party plugins. Before using the plugin, you have to install it using npm.",
"type": "array",
"items": {
"type": "string"
}
},
"root": {
"description": "By default, ESLint will look for configuration files in all parent folders up to the root directory. This can be useful if you want all of your projects to follow a certain convention, but can sometimes lead to unexpected results. To limit ESLint to a specific project, set this to `true` in a configuration in the root of your project.",
"type": "boolean"
},
"ignorePatterns": {
"description": "Tell ESLint to ignore specific files and directories. Each value uses the same pattern as the `.eslintignore` file.",
"type": [ "string", "array" ],
"items": {
"type": "string"
}
},
"rules": {
"description": "ESLint comes with a large number of rules. You can modify which rules your project uses either using configuration comments or configuration files.",
"type": "object",
"allOf": [
{ "$ref": "#/definitions/possibleErrors" },
{ "$ref": "#/definitions/bestPractices" },
{ "$ref": "#/definitions/strictMode" },
{ "$ref": "#/definitions/variables" },
{ "$ref": "#/definitions/nodeAndCommonJs" },
{ "$ref": "#/definitions/stylisticIssues" },
{ "$ref": "#/definitions/ecmaScript6" },
{ "$ref": "#/definitions/legacy" }
]
},
"settings": {
"description": "ESLint supports adding shared settings into configuration file. You can add settings object to ESLint configuration file and it will be supplied to every rule that will be executed. This may be useful if you are adding custom rules and want them to have access to the same information and be easily configurable.",
"type": "object"
},
"overrides": {
"type": "array",
"description": "Allows to override configuration for files and folders, specified by glob patterns",
"items": {
"type": "object",
"properties": {
"files": {
"description": "Glob pattern for files to apply 'overrides' configuration, relative to the directory of the config file",
"oneOf": [
{
"type": "string"
},
{
"minItems": 1,
"type": "array",
"items": {
"type": "string"
}
}
]
},
"extends": {
"description": "If you want to extend a specific configuration file, you can use the extends property and specify the path to the file. The path can be either relative or absolute.",
"type": [ "string", "array" ],
"items": {
"type": "string"
}
},
"excludedFiles": {
"description": "If a file matches any of the 'excludedFiles' glob patterns, the 'overrides' configuration won’t apply",
"oneOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
}
}
]
},
"ecmaFeatures": {
"$ref": "#/properties/ecmaFeatures"
},
"env": {
"$ref": "#/properties/env"
},
"globals": {
"$ref": "#/properties/globals"
},
"parser": {
"$ref": "#/properties/parser"
},
"parserOptions": {
"$ref": "#/properties/parserOptions"
},
"plugins": {
"$ref": "#/properties/plugins"
},
"processor": {
"description": "To specify a processor, specify the plugin name and processor name joined by a forward slash",
"type": "string"
},
"rules": {
"$ref": "#/properties/rules"
},
"settings": {
"$ref": "#/properties/settings"
}
},
"additionalProperties": false,
"required": [
"files"
]
}
}
}
}
{
"title": "JSON schema for the TypeScript compiler's configuration file",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "https://json.schemastore.org/tsconfig",
"definitions": {
"//": {
"explainer": "https://www.typescriptlang.org/docs/handbook/tsconfig-json.html#overview",
"reference": "https://www.typescriptlang.org/tsconfig",
"reference metadata": "https://github.com/microsoft/TypeScript-Website/blob/v2/packages/tsconfig-reference/scripts/tsconfigRules.ts"
},
"filesDefinition": {
"properties": {
"files": {
"description": "If no 'files' or 'include' property is present in a tsconfig.json, the compiler defaults to including all files in the containing directory and subdirectories except those specified by 'exclude'. When a 'files' property is specified, only those files and those specified by 'include' are included.",
"type": "array",
"uniqueItems": true,
"items": {
"type": "string"
}
}
}
},
"excludeDefinition": {
"properties": {
"exclude": {
"description": "Specifies a list of files to be excluded from compilation. The 'exclude' property only affects the files included via the 'include' property and not the 'files' property. Glob patterns require TypeScript version 2.0 or later.",
"type": "array",
"uniqueItems": true,
"items": {
"type": "string"
}
}
}
},
"includeDefinition": {
"properties": {
"include": {
"description": "Specifies a list of glob patterns that match files to be included in compilation. If no 'files' or 'include' property is present in a tsconfig.json, the compiler defaults to including all files in the containing directory and subdirectories except those specified by 'exclude'. Requires TypeScript version 2.0 or later.",
"type": "array",
"uniqueItems": true,
"items": {
"type": "string"
}
}
}
},
"compileOnSaveDefinition": {
"properties": {
"compileOnSave": {
"description": "Enable Compile-on-Save for this project.",
"type": "boolean"
}
}
},
"extendsDefinition": {
"properties": {
"extends": {
"description": "Path to base configuration file to inherit from. Requires TypeScript version 2.1 or later.",
"type": "string"
}
}
},
"buildOptionsDefinition": {
"properties": {
"buildOptions": {
"properties": {
"dry": {
"description": "~",
"type": "boolean",
"default": false
},
"force": {
"description": "Build all projects, including those that appear to be up to date",
"type": "boolean",
"default": false,
"markdownDescription": "Build all projects, including those that appear to be up to date\n\nSee more: https://www.typescriptlang.org/tsconfig#force"
},
"verbose": {
"description": "Enable verbose logging",
"type": "boolean",
"default": false,
"markdownDescription": "Enable verbose logging\n\nSee more: https://www.typescriptlang.org/tsconfig#verbose"
},
"incremental": {
"description": "Save .tsbuildinfo files to allow for incremental compilation of projects.",
"type": "boolean",
"default": false,
"markdownDescription": "Save .tsbuildinfo files to allow for incremental compilation of projects.\n\nSee more: https://www.typescriptlang.org/tsconfig#incremental"
},
"assumeChangesOnlyAffectDirectDependencies": {
"description": "Have recompiles in projects that use `incremental` and `watch` mode assume that changes within a file will only affect files directly depending on it.",
"type": "boolean",
"default": false,
"markdownDescription": "Have recompiles in projects that use `incremental` and `watch` mode assume that changes within a file will only affect files directly depending on it.\n\nSee more: https://www.typescriptlang.org/tsconfig#assumeChangesOnlyAffectDirectDependencies"
},
"traceResolution": {
"description": "Log paths used during the `moduleResolution` process.",
"type": "boolean",
"default": false,
"markdownDescription": "Log paths used during the `moduleResolution` process.\n\nSee more: https://www.typescriptlang.org/tsconfig#traceResolution"
}
}
}
}
},
"watchOptionsDefinition": {
"properties": {
"watchOptions": {
"type": "object",
"description": "Settings for the watch mode in TypeScript.",
"properties": {
"force": {
"description": "~",
"type": "string"
},
"watchFile": {
"description": "Specify how the TypeScript watch mode works.",
"type": "string",
"markdownDescription": "Specify how the TypeScript watch mode works.\n\nSee more: https://www.typescriptlang.org/tsconfig#watchFile"
},
"watchDirectory": {
"description": "Specify how directories are watched on systems that lack recursive file-watching functionality.",
"type": "string",
"markdownDescription": "Specify how directories are watched on systems that lack recursive file-watching functionality.\n\nSee more: https://www.typescriptlang.org/tsconfig#watchDirectory"
},
"fallbackPolling": {
"description": "Specify what approach the watcher should use if the system runs out of native file watchers.",
"type": "string",
"markdownDescription": "Specify what approach the watcher should use if the system runs out of native file watchers.\n\nSee more: https://www.typescriptlang.org/tsconfig#fallbackPolling"
},
"synchronousWatchDirectory": {
"description": "Synchronously call callbacks and update the state of directory watchers on platforms that don`t support recursive watching natively.",
"type": "boolean",
"markdownDescription": "Synchronously call callbacks and update the state of directory watchers on platforms that don`t support recursive watching natively.\n\nSee more: https://www.typescriptlang.org/tsconfig#synchronousWatchDirectory"
},
"excludeFiles": {
"description": "Remove a list of files from the watch mode's processing.",
"type": "array",
"uniqueItems": true,
"items": {
"type": "string"
},
"markdownDescription": "Remove a list of files from the watch mode's processing.\n\nSee more: https://www.typescriptlang.org/tsconfig#excludeFiles"
},
"excludeDirectories": {
"description": "Remove a list of directories from the watch process.",
"type": "array",
"uniqueItems": true,
"items": {
"type": "string"
},
"markdownDescription": "Remove a list of directories from the watch process.\n\nSee more: https://www.typescriptlang.org/tsconfig#excludeDirectories"
}
}
}
}
},
"compilerOptionsDefinition": {
"properties": {
"compilerOptions": {
"type": "object",
"description": "Instructs the TypeScript compiler how to compile .ts files.",
"properties": {
"charset": {
"description": "No longer supported. In early versions, manually set the text encoding for reading files.",
"type": "string",
"markdownDescription": "No longer supported. In early versions, manually set the text encoding for reading files.\n\nSee more: https://www.typescriptlang.org/tsconfig#charset"
},
"composite": {
"description": "Enable constraints that allow a TypeScript project to be used with project references.",
"type": "boolean",
"default": true,
"markdownDescription": "Enable constraints that allow a TypeScript project to be used with project references.\n\nSee more: https://www.typescriptlang.org/tsconfig#composite"
},
"declaration": {
"description": "Generate .d.ts files from TypeScript and JavaScript files in your project.",
"type": "boolean",
"default": false,
"markdownDescription": "Generate .d.ts files from TypeScript and JavaScript files in your project.\n\nSee more: https://www.typescriptlang.org/tsconfig#declaration"
},
"declarationDir": {
"description": "Specify the output directory for generated declaration files.",
"type": [
"string",
"null"
],
"markdownDescription": "Specify the output directory for generated declaration files.\n\nSee more: https://www.typescriptlang.org/tsconfig#declarationDir"
},
"diagnostics": {
"description": "Output compiler performance information after building.",
"type": "boolean",
"markdownDescription": "Output compiler performance information after building.\n\nSee more: https://www.typescriptlang.org/tsconfig#diagnostics"
},
"disableReferencedProjectLoad": {
"description": "Reduce the number of projects loaded automatically by TypeScript.",
"type": "boolean",
"markdownDescription": "Reduce the number of projects loaded automatically by TypeScript.\n\nSee more: https://www.typescriptlang.org/tsconfig#disableReferencedProjectLoad"
},
"noPropertyAccessFromIndexSignature": {
"description": "Enforces using indexed accessors for keys declared using an indexed type",
"type": "boolean",
"markdownDescription": "Enforces using indexed accessors for keys declared using an indexed type\n\nSee more: https://www.typescriptlang.org/tsconfig#noPropertyAccessFromIndexSignature"
},
"emitBOM": {
"description": "Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files.",
"type": "boolean",
"default": false,
"markdownDescription": "Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files.\n\nSee more: https://www.typescriptlang.org/tsconfig#emitBOM"
},
"emitDeclarationOnly": {
"description": "Only output d.ts files and not JavaScript files.",
"type": "boolean",
"default": false,
"markdownDescription": "Only output d.ts files and not JavaScript files.\n\nSee more: https://www.typescriptlang.org/tsconfig#emitDeclarationOnly"
},
"exactOptionalPropertyTypes": {
"description": "Differentiate between undefined and not present when type checking",
"type": "boolean",
"default": false,
"markdownDescription": "Differentiate between undefined and not present when type checking\n\nSee more: https://www.typescriptlang.org/tsconfig#exactOptionalPropertyTypes"
},
"incremental": {
"description": "Enable incremental compilation. Requires TypeScript version 3.4 or later.",
"type": "boolean"
},
"tsBuildInfoFile": {
"description": "Specify the folder for .tsbuildinfo incremental compilation files.",
"default": ".tsbuildinfo",
"type": "string",
"markdownDescription": "Specify the folder for .tsbuildinfo incremental compilation files.\n\nSee more: https://www.typescriptlang.org/tsconfig#tsBuildInfoFile"
},
"inlineSourceMap": {
"description": "Include sourcemap files inside the emitted JavaScript.",
"type": "boolean",
"default": false,
"markdownDescription": "Include sourcemap files inside the emitted JavaScript.\n\nSee more: https://www.typescriptlang.org/tsconfig#inlineSourceMap"
},
"inlineSources": {
"description": "Include source code in the sourcemaps inside the emitted JavaScript.",
"type": "boolean",
"default": false,
"markdownDescription": "Include source code in the sourcemaps inside the emitted JavaScript.\n\nSee more: https://www.typescriptlang.org/tsconfig#inlineSources"
},
"jsx": {
"description": "Specify what JSX code is generated.",
"enum": [
"preserve",
"react",
"react-jsx",
"react-jsxdev",
"react-native"
]
},
"reactNamespace": {
"description": "Specify the object invoked for `createElement`. This only applies when targeting `react` JSX emit.",
"type": "string",
"default": "React",
"markdownDescription": "Specify the object invoked for `createElement`. This only applies when targeting `react` JSX emit.\n\nSee more: https://www.typescriptlang.org/tsconfig#reactNamespace"
},
"jsxFactory": {
"description": "Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'",
"type": "string",
"default": "React.createElement",
"markdownDescription": "Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'\n\nSee more: https://www.typescriptlang.org/tsconfig#jsxFactory"
},
"jsxFragmentFactory": {
"description": "Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'.",
"type": "string",
"default": "React.Fragment",
"markdownDescription": "Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'.\n\nSee more: https://www.typescriptlang.org/tsconfig#jsxFragmentFactory"
},
"jsxImportSource": {
"description": "Specify module specifier used to import the JSX factory functions when using `jsx: react-jsx`.",
"type": "string",
"default": "react",
"markdownDescription": "Specify module specifier used to import the JSX factory functions when using `jsx: react-jsx`.\n\nSee more: https://www.typescriptlang.org/tsconfig#jsxImportSource"
},
"listFiles": {
"description": "Print all of the files read during the compilation.",
"type": "boolean",
"default": false,
"markdownDescription": "Print all of the files read during the compilation.\n\nSee more: https://www.typescriptlang.org/tsconfig#listFiles"
},
"mapRoot": {
"description": "Specify the location where debugger should locate map files instead of generated locations.",
"type": "string",
"markdownDescription": "Specify the location where debugger should locate map files instead of generated locations.\n\nSee more: https://www.typescriptlang.org/tsconfig#mapRoot"
},
"module": {
"description": "Specify what module code is generated.",
"type": "string",
"anyOf": [
{
"enum": [
"CommonJS",
"AMD",
"System",
"UMD",
"ES6",
"ES2015",
"ES2020",
"ESNext",
"None",
"ES2022",
"Node12",
"NodeNext"
]
},
{
"pattern": "^([Cc][Oo][Mm][Mm][Oo][Nn][Jj][Ss]|[AaUu][Mm][Dd]|[Ss][Yy][Ss][Tt][Ee][Mm]|[Ee][Ss]([356]|20(1[567]|2[02])|[Nn][Ee][Xx][Tt])|[Nn][Oo][Nn][Ee])$"
}
],
"markdownDescription": "Specify what module code is generated.\n\nSee more: https://www.typescriptlang.org/tsconfig#module"
},
"moduleResolution": {
"description": "Specify how TypeScript looks up a file from a given module specifier.",
"type": "string",
"anyOf": [
{
"enum": [
"Classic",
"Node"
]
},
{
"pattern": "^(([Nn]ode)|([Cc]lassic))$"
}
],
"default": "classic",
"markdownDescription": "Specify how TypeScript looks up a file from a given module specifier.\n\nSee more: https://www.typescriptlang.org/tsconfig#moduleResolution"
},
"newLine": {
"description": "Set the newline character for emitting files.",
"type": "string",
"anyOf": [
{
"enum": [
"crlf",
"lf"
]
},
{
"pattern": "^(CRLF|LF|crlf|lf)$"
}
],
"markdownDescription": "Set the newline character for emitting files.\n\nSee more: https://www.typescriptlang.org/tsconfig#newLine"
},
"noEmit": {
"description": "Disable emitting file from a compilation.",
"type": "boolean",
"default": false,
"markdownDescription": "Disable emitting file from a compilation.\n\nSee more: https://www.typescriptlang.org/tsconfig#noEmit"
},
"noEmitHelpers": {
"description": "Disable generating custom helper functions like `__extends` in compiled output.",
"type": "boolean",
"default": false,
"markdownDescription": "Disable generating custom helper functions like `__extends` in compiled output.\n\nSee more: https://www.typescriptlang.org/tsconfig#noEmitHelpers"
},
"noEmitOnError": {
"description": "Disable emitting files if any type checking errors are reported.",
"type": "boolean",
"default": false,
"markdownDescription": "Disable emitting files if any type checking errors are reported.\n\nSee more: https://www.typescriptlang.org/tsconfig#noEmitOnError"
},
"noImplicitAny": {
"description": "Enable error reporting for expressions and declarations with an implied `any` type..",
"type": "boolean",
"markdownDescription": "Enable error reporting for expressions and declarations with an implied `any` type..\n\nSee more: https://www.typescriptlang.org/tsconfig#noImplicitAny"
},
"noImplicitThis": {
"description": "Enable error reporting when `this` is given the type `any`.",
"type": "boolean",
"markdownDescription": "Enable error reporting when `this` is given the type `any`.\n\nSee more: https://www.typescriptlang.org/tsconfig#noImplicitThis"
},
"noUnusedLocals": {
"description": "Enable error reporting when a local variables aren't read.",
"type": "boolean",
"default": false,
"markdownDescription": "Enable error reporting when a local variables aren't read.\n\nSee more: https://www.typescriptlang.org/tsconfig#noUnusedLocals"
},
"noUnusedParameters": {
"description": "Raise an error when a function parameter isn't read",
"type": "boolean",
"default": false,
"markdownDescription": "Raise an error when a function parameter isn't read\n\nSee more: https://www.typescriptlang.org/tsconfig#noUnusedParameters"
},
"noLib": {
"description": "Disable including any library files, including the default lib.d.ts.",
"type": "boolean",
"default": false,
"markdownDescription": "Disable including any library files, including the default lib.d.ts.\n\nSee more: https://www.typescriptlang.org/tsconfig#noLib"
},
"noResolve": {
"description": "Disallow `import`s, `require`s or `<reference>`s from expanding the number of files TypeScript should add to a project.",
"type": "boolean",
"default": false,
"markdownDescription": "Disallow `import`s, `require`s or `<reference>`s from expanding the number of files TypeScript should add to a project.\n\nSee more: https://www.typescriptlang.org/tsconfig#noResolve"
},
"noStrictGenericChecks": {
"description": "Disable strict checking of generic signatures in function types.",
"type": "boolean",
"default": false,
"markdownDescription": "Disable strict checking of generic signatures in function types.\n\nSee more: https://www.typescriptlang.org/tsconfig#noStrictGenericChecks"
},
"skipDefaultLibCheck": {
"description": "Skip type checking .d.ts files that are included with TypeScript.",
"type": "boolean",
"default": false,
"markdownDescription": "Skip type checking .d.ts files that are included with TypeScript.\n\nSee more: https://www.typescriptlang.org/tsconfig#skipDefaultLibCheck"
},
"skipLibCheck": {
"description": "Skip type checking all .d.ts files.",
"type": "boolean",
"default": false,
"markdownDescription": "Skip type checking all .d.ts files.\n\nSee more: https://www.typescriptlang.org/tsconfig#skipLibCheck"
},
"outFile": {
"description": "Specify a file that bundles all outputs into one JavaScript file. If `declaration` is true, also designates a file that bundles all .d.ts output.",
"type": "string",
"markdownDescription": "Specify a file that bundles all outputs into one JavaScript file. If `declaration` is true, also designates a file that bundles all .d.ts output.\n\nSee more: https://www.typescriptlang.org/tsconfig#outFile"
},
"outDir": {
"description": "Specify an output folder for all emitted files.",
"type": "string",
"markdownDescription": "Specify an output folder for all emitted files.\n\nSee more: https://www.typescriptlang.org/tsconfig#outDir"
},
"preserveConstEnums": {
"description": "Disable erasing `const enum` declarations in generated code.",
"type": "boolean",
"default": false,
"markdownDescription": "Disable erasing `const enum` declarations in generated code.\n\nSee more: https://www.typescriptlang.org/tsconfig#preserveConstEnums"
},
"preserveSymlinks": {
"description": "Disable resolving symlinks to their realpath. This correlates to the same flag in node.",
"type": "boolean",
"default": false,
"markdownDescription": "Disable resolving symlinks to their realpath. This correlates to the same flag in node.\n\nSee more: https://www.typescriptlang.org/tsconfig#preserveSymlinks"
},
"preserveValueImports": {
"description": "Preserve unused imported values in the JavaScript output that would otherwise be removed",
"type": "boolean",
"default": false,
"markdownDescription": "Preserve unused imported values in the JavaScript output that would otherwise be removed\n\nSee more: https://www.typescriptlang.org/tsconfig#preserveValueImports"
},
"preserveWatchOutput": {
"description": "Disable wiping the console in watch mode",
"type": "boolean",
"markdownDescription": "Disable wiping the console in watch mode\n\nSee more: https://www.typescriptlang.org/tsconfig#preserveWatchOutput"
},
"pretty": {
"description": "Enable color and formatting in output to make compiler errors easier to read",
"type": "boolean",
"default": true,
"markdownDescription": "Enable color and formatting in output to make compiler errors easier to read\n\nSee more: https://www.typescriptlang.org/tsconfig#pretty"
},
"removeComments": {
"description": "Disable emitting comments.",
"type": "boolean",
"default": false,
"markdownDescription": "Disable emitting comments.\n\nSee more: https://www.typescriptlang.org/tsconfig#removeComments"
},
"rootDir": {
"description": "Specify the root folder within your source files.",
"type": "string",
"markdownDescription": "Specify the root folder within your source files.\n\nSee more: https://www.typescriptlang.org/tsconfig#rootDir"
},
"isolatedModules": {
"description": "Ensure that each file can be safely transpiled without relying on other imports.",
"type": "boolean",
"default": false,
"markdownDescription": "Ensure that each file can be safely transpiled without relying on other imports.\n\nSee more: https://www.typescriptlang.org/tsconfig#isolatedModules"
},
"sourceMap": {
"description": "Create source map files for emitted JavaScript files.",
"type": "boolean",
"default": false,
"markdownDescription": "Create source map files for emitted JavaScript files.\n\nSee more: https://www.typescriptlang.org/tsconfig#sourceMap"
},
"sourceRoot": {
"description": "Specify the root path for debuggers to find the reference source code.",
"type": "string",
"markdownDescription": "Specify the root path for debuggers to find the reference source code.\n\nSee more: https://www.typescriptlang.org/tsconfig#sourceRoot"
},
"suppressExcessPropertyErrors": {
"description": "Disable reporting of excess property errors during the creation of object literals.",
"type": "boolean",
"default": false,
"markdownDescription": "Disable reporting of excess property errors during the creation of object literals.\n\nSee more: https://www.typescriptlang.org/tsconfig#suppressExcessPropertyErrors"
},
"suppressImplicitAnyIndexErrors": {
"description": "Suppress `noImplicitAny` errors when indexing objects that lack index signatures.",
"type": "boolean",
"default": false,
"markdownDescription": "Suppress `noImplicitAny` errors when indexing objects that lack index signatures.\n\nSee more: https://www.typescriptlang.org/tsconfig#suppressImplicitAnyIndexErrors"
},
"stripInternal": {
"description": "Disable emitting declarations that have `@internal` in their JSDoc comments.",
"type": "boolean",
"markdownDescription": "Disable emitting declarations that have `@internal` in their JSDoc comments.\n\nSee more: https://www.typescriptlang.org/tsconfig#stripInternal"
},
"target": {
"description": "Set the JavaScript language version for emitted JavaScript and include compatible library declarations.",
"type": "string",
"default": "ES3",
"anyOf": [
{
"enum": [
"ES3",
"ES5",
"ES6",
"ES2015",
"ES2016",
"ES2017",
"ES2018",
"ES2019",
"ES2020",
"ES2021",
"ES2022",
"ESNext"
]
},
{
"pattern": "^([Ee][Ss]([356]|(20(1[56789]|2[012]))|[Nn][Ee][Xx][Tt]))$"
}
],
"markdownDescription": "Set the JavaScript language version for emitted JavaScript and include compatible library declarations.\n\nSee more: https://www.typescriptlang.org/tsconfig#target"
},
"useUnknownInCatchVariables": {
"description": "Default catch clause variables as `unknown` instead of `any`.",
"type": "boolean",
"default": false,
"markdownDescription": "Default catch clause variables as `unknown` instead of `any`.\n\nSee more: https://www.typescriptlang.org/tsconfig#useUnknownInCatchVariables"
},
"watch": {
"description": "Watch input files.",
"type": "boolean"
},
"fallbackPolling": {
"description": "Specify the polling strategy to use when the system runs out of or doesn't support native file watchers. Requires TypeScript version 3.8 or later.",
"enum": [
"fixedPollingInterval",
"priorityPollingInterval",
"dynamicPriorityPolling",
"fixedInterval",
"priorityInterval",
"dynamicPriority",
"fixedChunkSize"
]
},
"watchDirectory": {
"description": "Specify the strategy for watching directories under systems that lack recursive file-watching functionality. Requires TypeScript version 3.8 or later.",
"enum": [
"useFsEvents",
"fixedPollingInterval",
"dynamicPriorityPolling",
"fixedChunkSizePolling"
],
"default": "useFsEvents"
},
"watchFile": {
"description": "Specify the strategy for watching individual files. Requires TypeScript version 3.8 or later.",
"enum": [
"fixedPollingInterval",
"priorityPollingInterval",
"dynamicPriorityPolling",
"useFsEvents",
"useFsEventsOnParentDirectory",
"fixedChunkSizePolling"
],
"default": "useFsEvents"
},
"experimentalDecorators": {
"description": "Enable experimental support for TC39 stage 2 draft decorators.",
"type": "boolean",
"markdownDescription": "Enable experimental support for TC39 stage 2 draft decorators.\n\nSee more: https://www.typescriptlang.org/tsconfig#experimentalDecorators"
},
"emitDecoratorMetadata": {
"description": "Emit design-type metadata for decorated declarations in source files.",
"type": "boolean",
"markdownDescription": "Emit design-type metadata for decorated declarations in source files.\n\nSee more: https://www.typescriptlang.org/tsconfig#emitDecoratorMetadata"
},
"allowUnusedLabels": {
"description": "Disable error reporting for unused labels.",
"type": "boolean",
"markdownDescription": "Disable error reporting for unused labels.\n\nSee more: https://www.typescriptlang.org/tsconfig#allowUnusedLabels"
},
"noImplicitReturns": {
"description": "Enable error reporting for codepaths that do not explicitly return in a function.",
"type": "boolean",
"default": false,
"markdownDescription": "Enable error reporting for codepaths that do not explicitly return in a function.\n\nSee more: https://www.typescriptlang.org/tsconfig#noImplicitReturns"
},
"noUncheckedIndexedAccess": {
"description": "Add `undefined` to a type when accessed using an index.",
"type": "boolean",
"markdownDescription": "Add `undefined` to a type when accessed using an index.\n\nSee more: https://www.typescriptlang.org/tsconfig#noUncheckedIndexedAccess"
},
"noFallthroughCasesInSwitch": {
"description": "Enable error reporting for fallthrough cases in switch statements.",
"type": "boolean",
"default": false,
"markdownDescription": "Enable error reporting for fallthrough cases in switch statements.\n\nSee more: https://www.typescriptlang.org/tsconfig#noFallthroughCasesInSwitch"
},
"noImplicitOverride": {
"description": "Ensure overriding members in derived classes are marked with an override modifier.",
"type": "boolean",
"default": false,
"markdownDescription": "Ensure overriding members in derived classes are marked with an override modifier.\n\nSee more: https://www.typescriptlang.org/tsconfig#noImplicitOverride"
},
"allowUnreachableCode": {
"description": "Disable error reporting for unreachable code.",
"type": "boolean",
"markdownDescription": "Disable error reporting for unreachable code.\n\nSee more: https://www.typescriptlang.org/tsconfig#allowUnreachableCode"
},
"forceConsistentCasingInFileNames": {
"description": "Ensure that casing is correct in imports.",
"type": "boolean",
"default": false,
"markdownDescription": "Ensure that casing is correct in imports.\n\nSee more: https://www.typescriptlang.org/tsconfig#forceConsistentCasingInFileNames"
},
"generateCpuProfile": {
"description": "Emit a v8 CPU profile of the compiler run for debugging.",
"type": "string",
"default": "profile.cpuprofile",
"markdownDescription": "Emit a v8 CPU profile of the compiler run for debugging.\n\nSee more: https://www.typescriptlang.org/tsconfig#generateCpuProfile"
},
"baseUrl": {
"description": "Specify the base directory to resolve non-relative module names.",
"type": "string",
"markdownDescription": "Specify the base directory to resolve non-relative module names.\n\nSee more: https://www.typescriptlang.org/tsconfig#baseUrl"
},
"paths": {
"description": "Specify a set of entries that re-map imports to additional lookup locations.",
"type": "object",
"additionalProperties": {
"type": "array",
"uniqueItems": true,
"items": {
"type": "string",
"description": "Path mapping to be computed relative to baseUrl option."
}
},
"markdownDescription": "Specify a set of entries that re-map imports to additional lookup locations.\n\nSee more: https://www.typescriptlang.org/tsconfig#paths"
},
"plugins": {
"description": "Specify a list of language service plugins to include.",
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"description": "Plugin name.",
"type": "string"
}
}
},
"markdownDescription": "Specify a list of language service plugins to include.\n\nSee more: https://www.typescriptlang.org/tsconfig#plugins"
},
"rootDirs": {
"description": "Allow multiple folders to be treated as one when resolving modules.",
"type": "array",
"uniqueItems": true,
"items": {
"type": "string"
},
"markdownDescription": "Allow multiple folders to be treated as one when resolving modules.\n\nSee more: https://www.typescriptlang.org/tsconfig#rootDirs"
},
"typeRoots": {
"description": "Specify multiple folders that act like `./node_modules/@types`.",
"type": "array",
"uniqueItems": true,
"items": {
"type": "string"
},
"markdownDescription": "Specify multiple folders that act like `./node_modules/@types`.\n\nSee more: https://www.typescriptlang.org/tsconfig#typeRoots"
},
"types": {
"description": "Specify type package names to be included without being referenced in a source file.",
"type": "array",
"uniqueItems": true,
"items": {
"type": "string"
},
"markdownDescription": "Specify type package names to be included without being referenced in a source file.\n\nSee more: https://www.typescriptlang.org/tsconfig#types"
},
"traceResolution": {
"description": "Enable tracing of the name resolution process. Requires TypeScript version 2.0 or later.",
"type": "boolean",
"default": false
},
"allowJs": {
"description": "Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files.",
"type": "boolean",
"default": false,
"markdownDescription": "Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files.\n\nSee more: https://www.typescriptlang.org/tsconfig#allowJs"
},
"noErrorTruncation": {
"description": "Disable truncating types in error messages.",
"type": "boolean",
"default": false,
"markdownDescription": "Disable truncating types in error messages.\n\nSee more: https://www.typescriptlang.org/tsconfig#noErrorTruncation"
},
"allowSyntheticDefaultImports": {
"description": "Allow 'import x from y' when a module doesn't have a default export.",
"type": "boolean",
"markdownDescription": "Allow 'import x from y' when a module doesn't have a default export.\n\nSee more: https://www.typescriptlang.org/tsconfig#allowSyntheticDefaultImports"
},
"noImplicitUseStrict": {
"description": "Disable adding 'use strict' directives in emitted JavaScript files.",
"type": "boolean",
"default": false,
"markdownDescription": "Disable adding 'use strict' directives in emitted JavaScript files.\n\nSee more: https://www.typescriptlang.org/tsconfig#noImplicitUseStrict"
},
"listEmittedFiles": {
"description": "Print the names of emitted files after a compilation.",
"type": "boolean",
"default": false,
"markdownDescription": "Print the names of emitted files after a compilation.\n\nSee more: https://www.typescriptlang.org/tsconfig#listEmittedFiles"
},
"disableSizeLimit": {
"description": "Remove the 20mb cap on total source code size for JavaScript files in the TypeScript language server.",
"type": "boolean",
"default": false,
"markdownDescription": "Remove the 20mb cap on total source code size for JavaScript files in the TypeScript language server.\n\nSee more: https://www.typescriptlang.org/tsconfig#disableSizeLimit"
},
"lib": {
"description": "Specify a set of bundled library declaration files that describe the target runtime environment.",
"type": "array",
"uniqueItems": true,
"items": {
"type": "string",
"anyOf": [
{
"enum": [
"ES5",
"ES6",
"ES2015",
"ES2015.Collection",
"ES2015.Core",
"ES2015.Generator",
"ES2015.Iterable",
"ES2015.Promise",
"ES2015.Proxy",
"ES2015.Reflect",
"ES2015.Symbol.WellKnown",
"ES2015.Symbol",
"ES2016",
"ES2016.Array.Include",
"ES2017",
"ES2017.Intl",
"ES2017.Object",
"ES2017.SharedMemory",
"ES2017.String",
"ES2017.TypedArrays",
"ES2018",
"ES2018.AsyncGenerator",
"ES2018.AsyncIterable",
"ES2018.Intl",
"ES2018.Promise",
"ES2018.Regexp",
"ES2019",
"ES2019.Array",
"ES2019.Object",
"ES2019.String",
"ES2019.Symbol",
"ES2020",
"ES2020.BigInt",
"ES2020.Promise",
"ES2020.String",
"ES2020.Symbol.WellKnown",
"ESNext",
"ESNext.Array",
"ESNext.AsyncIterable",
"ESNext.BigInt",
"ESNext.Intl",
"ESNext.Promise",
"ESNext.String",
"ESNext.Symbol",
"DOM",
"DOM.Iterable",
"ScriptHost",
"WebWorker",
"WebWorker.ImportScripts",
"Webworker.Iterable",
"ES7",
"ES2021",
"ES2020.SharedMemory",
"ES2020.Intl",
"ES2021.Promise",
"ES2021.String",
"ES2021.WeakRef",
"ESNext.WeakRef",
"es2021.intl"
]
},
{
"pattern": "^[Ee][Ss]5|[Ee][Ss]6|[Ee][Ss]7$"
},
{
"pattern": "^[Ee][Ss]2015(\\.([Cc][Oo][Ll][Ll][Ee][Cc][Tt][Ii][Oo][Nn]|[Cc][Oo][Rr][Ee]|[Gg][Ee][Nn][Ee][Rr][Aa][Tt][Oo][Rr]|[Ii][Tt][Ee][Rr][Aa][Bb][Ll][Ee]|[Pp][Rr][Oo][Mm][Ii][Ss][Ee]|[Pp][Rr][Oo][Xx][Yy]|[Rr][Ee][Ff][Ll][Ee][Cc][Tt]|[Ss][Yy][Mm][Bb][Oo][Ll].[Ww][Ee][Ll][Ll][Kk][Nn][Oo][Ww][Nn]|[Ss][Yy][Mm][Bb][Oo][Ll]))?$"
},
{
"pattern": "^[Ee][Ss]2016(\\.[Aa][Rr][Rr][Aa][Yy].[Ii][Nn][Cc][Ll][Uu][Dd][Ee])?$"
},
{
"pattern": "^[Ee][Ss]2017(\\.([Ii][Nn][Tt][Ll]|[Oo][Bb][Jj][Ee][Cc][Tt]|[Ss][Hh][Aa][Rr][Ee][Dd][Mm][Ee][Mm][Oo][Rr][Yy]|[Ss][Tt][Rr][Ii][Nn][Gg]|[Tt][Yy][Pp][Ee][Dd][Aa][Rr][Rr][Aa][Yy][Ss]))?$"
},
{
"pattern": "^[Ee][Ss]2018(\\.([Aa][Ss][Yy][Nn][Cc][Ii][Tt][Ee][Rr][Aa][Bb][Ll][Ee]|[Ii][Nn][Tt][Ll]|[Pp][Rr][Oo][Mm][Ii][Ss][Ee]|[Rr][Ee][Gg][Ee][Xx][Pp]))?$"
},
{
"pattern": "^[Ee][Ss]2019(\\.([Aa][Rr][Rr][Aa][Yy]|[Oo][Bb][Jj][Ee][Cc][Tt]|[Ss][Tt][Rr][Ii][Nn][Gg]|[Ss][Yy][Mm][Bb][Oo][Ll]))?$"
},
{
"pattern": "^[Ee][Ss]2020(\\.([Bb][Ii][Gg][Ii][Nn][Tt]|[Pp][Rr][Oo][Mm][Ii][Ss][Ee]|[Ss][Tt][Rr][Ii][Nn][Gg]|[Ss][Yy][Mm][Bb][Oo][Ll].[Ww][Ee][Ll][Ll][Kk][Nn][Oo][Ww][Nn]))?$"
},
{
"pattern": "^[Ee][Ss]2021(\\.([Ii][Nn][Tt][Ll]|[Pp][Rr][Oo][Mm][Ii][Ss][Ee]|[Ss][Tt][Rr][Ii][Nn][Gg]|[Ww][Ee][Aa][Kk][Rr][Ee][Ff]))?$"
},
{
"pattern": "^[Ee][Ss][Nn][Ee][Xx][Tt](\\.([Aa][Rr][Rr][Aa][Yy]|[Aa][Ss][Yy][Nn][Cc][Ii][Tt][Ee][Rr][Aa][Bb][Ll][Ee]|[Bb][Ii][Gg][Ii][Nn][Tt]|[Ii][Nn][Tt][Ll]|[Pp][Rr][Oo][Mm][Ii][Ss][Ee]|[Ss][Tt][Rr][Ii][Nn][Gg]|[Ss][Yy][Mm][Bb][Oo][Ll]|[Ww][Ee][Aa][Kk][Rr][Ee][Ff]))?$"
},
{
"pattern": "^[Dd][Oo][Mm](\\.[Ii][Tt][Ee][Rr][Aa][Bb][Ll][Ee])?$"
},
{
"pattern": "^[Ss][Cc][Rr][Ii][Pp][Tt][Hh][Oo][Ss][Tt]$"
},
{
"pattern": "^[Ww][Ee][Bb][Ww][Oo][Rr][Kk][Ee][Rr](\\.[Ii][Mm][Pp][Oo][Rr][Tt][Ss][Cc][Rr][Ii][Pp][Tt][Ss])?$"
}
]
},
"markdownDescription": "Specify a set of bundled library declaration files that describe the target runtime environment.\n\nSee more: https://www.typescriptlang.org/tsconfig#lib"
},
"strictNullChecks": {
"description": "When type checking, take into account `null` and `undefined`.",
"type": "boolean",
"default": false,
"markdownDescription": "When type checking, take into account `null` and `undefined`.\n\nSee more: https://www.typescriptlang.org/tsconfig#strictNullChecks"
},
"maxNodeModuleJsDepth": {
"description": "Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`.",
"type": "number",
"default": 0,
"markdownDescription": "Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`.\n\nSee more: https://www.typescriptlang.org/tsconfig#maxNodeModuleJsDepth"
},
"importHelpers": {
"description": "Allow importing helper functions from tslib once per project, instead of including them per-file.",
"type": "boolean",
"default": false,
"markdownDescription": "Allow importing helper functions from tslib once per project, instead of including them per-file.\n\nSee more: https://www.typescriptlang.org/tsconfig#importHelpers"
},
"importsNotUsedAsValues": {
"description": "Specify emit/checking behavior for imports that are only used for types.",
"default": "remove",
"enum": [
"remove",
"preserve",
"error"
]
},
"alwaysStrict": {
"description": "Ensure 'use strict' is always emitted.",
"type": "boolean",
"markdownDescription": "Ensure 'use strict' is always emitted.\n\nSee more: https://www.typescriptlang.org/tsconfig#alwaysStrict"
},
"strict": {
"description": "Enable all strict type checking options.",
"type": "boolean",
"default": false,
"markdownDescription": "Enable all strict type checking options.\n\nSee more: https://www.typescriptlang.org/tsconfig#strict"
},
"strictBindCallApply": {
"description": "Check that the arguments for `bind`, `call`, and `apply` methods match the original function.",
"type": "boolean",
"default": false,
"markdownDescription": "Check that the arguments for `bind`, `call`, and `apply` methods match the original function.\n\nSee more: https://www.typescriptlang.org/tsconfig#strictBindCallApply"
},
"downlevelIteration": {
"description": "Emit more compliant, but verbose and less performant JavaScript for iteration.",
"type": "boolean",
"default": false,
"markdownDescription": "Emit more compliant, but verbose and less performant JavaScript for iteration.\n\nSee more: https://www.typescriptlang.org/tsconfig#downlevelIteration"
},
"checkJs": {
"description": "Enable error reporting in type-checked JavaScript files.",
"type": "boolean",
"default": false,
"markdownDescription": "Enable error reporting in type-checked JavaScript files.\n\nSee more: https://www.typescriptlang.org/tsconfig#checkJs"
},
"strictFunctionTypes": {
"description": "When assigning functions, check to ensure parameters and the return values are subtype-compatible.",
"type": "boolean",
"default": false,
"markdownDescription": "When assigning functions, check to ensure parameters and the return values are subtype-compatible.\n\nSee more: https://www.typescriptlang.org/tsconfig#strictFunctionTypes"
},
"strictPropertyInitialization": {
"description": "Check for class properties that are declared but not set in the constructor.",
"type": "boolean",
"default": false,
"markdownDescription": "Check for class properties that are declared but not set in the constructor.\n\nSee more: https://www.typescriptlang.org/tsconfig#strictPropertyInitialization"
},
"esModuleInterop": {
"description": "Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility.",
"type": "boolean",
"default": false,
"markdownDescription": "Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility.\n\nSee more: https://www.typescriptlang.org/tsconfig#esModuleInterop"
},
"allowUmdGlobalAccess": {
"description": "Allow accessing UMD globals from modules.",
"type": "boolean",
"default": false,
"markdownDescription": "Allow accessing UMD globals from modules.\n\nSee more: https://www.typescriptlang.org/tsconfig#allowUmdGlobalAccess"
},
"keyofStringsOnly": {
"description": "Make keyof only return strings instead of string, numbers or symbols. Legacy option.",
"type": "boolean",
"default": false,
"markdownDescription": "Make keyof only return strings instead of string, numbers or symbols. Legacy option.\n\nSee more: https://www.typescriptlang.org/tsconfig#keyofStringsOnly"
},
"useDefineForClassFields": {
"description": "Emit ECMAScript-standard-compliant class fields.",
"type": "boolean",
"default": false,
"markdownDescription": "Emit ECMAScript-standard-compliant class fields.\n\nSee more: https://www.typescriptlang.org/tsconfig#useDefineForClassFields"
},
"declarationMap": {
"description": "Create sourcemaps for d.ts files.",
"type": "boolean",
"default": false,
"markdownDescription": "Create sourcemaps for d.ts files.\n\nSee more: https://www.typescriptlang.org/tsconfig#declarationMap"
},
"resolveJsonModule": {
"description": "Enable importing .json files",
"type": "boolean",
"default": false,
"markdownDescription": "Enable importing .json files\n\nSee more: https://www.typescriptlang.org/tsconfig#resolveJsonModule"
},
"assumeChangesOnlyAffectDirectDependencies": {
"description": "Have recompiles in '--incremental' and '--watch' assume that changes within a file will only affect files directly depending on it. Requires TypeScript version 3.8 or later.",
"type": "boolean"
},
"extendedDiagnostics": {
"description": "Output more detailed compiler performance information after building.",
"type": "boolean",
"default": false,
"markdownDescription": "Output more detailed compiler performance information after building.\n\nSee more: https://www.typescriptlang.org/tsconfig#extendedDiagnostics"
},
"listFilesOnly": {
"description": "Print names of files that are part of the compilation and then stop processing.",
"type": "boolean"
},
"disableSourceOfProjectReferenceRedirect": {
"description": "Disable preferring source files instead of declaration files when referencing composite projects",
"type": "boolean",
"markdownDescription": "Disable preferring source files instead of declaration files when referencing composite projects\n\nSee more: https://www.typescriptlang.org/tsconfig#disableSourceOfProjectReferenceRedirect"
},
"disableSolutionSearching": {
"description": "Opt a project out of multi-project reference checking when editing.",
"type": "boolean",
"markdownDescription": "Opt a project out of multi-project reference checking when editing.\n\nSee more: https://www.typescriptlang.org/tsconfig#disableSolutionSearching"
}
}
}
}
},
"typeAcquisitionDefinition": {
"properties": {
"typeAcquisition": {
"type": "object",
"description": "Auto type (.d.ts) acquisition options for this project. Requires TypeScript version 2.1 or later.",
"properties": {
"enable": {
"description": "Enable auto type acquisition",
"type": "boolean",
"default": false
},
"include": {
"description": "Specifies a list of type declarations to be included in auto type acquisition. Ex. [\"jquery\", \"lodash\"]",
"type": "array",
"uniqueItems": true,
"items": {
"type": "string"
}
},
"exclude": {
"description": "Specifies a list of type declarations to be excluded from auto type acquisition. Ex. [\"jquery\", \"lodash\"]",
"type": "array",
"uniqueItems": true,
"items": {
"type": "string"
}
}
}
}
}
},
"referencesDefinition": {
"properties": {
"references": {
"type": "array",
"uniqueItems": true,
"description": "Referenced projects. Requires TypeScript version 3.0 or later.",
"items": {
"type": "object",
"description": "Project reference.",
"properties": {
"path": {
"type": "string",
"description": "Path to referenced tsconfig or to folder containing tsconfig."
}
}
}
}
}
},
"tsNodeModuleTypes": {
"type": "object"
},
"tsNodeDefinition": {
"properties": {
"ts-node": {
"description": "ts-node options. See also: https://typestrong.org/ts-node/docs/configuration\n\nts-node offers TypeScript execution and REPL for node.js, with source map support.",
"properties": {
"compiler": {
"default": "typescript",
"description": "Specify a custom TypeScript compiler.",
"type": "string"
},
"compilerHost": {
"default": false,
"description": "Use TypeScript's compiler host API instead of the language service API.",
"type": "boolean"
},
"compilerOptions": {
"additionalProperties": true,
"allOf": [
{
"$ref": "#/definitions/compilerOptionsDefinition/properties/compilerOptions"
}
],
"description": "JSON object to merge with TypeScript `compilerOptions`.",
"properties": {},
"type": "object"
},
"emit": {
"default": false,
"description": "Emit output files into `.ts-node` directory.",
"type": "boolean"
},
"experimentalReplAwait": {
"description": "Allows the usage of top level await in REPL.\n\nUses node's implementation which accomplishes this with an AST syntax transformation.\n\nEnabled by default when tsconfig target is es2018 or above. Set to false to disable.\n\n**Note**: setting to `true` when tsconfig target is too low will throw an Error. Leave as `undefined`\nto get default, automatic behavior.",
"type": "boolean"
},
"experimentalResolverFeatures": {
"description": "Enable experimental features that re-map imports and require calls to support:\n`baseUrl`, `paths`, `rootDirs`, `.js` to `.ts` file extension mappings,\n`outDir` to `rootDir` mappings for composite projects and monorepos.\n\nFor details, see https://github.com/TypeStrong/ts-node/issues/1514",
"type": "boolean"
},
"files": {
"default": false,
"description": "Load \"files\" and \"include\" from `tsconfig.json` on startup.\n\nDefault is to override `tsconfig.json` \"files\" and \"include\" to only include the entrypoint script.",
"type": "boolean"
},
"ignore": {
"default": [
"(?:^|/)node_modules/"
],
"description": "Paths which should not be compiled.\n\nEach string in the array is converted to a regular expression via `new RegExp()` and tested against source paths prior to compilation.\n\nSource paths are normalized to posix-style separators, relative to the directory containing `tsconfig.json` or to cwd if no `tsconfig.json` is loaded.\n\nDefault is to ignore all node_modules subdirectories.",
"items": {
"type": "string"
},
"type": "array"
},
"ignoreDiagnostics": {
"description": "Ignore TypeScript warnings by diagnostic code.",
"items": {
"type": [
"string",
"number"
]
},
"type": "array"
},
"logError": {
"default": false,
"description": "Logs TypeScript errors to stderr instead of throwing exceptions.",
"type": "boolean"
},
"moduleTypes": {
"$ref": "#/definitions/tsNodeModuleTypes",
"description": "Override certain paths to be compiled and executed as CommonJS or ECMAScript modules.\nWhen overridden, the tsconfig \"module\" and package.json \"type\" fields are overridden.\nThis is useful because TypeScript files cannot use the .cjs nor .mjs file extensions;\nit achieves the same effect.\n\nEach key is a glob pattern following the same rules as tsconfig's \"include\" array.\nWhen multiple patterns match the same file, the last pattern takes precedence.\n\n`cjs` overrides matches files to compile and execute as CommonJS.\n`esm` overrides matches files to compile and execute as native ECMAScript modules.\n`package` overrides either of the above to default behavior, which obeys package.json \"type\" and\ntsconfig.json \"module\" options."
},
"preferTsExts": {
"default": false,
"description": "Re-order file extensions so that TypeScript imports are preferred.\n\nFor example, when both `index.js` and `index.ts` exist, enabling this option causes `require('./index')` to resolve to `index.ts` instead of `index.js`",
"type": "boolean"
},
"pretty": {
"default": false,
"description": "Use pretty diagnostic formatter.",
"type": "boolean"
},
"require": {
"description": "Modules to require, like node's `--require` flag.\n\nIf specified in `tsconfig.json`, the modules will be resolved relative to the `tsconfig.json` file.\n\nIf specified programmatically, each input string should be pre-resolved to an absolute path for\nbest results.",
"items": {
"type": "string"
},
"type": "array"
},
"scope": {
"default": false,
"description": "Scope compiler to files within `scopeDir`.",
"type": "boolean"
},
"scopeDir": {
"default": "First of: `tsconfig.json` \"rootDir\" if specified, directory containing `tsconfig.json`, or cwd if no `tsconfig.json` is loaded.",
"type": "string"
},
"skipIgnore": {
"default": false,
"description": "Skip ignore check, so that compilation will be attempted for all files with matching extensions.",
"type": "boolean"
},
"swc": {
"description": "Transpile with swc instead of the TypeScript compiler, and skip typechecking.\n\nEquivalent to setting both `transpileOnly: true` and `transpiler: 'ts-node/transpilers/swc'`\n\nFor complete instructions: https://typestrong.org/ts-node/docs/transpilers",
"type": "boolean"
},
"transpileOnly": {
"default": false,
"description": "Use TypeScript's faster `transpileModule`.",
"type": "boolean"
},
"transpiler": {
"anyOf": [
{
"items": [
{
"type": "string"
},
{
"additionalProperties": true,
"properties": {},
"type": "object"
}
],
"maxItems": 2,
"minItems": 2,
"type": "array"
},
{
"type": "string"
}
],
"description": "Specify a custom transpiler for use with transpileOnly"
},
"typeCheck": {
"default": true,
"description": "**DEPRECATED** Specify type-check is enabled (e.g. `transpileOnly == false`).",
"type": "boolean"
}
},
"type": "object"
}
}
}
},
"type": "object",
"allOf": [
{
"$ref": "#/definitions/compilerOptionsDefinition"
},
{
"$ref": "#/definitions/compileOnSaveDefinition"
},
{
"$ref": "#/definitions/typeAcquisitionDefinition"
},
{
"$ref": "#/definitions/extendsDefinition"
},
{
"$ref": "#/definitions/watchOptionsDefinition"
},
{
"$ref": "#/definitions/buildOptionsDefinition"
},
{
"$ref": "#/definitions/tsNodeDefinition"
},
{
"anyOf": [
{
"$ref": "#/definitions/filesDefinition"
},
{
"$ref": "#/definitions/excludeDefinition"
},
{
"$ref": "#/definitions/includeDefinition"
},
{
"$ref": "#/definitions/referencesDefinition"
}
]
}
]
}
{
"title": "JSON schema for a JavaScript project using TypeScript tooling",
"$schema": "http://json-schema.org/draft-04/schema#",
"definitions": {
"//": {
"explainer": "https://www.typescriptlang.org/docs/handbook/tsconfig-json.html#overview",
"reference": "https://www.typescriptlang.org/tsconfig",
"reference metadata": "https://github.com/microsoft/TypeScript-Website/blob/v2/packages/tsconfig-reference/scripts/tsconfigRules.ts"
},
"filesDefinition": {
"properties": {
"files": {
"description": "If no 'files' or 'include' property is present in a tsconfig.json, the compiler defaults to including all files in the containing directory and subdirectories except those specified by 'exclude'. When a 'files' property is specified, only those files and those specified by 'include' are included.",
"type": "array",
"uniqueItems": true,
"items": {
"type": "string"
}
}
}
},
"excludeDefinition": {
"properties": {
"exclude": {
"description": "Specifies a list of files to be excluded from compilation. The 'exclude' property only affects the files included via the 'include' property and not the 'files' property. Glob patterns require TypeScript version 2.0 or later.",
"type": "array",
"uniqueItems": true,
"items": {
"type": "string"
}
}
}
},
"includeDefinition": {
"properties": {
"include": {
"description": "Specifies a list of glob patterns that match files to be included in compilation. If no 'files' or 'include' property is present in a tsconfig.json, the compiler defaults to including all files in the containing directory and subdirectories except those specified by 'exclude'. Requires TypeScript version 2.0 or later.",
"type": "array",
"uniqueItems": true,
"items": {
"type": "string"
}
}
}
},
"compileOnSaveDefinition": {
"properties": {
"compileOnSave": {
"description": "Enable Compile-on-Save for this project.",
"type": "boolean"
}
}
},
"extendsDefinition": {
"properties": {
"extends": {
"description": "Path to base configuration file to inherit from. Requires TypeScript version 2.1 or later.",
"type": "string"
}
}
},
"buildOptionsDefinition": {
"properties": {
"buildOptions": {
"properties": {
"dry": {
"description": "~",
"type": "boolean",
"default": false
},
"force": {
"description": "Build all projects, including those that appear to be up to date",
"type": "boolean",
"default": false,
"markdownDescription": "Build all projects, including those that appear to be up to date\n\nSee more: https://www.typescriptlang.org/tsconfig#force"
},
"verbose": {
"description": "Enable verbose logging",
"type": "boolean",
"default": false,
"markdownDescription": "Enable verbose logging\n\nSee more: https://www.typescriptlang.org/tsconfig#verbose"
},
"incremental": {
"description": "Save .tsbuildinfo files to allow for incremental compilation of projects.",
"type": "boolean",
"default": false,
"markdownDescription": "Save .tsbuildinfo files to allow for incremental compilation of projects.\n\nSee more: https://www.typescriptlang.org/tsconfig#incremental"
},
"assumeChangesOnlyAffectDirectDependencies": {
"description": "Have recompiles in projects that use `incremental` and `watch` mode assume that changes within a file will only affect files directly depending on it.",
"type": "boolean",
"default": false,
"markdownDescription": "Have recompiles in projects that use `incremental` and `watch` mode assume that changes within a file will only affect files directly depending on it.\n\nSee more: https://www.typescriptlang.org/tsconfig#assumeChangesOnlyAffectDirectDependencies"
},
"traceResolution": {
"description": "Log paths used during the `moduleResolution` process.",
"type": "boolean",
"default": false,
"markdownDescription": "Log paths used during the `moduleResolution` process.\n\nSee more: https://www.typescriptlang.org/tsconfig#traceResolution"
}
}
}
}
},
"watchOptionsDefinition": {
"properties": {
"watchOptions": {
"type": "object",
"description": "Settings for the watch mode in TypeScript.",
"properties": {
"force": {
"description": "~",
"type": "string"
},
"watchFile": {
"description": "Specify how the TypeScript watch mode works.",
"type": "string",
"markdownDescription": "Specify how the TypeScript watch mode works.\n\nSee more: https://www.typescriptlang.org/tsconfig#watchFile"
},
"watchDirectory": {
"description": "Specify how directories are watched on systems that lack recursive file-watching functionality.",
"type": "string",
"markdownDescription": "Specify how directories are watched on systems that lack recursive file-watching functionality.\n\nSee more: https://www.typescriptlang.org/tsconfig#watchDirectory"
},
"fallbackPolling": {
"description": "Specify what approach the watcher should use if the system runs out of native file watchers.",
"type": "string",
"markdownDescription": "Specify what approach the watcher should use if the system runs out of native file watchers.\n\nSee more: https://www.typescriptlang.org/tsconfig#fallbackPolling"
},
"synchronousWatchDirectory": {
"description": "Synchronously call callbacks and update the state of directory watchers on platforms that don`t support recursive watching natively.",
"type": "boolean",
"markdownDescription": "Synchronously call callbacks and update the state of directory watchers on platforms that don`t support recursive watching natively.\n\nSee more: https://www.typescriptlang.org/tsconfig#synchronousWatchDirectory"
},
"excludeFiles": {
"description": "Remove a list of files from the watch mode's processing.",
"type": "array",
"uniqueItems": true,
"items": {
"type": "string"
},
"markdownDescription": "Remove a list of files from the watch mode's processing.\n\nSee more: https://www.typescriptlang.org/tsconfig#excludeFiles"
},
"excludeDirectories": {
"description": "Remove a list of directories from the watch process.",
"type": "array",
"uniqueItems": true,
"items": {
"type": "string"
},
"markdownDescription": "Remove a list of directories from the watch process.\n\nSee more: https://www.typescriptlang.org/tsconfig#excludeDirectories"
}
}
}
}
},
"compilerOptionsDefinition": {
"properties": {
"compilerOptions": {
"type": "object",
"description": "Instructs the TypeScript compiler how to compile .ts files.",
"properties": {
"charset": {
"description": "No longer supported. In early versions, manually set the text encoding for reading files.",
"type": "string",
"markdownDescription": "No longer supported. In early versions, manually set the text encoding for reading files.\n\nSee more: https://www.typescriptlang.org/tsconfig#charset"
},
"composite": {
"description": "Enable constraints that allow a TypeScript project to be used with project references.",
"type": "boolean",
"default": true,
"markdownDescription": "Enable constraints that allow a TypeScript project to be used with project references.\n\nSee more: https://www.typescriptlang.org/tsconfig#composite"
},
"declaration": {
"description": "Generate .d.ts files from TypeScript and JavaScript files in your project.",
"type": "boolean",
"default": false,
"markdownDescription": "Generate .d.ts files from TypeScript and JavaScript files in your project.\n\nSee more: https://www.typescriptlang.org/tsconfig#declaration"
},
"declarationDir": {
"description": "Specify the output directory for generated declaration files.",
"type": ["string", "null"],
"markdownDescription": "Specify the output directory for generated declaration files.\n\nSee more: https://www.typescriptlang.org/tsconfig#declarationDir"
},
"diagnostics": {
"description": "Output compiler performance information after building.",
"type": "boolean",
"markdownDescription": "Output compiler performance information after building.\n\nSee more: https://www.typescriptlang.org/tsconfig#diagnostics"
},
"disableReferencedProjectLoad": {
"description": "Reduce the number of projects loaded automatically by TypeScript.",
"type": "boolean",
"markdownDescription": "Reduce the number of projects loaded automatically by TypeScript.\n\nSee more: https://www.typescriptlang.org/tsconfig#disableReferencedProjectLoad"
},
"noPropertyAccessFromIndexSignature": {
"description": "Enforces using indexed accessors for keys declared using an indexed type",
"type": "boolean",
"markdownDescription": "Enforces using indexed accessors for keys declared using an indexed type\n\nSee more: https://www.typescriptlang.org/tsconfig#noPropertyAccessFromIndexSignature"
},
"emitBOM": {
"description": "Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files.",
"type": "boolean",
"default": false,
"markdownDescription": "Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files.\n\nSee more: https://www.typescriptlang.org/tsconfig#emitBOM"
},
"emitDeclarationOnly": {
"description": "Only output d.ts files and not JavaScript files.",
"type": "boolean",
"default": false,
"markdownDescription": "Only output d.ts files and not JavaScript files.\n\nSee more: https://www.typescriptlang.org/tsconfig#emitDeclarationOnly"
},
"exactOptionalPropertyTypes": {
"description": "Differentiate between undefined and not present when type checking",
"type": "boolean",
"default": false,
"markdownDescription": "Differentiate between undefined and not present when type checking\n\nSee more: https://www.typescriptlang.org/tsconfig#exactOptionalPropertyTypes"
},
"incremental": {
"description": "Enable incremental compilation. Requires TypeScript version 3.4 or later.",
"type": "boolean"
},
"tsBuildInfoFile": {
"description": "Specify the folder for .tsbuildinfo incremental compilation files.",
"default": ".tsbuildinfo",
"type": "string",
"markdownDescription": "Specify the folder for .tsbuildinfo incremental compilation files.\n\nSee more: https://www.typescriptlang.org/tsconfig#tsBuildInfoFile"
},
"inlineSourceMap": {
"description": "Include sourcemap files inside the emitted JavaScript.",
"type": "boolean",
"default": false,
"markdownDescription": "Include sourcemap files inside the emitted JavaScript.\n\nSee more: https://www.typescriptlang.org/tsconfig#inlineSourceMap"
},
"inlineSources": {
"description": "Include source code in the sourcemaps inside the emitted JavaScript.",
"type": "boolean",
"default": false,
"markdownDescription": "Include source code in the sourcemaps inside the emitted JavaScript.\n\nSee more: https://www.typescriptlang.org/tsconfig#inlineSources"
},
"jsx": {
"description": "Specify what JSX code is generated.",
"enum": ["preserve", "react", "react-jsx", "react-jsxdev", "react-native"]
},
"reactNamespace": {
"description": "Specify the object invoked for `createElement`. This only applies when targeting `react` JSX emit.",
"type": "string",
"default": "React",
"markdownDescription": "Specify the object invoked for `createElement`. This only applies when targeting `react` JSX emit.\n\nSee more: https://www.typescriptlang.org/tsconfig#reactNamespace"
},
"jsxFactory": {
"description": "Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'",
"type": "string",
"default": "React.createElement",
"markdownDescription": "Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'\n\nSee more: https://www.typescriptlang.org/tsconfig#jsxFactory"
},
"jsxFragmentFactory": {
"description": "Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'.",
"type": "string",
"default": "React.Fragment",
"markdownDescription": "Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'.\n\nSee more: https://www.typescriptlang.org/tsconfig#jsxFragmentFactory"
},
"jsxImportSource": {
"description": "Specify module specifier used to import the JSX factory functions when using `jsx: react-jsx`.",
"type": "string",
"default": "react",
"markdownDescription": "Specify module specifier used to import the JSX factory functions when using `jsx: react-jsx`.\n\nSee more: https://www.typescriptlang.org/tsconfig#jsxImportSource"
},
"listFiles": {
"description": "Print all of the files read during the compilation.",
"type": "boolean",
"default": false,
"markdownDescription": "Print all of the files read during the compilation.\n\nSee more: https://www.typescriptlang.org/tsconfig#listFiles"
},
"mapRoot": {
"description": "Specify the location where debugger should locate map files instead of generated locations.",
"type": "string",
"markdownDescription": "Specify the location where debugger should locate map files instead of generated locations.\n\nSee more: https://www.typescriptlang.org/tsconfig#mapRoot"
},
"module": {
"description": "Specify what module code is generated.",
"type": "string",
"anyOf": [
{
"enum": [
"CommonJS",
"AMD",
"System",
"UMD",
"ES6",
"ES2015",
"ES2020",
"ESNext",
"None",
"es2022",
"node12",
"nodenext"
]
},
{
"pattern": "^([Cc][Oo][Mm][Mm][Oo][Nn][Jj][Ss]|[AaUu][Mm][Dd]|[Ss][Yy][Ss][Tt][Ee][Mm]|[Ee][Ss]([356]|201[567]|2020|[Nn][Ee][Xx][Tt])|[Nn][Oo][Nn][Ee])$"
}
],
"markdownDescription": "Specify what module code is generated.\n\nSee more: https://www.typescriptlang.org/tsconfig#module"
},
"moduleResolution": {
"description": "Specify how TypeScript looks up a file from a given module specifier.",
"type": "string",
"anyOf": [
{
"enum": ["Classic", "Node"]
},
{
"pattern": "^(([Nn]ode)|([Cc]lassic))$"
}
],
"default": "classic",
"markdownDescription": "Specify how TypeScript looks up a file from a given module specifier.\n\nSee more: https://www.typescriptlang.org/tsconfig#moduleResolution"
},
"newLine": {
"description": "Set the newline character for emitting files.",
"type": "string",
"anyOf": [
{
"enum": ["crlf", "lf"]
},
{
"pattern": "^(CRLF|LF|crlf|lf)$"
}
],
"markdownDescription": "Set the newline character for emitting files.\n\nSee more: https://www.typescriptlang.org/tsconfig#newLine"
},
"noEmit": {
"description": "Disable emitting file from a compilation.",
"type": "boolean",
"default": false,
"markdownDescription": "Disable emitting file from a compilation.\n\nSee more: https://www.typescriptlang.org/tsconfig#noEmit"
},
"noEmitHelpers": {
"description": "Disable generating custom helper functions like `__extends` in compiled output.",
"type": "boolean",
"default": false,
"markdownDescription": "Disable generating custom helper functions like `__extends` in compiled output.\n\nSee more: https://www.typescriptlang.org/tsconfig#noEmitHelpers"
},
"noEmitOnError": {
"description": "Disable emitting files if any type checking errors are reported.",
"type": "boolean",
"default": false,
"markdownDescription": "Disable emitting files if any type checking errors are reported.\n\nSee more: https://www.typescriptlang.org/tsconfig#noEmitOnError"
},
"noImplicitAny": {
"description": "Enable error reporting for expressions and declarations with an implied `any` type..",
"type": "boolean",
"markdownDescription": "Enable error reporting for expressions and declarations with an implied `any` type..\n\nSee more: https://www.typescriptlang.org/tsconfig#noImplicitAny"
},
"noImplicitThis": {
"description": "Enable error reporting when `this` is given the type `any`.",
"type": "boolean",
"markdownDescription": "Enable error reporting when `this` is given the type `any`.\n\nSee more: https://www.typescriptlang.org/tsconfig#noImplicitThis"
},
"noUnusedLocals": {
"description": "Enable error reporting when a local variables aren't read.",
"type": "boolean",
"default": false,
"markdownDescription": "Enable error reporting when a local variables aren't read.\n\nSee more: https://www.typescriptlang.org/tsconfig#noUnusedLocals"
},
"noUnusedParameters": {
"description": "Raise an error when a function parameter isn't read",
"type": "boolean",
"default": false,
"markdownDescription": "Raise an error when a function parameter isn't read\n\nSee more: https://www.typescriptlang.org/tsconfig#noUnusedParameters"
},
"noLib": {
"description": "Disable including any library files, including the default lib.d.ts.",
"type": "boolean",
"default": false,
"markdownDescription": "Disable including any library files, including the default lib.d.ts.\n\nSee more: https://www.typescriptlang.org/tsconfig#noLib"
},
"noResolve": {
"description": "Disallow `import`s, `require`s or `<reference>`s from expanding the number of files TypeScript should add to a project.",
"type": "boolean",
"default": false,
"markdownDescription": "Disallow `import`s, `require`s or `<reference>`s from expanding the number of files TypeScript should add to a project.\n\nSee more: https://www.typescriptlang.org/tsconfig#noResolve"
},
"noStrictGenericChecks": {
"description": "Disable strict checking of generic signatures in function types.",
"type": "boolean",
"default": false,
"markdownDescription": "Disable strict checking of generic signatures in function types.\n\nSee more: https://www.typescriptlang.org/tsconfig#noStrictGenericChecks"
},
"skipDefaultLibCheck": {
"description": "Skip type checking .d.ts files that are included with TypeScript.",
"type": "boolean",
"default": false,
"markdownDescription": "Skip type checking .d.ts files that are included with TypeScript.\n\nSee more: https://www.typescriptlang.org/tsconfig#skipDefaultLibCheck"
},
"skipLibCheck": {
"description": "Skip type checking all .d.ts files.",
"type": "boolean",
"default": false,
"markdownDescription": "Skip type checking all .d.ts files.\n\nSee more: https://www.typescriptlang.org/tsconfig#skipLibCheck"
},
"outFile": {
"description": "Specify a file that bundles all outputs into one JavaScript file. If `declaration` is true, also designates a file that bundles all .d.ts output.",
"type": "string",
"markdownDescription": "Specify a file that bundles all outputs into one JavaScript file. If `declaration` is true, also designates a file that bundles all .d.ts output.\n\nSee more: https://www.typescriptlang.org/tsconfig#outFile"
},
"outDir": {
"description": "Specify an output folder for all emitted files.",
"type": "string",
"markdownDescription": "Specify an output folder for all emitted files.\n\nSee more: https://www.typescriptlang.org/tsconfig#outDir"
},
"preserveConstEnums": {
"description": "Disable erasing `const enum` declarations in generated code.",
"type": "boolean",
"default": false,
"markdownDescription": "Disable erasing `const enum` declarations in generated code.\n\nSee more: https://www.typescriptlang.org/tsconfig#preserveConstEnums"
},
"preserveSymlinks": {
"description": "Disable resolving symlinks to their realpath. This correlates to the same flag in node.",
"type": "boolean",
"default": false,
"markdownDescription": "Disable resolving symlinks to their realpath. This correlates to the same flag in node.\n\nSee more: https://www.typescriptlang.org/tsconfig#preserveSymlinks"
},
"preserveValueImports": {
"description": "Preserve unused imported values in the JavaScript output that would otherwise be removed",
"type": "boolean",
"default": false,
"markdownDescription": "Preserve unused imported values in the JavaScript output that would otherwise be removed\n\nSee more: https://www.typescriptlang.org/tsconfig#preserveValueImports"
},
"preserveWatchOutput": {
"description": "Disable wiping the console in watch mode",
"type": "boolean",
"markdownDescription": "Disable wiping the console in watch mode\n\nSee more: https://www.typescriptlang.org/tsconfig#preserveWatchOutput"
},
"pretty": {
"description": "Enable color and formatting in output to make compiler errors easier to read",
"type": "boolean",
"default": true,
"markdownDescription": "Enable color and formatting in output to make compiler errors easier to read\n\nSee more: https://www.typescriptlang.org/tsconfig#pretty"
},
"removeComments": {
"description": "Disable emitting comments.",
"type": "boolean",
"default": false,
"markdownDescription": "Disable emitting comments.\n\nSee more: https://www.typescriptlang.org/tsconfig#removeComments"
},
"rootDir": {
"description": "Specify the root folder within your source files.",
"type": "string",
"markdownDescription": "Specify the root folder within your source files.\n\nSee more: https://www.typescriptlang.org/tsconfig#rootDir"
},
"isolatedModules": {
"description": "Ensure that each file can be safely transpiled without relying on other imports.",
"type": "boolean",
"default": false,
"markdownDescription": "Ensure that each file can be safely transpiled without relying on other imports.\n\nSee more: https://www.typescriptlang.org/tsconfig#isolatedModules"
},
"sourceMap": {
"description": "Create source map files for emitted JavaScript files.",
"type": "boolean",
"default": false,
"markdownDescription": "Create source map files for emitted JavaScript files.\n\nSee more: https://www.typescriptlang.org/tsconfig#sourceMap"
},
"sourceRoot": {
"description": "Specify the root path for debuggers to find the reference source code.",
"type": "string",
"markdownDescription": "Specify the root path for debuggers to find the reference source code.\n\nSee more: https://www.typescriptlang.org/tsconfig#sourceRoot"
},
"suppressExcessPropertyErrors": {
"description": "Disable reporting of excess property errors during the creation of object literals.",
"type": "boolean",
"default": false,
"markdownDescription": "Disable reporting of excess property errors during the creation of object literals.\n\nSee more: https://www.typescriptlang.org/tsconfig#suppressExcessPropertyErrors"
},
"suppressImplicitAnyIndexErrors": {
"description": "Suppress `noImplicitAny` errors when indexing objects that lack index signatures.",
"type": "boolean",
"default": false,
"markdownDescription": "Suppress `noImplicitAny` errors when indexing objects that lack index signatures.\n\nSee more: https://www.typescriptlang.org/tsconfig#suppressImplicitAnyIndexErrors"
},
"stripInternal": {
"description": "Disable emitting declarations that have `@internal` in their JSDoc comments.",
"type": "boolean",
"markdownDescription": "Disable emitting declarations that have `@internal` in their JSDoc comments.\n\nSee more: https://www.typescriptlang.org/tsconfig#stripInternal"
},
"target": {
"description": "Set the JavaScript language version for emitted JavaScript and include compatible library declarations.",
"type": "string",
"default": "ES3",
"anyOf": [
{
"enum": [
"ES3",
"ES5",
"ES6",
"ES2015",
"ES2016",
"ES2017",
"ES2018",
"ES2019",
"ES2020",
"ES2021",
"ESNext"
]
},
{
"pattern": "^([Ee][Ss]([356]|(20(1[56789]|2[01]))|[Nn][Ee][Xx][Tt]))$"
}
],
"markdownDescription": "Set the JavaScript language version for emitted JavaScript and include compatible library declarations.\n\nSee more: https://www.typescriptlang.org/tsconfig#target"
},
"useUnknownInCatchVariables": {
"description": "Default catch clause variables as `unknown` instead of `any`.",
"type": "boolean",
"default": false,
"markdownDescription": "Default catch clause variables as `unknown` instead of `any`.\n\nSee more: https://www.typescriptlang.org/tsconfig#useUnknownInCatchVariables"
},
"watch": {
"description": "Watch input files.",
"type": "boolean"
},
"fallbackPolling": {
"description": "Specify the polling strategy to use when the system runs out of or doesn't support native file watchers. Requires TypeScript version 3.8 or later.",
"enum": [
"fixedPollingInterval",
"priorityPollingInterval",
"dynamicPriorityPolling",
"fixedInterval",
"priorityInterval",
"dynamicPriority",
"fixedChunkSize"
]
},
"watchDirectory": {
"description": "Specify the strategy for watching directories under systems that lack recursive file-watching functionality. Requires TypeScript version 3.8 or later.",
"enum": [
"useFsEvents",
"fixedPollingInterval",
"dynamicPriorityPolling",
"fixedChunkSizePolling"
],
"default": "useFsEvents"
},
"watchFile": {
"description": "Specify the strategy for watching individual files. Requires TypeScript version 3.8 or later.",
"enum": [
"fixedPollingInterval",
"priorityPollingInterval",
"dynamicPriorityPolling",
"useFsEvents",
"useFsEventsOnParentDirectory",
"fixedChunkSizePolling"
],
"default": "useFsEvents"
},
"experimentalDecorators": {
"description": "Enable experimental support for TC39 stage 2 draft decorators.",
"type": "boolean",
"markdownDescription": "Enable experimental support for TC39 stage 2 draft decorators.\n\nSee more: https://www.typescriptlang.org/tsconfig#experimentalDecorators"
},
"emitDecoratorMetadata": {
"description": "Emit design-type metadata for decorated declarations in source files.",
"type": "boolean",
"markdownDescription": "Emit design-type metadata for decorated declarations in source files.\n\nSee more: https://www.typescriptlang.org/tsconfig#emitDecoratorMetadata"
},
"allowUnusedLabels": {
"description": "Disable error reporting for unused labels.",
"type": "boolean",
"markdownDescription": "Disable error reporting for unused labels.\n\nSee more: https://www.typescriptlang.org/tsconfig#allowUnusedLabels"
},
"noImplicitReturns": {
"description": "Enable error reporting for codepaths that do not explicitly return in a function.",
"type": "boolean",
"default": false,
"markdownDescription": "Enable error reporting for codepaths that do not explicitly return in a function.\n\nSee more: https://www.typescriptlang.org/tsconfig#noImplicitReturns"
},
"noUncheckedIndexedAccess": {
"description": "Add `undefined` to a type when accessed using an index.",
"type": "boolean",
"markdownDescription": "Add `undefined` to a type when accessed using an index.\n\nSee more: https://www.typescriptlang.org/tsconfig#noUncheckedIndexedAccess"
},
"noFallthroughCasesInSwitch": {
"description": "Enable error reporting for fallthrough cases in switch statements.",
"type": "boolean",
"default": false,
"markdownDescription": "Enable error reporting for fallthrough cases in switch statements.\n\nSee more: https://www.typescriptlang.org/tsconfig#noFallthroughCasesInSwitch"
},
"noImplicitOverride": {
"description": "Ensure overriding members in derived classes are marked with an override modifier.",
"type": "boolean",
"default": false,
"markdownDescription": "Ensure overriding members in derived classes are marked with an override modifier.\n\nSee more: https://www.typescriptlang.org/tsconfig#noImplicitOverride"
},
"allowUnreachableCode": {
"description": "Disable error reporting for unreachable code.",
"type": "boolean",
"markdownDescription": "Disable error reporting for unreachable code.\n\nSee more: https://www.typescriptlang.org/tsconfig#allowUnreachableCode"
},
"forceConsistentCasingInFileNames": {
"description": "Ensure that casing is correct in imports.",
"type": "boolean",
"default": false,
"markdownDescription": "Ensure that casing is correct in imports.\n\nSee more: https://www.typescriptlang.org/tsconfig#forceConsistentCasingInFileNames"
},
"generateCpuProfile": {
"description": "Emit a v8 CPU profile of the compiler run for debugging.",
"type": "string",
"default": "profile.cpuprofile",
"markdownDescription": "Emit a v8 CPU profile of the compiler run for debugging.\n\nSee more: https://www.typescriptlang.org/tsconfig#generateCpuProfile"
},
"baseUrl": {
"description": "Specify the base directory to resolve non-relative module names.",
"type": "string",
"markdownDescription": "Specify the base directory to resolve non-relative module names.\n\nSee more: https://www.typescriptlang.org/tsconfig#baseUrl"
},
"paths": {
"description": "Specify a set of entries that re-map imports to additional lookup locations.",
"type": "object",
"additionalProperties": {
"type": "array",
"uniqueItems": true,
"items": {
"type": "string",
"description": "Path mapping to be computed relative to baseUrl option."
}
},
"markdownDescription": "Specify a set of entries that re-map imports to additional lookup locations.\n\nSee more: https://www.typescriptlang.org/tsconfig#paths"
},
"plugins": {
"description": "Specify a list of language service plugins to include.",
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"description": "Plugin name.",
"type": "string"
}
}
},
"markdownDescription": "Specify a list of language service plugins to include.\n\nSee more: https://www.typescriptlang.org/tsconfig#plugins"
},
"rootDirs": {
"description": "Allow multiple folders to be treated as one when resolving modules.",
"type": "array",
"uniqueItems": true,
"items": {
"type": "string"
},
"markdownDescription": "Allow multiple folders to be treated as one when resolving modules.\n\nSee more: https://www.typescriptlang.org/tsconfig#rootDirs"
},
"typeRoots": {
"description": "Specify multiple folders that act like `./node_modules/@types`.",
"type": "array",
"uniqueItems": true,
"items": {
"type": "string"
},
"markdownDescription": "Specify multiple folders that act like `./node_modules/@types`.\n\nSee more: https://www.typescriptlang.org/tsconfig#typeRoots"
},
"types": {
"description": "Specify type package names to be included without being referenced in a source file.",
"type": "array",
"uniqueItems": true,
"items": {
"type": "string"
},
"markdownDescription": "Specify type package names to be included without being referenced in a source file.\n\nSee more: https://www.typescriptlang.org/tsconfig#types"
},
"traceResolution": {
"description": "Enable tracing of the name resolution process. Requires TypeScript version 2.0 or later.",
"type": "boolean",
"default": false
},
"allowJs": {
"description": "Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files.",
"type": "boolean",
"default": false,
"markdownDescription": "Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files.\n\nSee more: https://www.typescriptlang.org/tsconfig#allowJs"
},
"noErrorTruncation": {
"description": "Disable truncating types in error messages.",
"type": "boolean",
"default": false,
"markdownDescription": "Disable truncating types in error messages.\n\nSee more: https://www.typescriptlang.org/tsconfig#noErrorTruncation"
},
"allowSyntheticDefaultImports": {
"description": "Allow 'import x from y' when a module doesn't have a default export.",
"type": "boolean",
"markdownDescription": "Allow 'import x from y' when a module doesn't have a default export.\n\nSee more: https://www.typescriptlang.org/tsconfig#allowSyntheticDefaultImports"
},
"noImplicitUseStrict": {
"description": "Disable adding 'use strict' directives in emitted JavaScript files.",
"type": "boolean",
"default": false,
"markdownDescription": "Disable adding 'use strict' directives in emitted JavaScript files.\n\nSee more: https://www.typescriptlang.org/tsconfig#noImplicitUseStrict"
},
"listEmittedFiles": {
"description": "Print the names of emitted files after a compilation.",
"type": "boolean",
"default": false,
"markdownDescription": "Print the names of emitted files after a compilation.\n\nSee more: https://www.typescriptlang.org/tsconfig#listEmittedFiles"
},
"disableSizeLimit": {
"description": "Remove the 20mb cap on total source code size for JavaScript files in the TypeScript language server.",
"type": "boolean",
"default": false,
"markdownDescription": "Remove the 20mb cap on total source code size for JavaScript files in the TypeScript language server.\n\nSee more: https://www.typescriptlang.org/tsconfig#disableSizeLimit"
},
"lib": {
"description": "Specify a set of bundled library declaration files that describe the target runtime environment.",
"type": "array",
"uniqueItems": true,
"items": {
"type": "string",
"anyOf": [
{
"enum": [
"ES5",
"ES6",
"ES2015",
"ES2015.Collection",
"ES2015.Core",
"ES2015.Generator",
"ES2015.Iterable",
"ES2015.Promise",
"ES2015.Proxy",
"ES2015.Reflect",
"ES2015.Symbol.WellKnown",
"ES2015.Symbol",
"ES2016",
"ES2016.Array.Include",
"ES2017",
"ES2017.Intl",
"ES2017.Object",
"ES2017.SharedMemory",
"ES2017.String",
"ES2017.TypedArrays",
"ES2018",
"ES2018.AsyncGenerator",
"ES2018.AsyncIterable",
"ES2018.Intl",
"ES2018.Promise",
"ES2018.Regexp",
"ES2019",
"ES2019.Array",
"ES2019.Object",
"ES2019.String",
"ES2019.Symbol",
"ES2020",
"ES2020.BigInt",
"ES2020.Promise",
"ES2020.String",
"ES2020.Symbol.WellKnown",
"ESNext",
"ESNext.Array",
"ESNext.AsyncIterable",
"ESNext.BigInt",
"ESNext.Intl",
"ESNext.Promise",
"ESNext.String",
"ESNext.Symbol",
"DOM",
"DOM.Iterable",
"ScriptHost",
"WebWorker",
"WebWorker.ImportScripts",
"Webworker.Iterable",
"ES7",
"ES2021",
"ES2020.SharedMemory",
"ES2020.Intl",
"ES2021.Promise",
"ES2021.String",
"ES2021.WeakRef",
"ESNext.WeakRef",
"es2021.intl"
]
},
{
"pattern": "^[Ee][Ss]5|[Ee][Ss]6|[Ee][Ss]7$"
},
{
"pattern": "^[Ee][Ss]2015(\\.([Cc][Oo][Ll][Ll][Ee][Cc][Tt][Ii][Oo][Nn]|[Cc][Oo][Rr][Ee]|[Gg][Ee][Nn][Ee][Rr][Aa][Tt][Oo][Rr]|[Ii][Tt][Ee][Rr][Aa][Bb][Ll][Ee]|[Pp][Rr][Oo][Mm][Ii][Ss][Ee]|[Pp][Rr][Oo][Xx][Yy]|[Rr][Ee][Ff][Ll][Ee][Cc][Tt]|[Ss][Yy][Mm][Bb][Oo][Ll].[Ww][Ee][Ll][Ll][Kk][Nn][Oo][Ww][Nn]|[Ss][Yy][Mm][Bb][Oo][Ll]))?$"
},
{
"pattern": "^[Ee][Ss]2016(\\.[Aa][Rr][Rr][Aa][Yy].[Ii][Nn][Cc][Ll][Uu][Dd][Ee])?$"
},
{
"pattern": "^[Ee][Ss]2017(\\.([Ii][Nn][Tt][Ll]|[Oo][Bb][Jj][Ee][Cc][Tt]|[Ss][Hh][Aa][Rr][Ee][Dd][Mm][Ee][Mm][Oo][Rr][Yy]|[Ss][Tt][Rr][Ii][Nn][Gg]|[Tt][Yy][Pp][Ee][Dd][Aa][Rr][Rr][Aa][Yy][Ss]))?$"
},
{
"pattern": "^[Ee][Ss]2018(\\.([Aa][Ss][Yy][Nn][Cc][Ii][Tt][Ee][Rr][Aa][Bb][Ll][Ee]|[Ii][Nn][Tt][Ll]|[Pp][Rr][Oo][Mm][Ii][Ss][Ee]|[Rr][Ee][Gg][Ee][Xx][Pp]))?$"
},
{
"pattern": "^[Ee][Ss]2019(\\.([Aa][Rr][Rr][Aa][Yy]|[Oo][Bb][Jj][Ee][Cc][Tt]|[Ss][Tt][Rr][Ii][Nn][Gg]|[Ss][Yy][Mm][Bb][Oo][Ll]))?$"
},
{
"pattern": "^[Ee][Ss]2020(\\.([Bb][Ii][Gg][Ii][Nn][Tt]|[Pp][Rr][Oo][Mm][Ii][Ss][Ee]|[Ss][Tt][Rr][Ii][Nn][Gg]|[Ss][Yy][Mm][Bb][Oo][Ll].[Ww][Ee][Ll][Ll][Kk][Nn][Oo][Ww][Nn]))?$"
},
{
"pattern": "^[Ee][Ss]2021(\\.([Ii][Nn][Tt][Ll]|[Pp][Rr][Oo][Mm][Ii][Ss][Ee]|[Ss][Tt][Rr][Ii][Nn][Gg]|[Ww][Ee][Aa][Kk][Rr][Ee][Ff]))?$"
},
{
"pattern": "^[Ee][Ss][Nn][Ee][Xx][Tt](\\.([Aa][Rr][Rr][Aa][Yy]|[Aa][Ss][Yy][Nn][Cc][Ii][Tt][Ee][Rr][Aa][Bb][Ll][Ee]|[Bb][Ii][Gg][Ii][Nn][Tt]|[Ii][Nn][Tt][Ll]|[Pp][Rr][Oo][Mm][Ii][Ss][Ee]|[Ss][Tt][Rr][Ii][Nn][Gg]|[Ss][Yy][Mm][Bb][Oo][Ll]|[Ww][Ee][Aa][Kk][Rr][Ee][Ff]))?$"
},
{
"pattern": "^[Dd][Oo][Mm](\\.[Ii][Tt][Ee][Rr][Aa][Bb][Ll][Ee])?$"
},
{
"pattern": "^[Ss][Cc][Rr][Ii][Pp][Tt][Hh][Oo][Ss][Tt]$"
},
{
"pattern": "^[Ww][Ee][Bb][Ww][Oo][Rr][Kk][Ee][Rr](\\.[Ii][Mm][Pp][Oo][Rr][Tt][Ss][Cc][Rr][Ii][Pp][Tt][Ss])?$"
}
]
},
"markdownDescription": "Specify a set of bundled library declaration files that describe the target runtime environment.\n\nSee more: https://www.typescriptlang.org/tsconfig#lib"
},
"strictNullChecks": {
"description": "When type checking, take into account `null` and `undefined`.",
"type": "boolean",
"default": false,
"markdownDescription": "When type checking, take into account `null` and `undefined`.\n\nSee more: https://www.typescriptlang.org/tsconfig#strictNullChecks"
},
"maxNodeModuleJsDepth": {
"description": "Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`.",
"type": "number",
"default": 0,
"markdownDescription": "Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`.\n\nSee more: https://www.typescriptlang.org/tsconfig#maxNodeModuleJsDepth"
},
"importHelpers": {
"description": "Allow importing helper functions from tslib once per project, instead of including them per-file.",
"type": "boolean",
"default": false,
"markdownDescription": "Allow importing helper functions from tslib once per project, instead of including them per-file.\n\nSee more: https://www.typescriptlang.org/tsconfig#importHelpers"
},
"importsNotUsedAsValues": {
"description": "Specify emit/checking behavior for imports that are only used for types.",
"default": "remove",
"enum": ["remove", "preserve", "error"]
},
"alwaysStrict": {
"description": "Ensure 'use strict' is always emitted.",
"type": "boolean",
"markdownDescription": "Ensure 'use strict' is always emitted.\n\nSee more: https://www.typescriptlang.org/tsconfig#alwaysStrict"
},
"strict": {
"description": "Enable all strict type checking options.",
"type": "boolean",
"default": false,
"markdownDescription": "Enable all strict type checking options.\n\nSee more: https://www.typescriptlang.org/tsconfig#strict"
},
"strictBindCallApply": {
"description": "Check that the arguments for `bind`, `call`, and `apply` methods match the original function.",
"type": "boolean",
"default": false,
"markdownDescription": "Check that the arguments for `bind`, `call`, and `apply` methods match the original function.\n\nSee more: https://www.typescriptlang.org/tsconfig#strictBindCallApply"
},
"downlevelIteration": {
"description": "Emit more compliant, but verbose and less performant JavaScript for iteration.",
"type": "boolean",
"default": false,
"markdownDescription": "Emit more compliant, but verbose and less performant JavaScript for iteration.\n\nSee more: https://www.typescriptlang.org/tsconfig#downlevelIteration"
},
"checkJs": {
"description": "Enable error reporting in type-checked JavaScript files.",
"type": "boolean",
"default": false,
"markdownDescription": "Enable error reporting in type-checked JavaScript files.\n\nSee more: https://www.typescriptlang.org/tsconfig#checkJs"
},
"strictFunctionTypes": {
"description": "When assigning functions, check to ensure parameters and the return values are subtype-compatible.",
"type": "boolean",
"default": false,
"markdownDescription": "When assigning functions, check to ensure parameters and the return values are subtype-compatible.\n\nSee more: https://www.typescriptlang.org/tsconfig#strictFunctionTypes"
},
"strictPropertyInitialization": {
"description": "Check for class properties that are declared but not set in the constructor.",
"type": "boolean",
"default": false,
"markdownDescription": "Check for class properties that are declared but not set in the constructor.\n\nSee more: https://www.typescriptlang.org/tsconfig#strictPropertyInitialization"
},
"esModuleInterop": {
"description": "Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility.",
"type": "boolean",
"default": false,
"markdownDescription": "Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility.\n\nSee more: https://www.typescriptlang.org/tsconfig#esModuleInterop"
},
"allowUmdGlobalAccess": {
"description": "Allow accessing UMD globals from modules.",
"type": "boolean",
"default": false,
"markdownDescription": "Allow accessing UMD globals from modules.\n\nSee more: https://www.typescriptlang.org/tsconfig#allowUmdGlobalAccess"
},
"keyofStringsOnly": {
"description": "Make keyof only return strings instead of string, numbers or symbols. Legacy option.",
"type": "boolean",
"default": false,
"markdownDescription": "Make keyof only return strings instead of string, numbers or symbols. Legacy option.\n\nSee more: https://www.typescriptlang.org/tsconfig#keyofStringsOnly"
},
"useDefineForClassFields": {
"description": "Emit ECMAScript-standard-compliant class fields.",
"type": "boolean",
"default": false,
"markdownDescription": "Emit ECMAScript-standard-compliant class fields.\n\nSee more: https://www.typescriptlang.org/tsconfig#useDefineForClassFields"
},
"declarationMap": {
"description": "Create sourcemaps for d.ts files.",
"type": "boolean",
"default": false,
"markdownDescription": "Create sourcemaps for d.ts files.\n\nSee more: https://www.typescriptlang.org/tsconfig#declarationMap"
},
"resolveJsonModule": {
"description": "Enable importing .json files",
"type": "boolean",
"default": false,
"markdownDescription": "Enable importing .json files\n\nSee more: https://www.typescriptlang.org/tsconfig#resolveJsonModule"
},
"assumeChangesOnlyAffectDirectDependencies": {
"description": "Have recompiles in '--incremental' and '--watch' assume that changes within a file will only affect files directly depending on it. Requires TypeScript version 3.8 or later.",
"type": "boolean"
},
"extendedDiagnostics": {
"description": "Output more detailed compiler performance information after building.",
"type": "boolean",
"default": false,
"markdownDescription": "Output more detailed compiler performance information after building.\n\nSee more: https://www.typescriptlang.org/tsconfig#extendedDiagnostics"
},
"listFilesOnly": {
"description": "Print names of files that are part of the compilation and then stop processing.",
"type": "boolean"
},
"disableSourceOfProjectReferenceRedirect": {
"description": "Disable preferring source files instead of declaration files when referencing composite projects",
"type": "boolean",
"markdownDescription": "Disable preferring source files instead of declaration files when referencing composite projects\n\nSee more: https://www.typescriptlang.org/tsconfig#disableSourceOfProjectReferenceRedirect"
},
"disableSolutionSearching": {
"description": "Opt a project out of multi-project reference checking when editing.",
"type": "boolean",
"markdownDescription": "Opt a project out of multi-project reference checking when editing.\n\nSee more: https://www.typescriptlang.org/tsconfig#disableSolutionSearching"
}
}
}
}
},
"typeAcquisitionDefinition": {
"properties": {
"typeAcquisition": {
"type": "object",
"description": "Auto type (.d.ts) acquisition options for this project. Requires TypeScript version 2.1 or later.",
"properties": {
"enable": {
"description": "Enable auto type acquisition",
"type": "boolean",
"default": false
},
"include": {
"description": "Specifies a list of type declarations to be included in auto type acquisition. Ex. [\"jquery\", \"lodash\"]",
"type": "array",
"uniqueItems": true,
"items": {
"type": "string"
}
},
"exclude": {
"description": "Specifies a list of type declarations to be excluded from auto type acquisition. Ex. [\"jquery\", \"lodash\"]",
"type": "array",
"uniqueItems": true,
"items": {
"type": "string"
}
}
}
}
}
},
"referencesDefinition": {
"properties": {
"references": {
"type": "array",
"uniqueItems": true,
"description": "Referenced projects. Requires TypeScript version 3.0 or later.",
"items": {
"type": "object",
"description": "Project reference.",
"properties": {
"path": {
"type": "string",
"description": "Path to referenced tsconfig or to folder containing tsconfig."
}
}
}
}
}
}
},
"type": "object",
"allOf": [
{
"$ref": "#/definitions/compilerOptionsDefinition"
},
{
"$ref": "#/definitions/compileOnSaveDefinition"
},
{
"$ref": "#/definitions/typeAcquisitionDefinition"
},
{
"$ref": "#/definitions/extendsDefinition"
},
{
"$ref": "#/definitions/watchOptionsDefinition"
},
{
"$ref": "#/definitions/buildOptionsDefinition"
},
{
"anyOf": [
{
"$ref": "#/definitions/filesDefinition"
},
{
"$ref": "#/definitions/excludeDefinition"
},
{
"$ref": "#/definitions/includeDefinition"
},
{
"$ref": "#/definitions/referencesDefinition"
}
]
}
]
}
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Schema for .prettierrc",
"definitions": {
"optionsDefinition": {
"type": "object",
"properties": {
"arrowParens": {
"description": "Include parentheses around a sole arrow function parameter.",
"default": "always",
"oneOf": [
{
"enum": ["always"],
"description": "Always include parens. Example: `(x) => x`"
},
{
"enum": ["avoid"],
"description": "Omit parens when possible. Example: `x => x`"
}
]
},
"bracketSameLine": {
"description": "Put > of opening tags on the last line instead of on a new line.",
"default": false,
"type": "boolean"
},
"bracketSpacing": {
"description": "Print spaces between brackets.",
"default": true,
"type": "boolean"
},
"cursorOffset": {
"description": "Print (to stderr) where a cursor at the given position would move to after formatting.\nThis option cannot be used with --range-start and --range-end.",
"default": -1,
"type": "integer"
},
"embeddedLanguageFormatting": {
"description": "Control how Prettier formats quoted code embedded in the file.",
"default": "auto",
"oneOf": [
{
"enum": ["auto"],
"description": "Format embedded code if Prettier can automatically identify it."
},
{
"enum": ["off"],
"description": "Never automatically format embedded code."
}
]
},
"endOfLine": {
"description": "Which end of line characters to apply.",
"default": "lf",
"oneOf": [
{
"enum": ["lf"],
"description": "Line Feed only (\\n), common on Linux and macOS as well as inside git repos"
},
{
"enum": ["crlf"],
"description": "Carriage Return + Line Feed characters (\\r\\n), common on Windows"
},
{
"enum": ["cr"],
"description": "Carriage Return character only (\\r), used very rarely"
},
{
"enum": ["auto"],
"description": "Maintain existing\n(mixed values within one file are normalised by looking at what's used after the first line)"
}
]
},
"filepath": {
"description": "Specify the input filepath. This will be used to do parser inference.",
"type": "string"
},
"htmlWhitespaceSensitivity": {
"description": "How to handle whitespaces in HTML.",
"default": "css",
"oneOf": [
{
"enum": ["css"],
"description": "Respect the default value of CSS display property."
},
{
"enum": ["strict"],
"description": "Whitespaces are considered sensitive."
},
{
"enum": ["ignore"],
"description": "Whitespaces are considered insensitive."
}
]
},
"insertPragma": {
"description": "Insert @format pragma into file's first docblock comment.",
"default": false,
"type": "boolean"
},
"jsxSingleQuote": {
"description": "Use single quotes in JSX.",
"default": false,
"type": "boolean"
},
"parser": {
"description": "Which parser to use.",
"anyOf": [
{ "enum": ["flow"], "description": "Flow" },
{ "enum": ["babel"], "description": "JavaScript" },
{ "enum": ["babel-flow"], "description": "Flow" },
{ "enum": ["babel-ts"], "description": "TypeScript" },
{ "enum": ["typescript"], "description": "TypeScript" },
{ "enum": ["espree"], "description": "JavaScript" },
{ "enum": ["meriyah"], "description": "JavaScript" },
{ "enum": ["css"], "description": "CSS" },
{ "enum": ["less"], "description": "Less" },
{ "enum": ["scss"], "description": "SCSS" },
{ "enum": ["json"], "description": "JSON" },
{ "enum": ["json5"], "description": "JSON5" },
{ "enum": ["json-stringify"], "description": "JSON.stringify" },
{ "enum": ["graphql"], "description": "GraphQL" },
{ "enum": ["markdown"], "description": "Markdown" },
{ "enum": ["mdx"], "description": "MDX" },
{ "enum": ["vue"], "description": "Vue" },
{ "enum": ["yaml"], "description": "YAML" },
{ "enum": ["glimmer"], "description": "Ember / Handlebars" },
{ "enum": ["html"], "description": "HTML" },
{ "enum": ["angular"], "description": "Angular" },
{ "enum": ["lwc"], "description": "Lightning Web Components" },
{ "type": "string", "description": "Custom parser" }
]
},
"pluginSearchDirs": {
"description": "Custom directory that contains prettier plugins in node_modules subdirectory.\nOverrides default behavior when plugins are searched relatively to the location of Prettier.\nMultiple values are accepted.",
"default": [],
"type": "array",
"items": { "type": "string" }
},
"plugins": {
"description": "Add a plugin. Multiple plugins can be passed as separate `--plugin`s.",
"default": [],
"type": "array",
"items": { "type": "string" }
},
"printWidth": {
"description": "The line length where Prettier will try wrap.",
"default": 80,
"type": "integer"
},
"proseWrap": {
"description": "How to wrap prose.",
"default": "preserve",
"oneOf": [
{
"enum": ["always"],
"description": "Wrap prose if it exceeds the print width."
},
{ "enum": ["never"], "description": "Do not wrap prose." },
{ "enum": ["preserve"], "description": "Wrap prose as-is." }
]
},
"quoteProps": {
"description": "Change when properties in objects are quoted.",
"default": "as-needed",
"oneOf": [
{
"enum": ["as-needed"],
"description": "Only add quotes around object properties where required."
},
{
"enum": ["consistent"],
"description": "If at least one property in an object requires quotes, quote all properties."
},
{
"enum": ["preserve"],
"description": "Respect the input use of quotes in object properties."
}
]
},
"rangeEnd": {
"description": "Format code ending at a given character offset (exclusive).\nThe range will extend forwards to the end of the selected statement.\nThis option cannot be used with --cursor-offset.",
"default": null,
"type": "integer"
},
"rangeStart": {
"description": "Format code starting at a given character offset.\nThe range will extend backwards to the start of the first line containing the selected statement.\nThis option cannot be used with --cursor-offset.",
"default": 0,
"type": "integer"
},
"requirePragma": {
"description": "Require either '@prettier' or '@format' to be present in the file's first docblock comment\nin order for it to be formatted.",
"default": false,
"type": "boolean"
},
"semi": {
"description": "Print semicolons.",
"default": true,
"type": "boolean"
},
"singleQuote": {
"description": "Use single quotes instead of double quotes.",
"default": false,
"type": "boolean"
},
"tabWidth": {
"description": "Number of spaces per indentation level.",
"default": 2,
"type": "integer"
},
"trailingComma": {
"description": "Print trailing commas wherever possible when multi-line.",
"default": "es5",
"oneOf": [
{
"enum": ["es5"],
"description": "Trailing commas where valid in ES5 (objects, arrays, etc.)"
},
{ "enum": ["none"], "description": "No trailing commas." },
{
"enum": ["all"],
"description": "Trailing commas wherever possible (including function arguments)."
}
]
},
"useTabs": {
"description": "Indent with tabs instead of spaces.",
"default": false,
"type": "boolean"
},
"vueIndentScriptAndStyle": {
"description": "Indent script and style tags in Vue files.",
"default": false,
"type": "boolean"
}
}
},
"overridesDefinition": {
"type": "object",
"properties": {
"overrides": {
"type": "array",
"description": "Provide a list of patterns to override prettier configuration.",
"items": {
"type": "object",
"required": ["files"],
"properties": {
"files": {
"description": "Include these files in this override.",
"oneOf": [
{ "type": "string" },
{ "type": "array", "items": { "type": "string" } }
]
},
"excludeFiles": {
"description": "Exclude these files from this override.",
"oneOf": [
{ "type": "string" },
{ "type": "array", "items": { "type": "string" } }
]
},
"options": {
"type": "object",
"description": "The options to apply for this override.",
"$ref": "#/definitions/optionsDefinition"
}
},
"additionalProperties": false
}
}
}
}
},
"oneOf": [
{
"type": "object",
"allOf": [
{ "$ref": "#/definitions/optionsDefinition" },
{ "$ref": "#/definitions/overridesDefinition" }
]
},
{ "type": "string" }
]
}
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "JSON schema for NPM package.json files",
"definitions": {
"person": {
"description": "A person who has been involved in creating or maintaining this package.",
"type": [
"object",
"string"
],
"required": [
"name"
],
"properties": {
"name": {
"type": "string"
},
"url": {
"type": "string",
"format": "uri"
},
"email": {
"type": "string",
"format": "email"
}
}
},
"dependency": {
"description": "Dependencies are specified with a simple hash of package name to version range. The version range is a string which has one or more space-separated descriptors. Dependencies can also be identified with a tarball or git URL.",
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"scriptsInstallAfter": {
"description": "Run AFTER the package is installed.",
"type": "string"
},
"scriptsPublishAfter": {
"description": "Run AFTER the package is published.",
"type": "string"
},
"scriptsRestart": {
"description": "Run by the 'npm restart' command. Note: 'npm restart' will run the stop and start scripts if no restart script is provided.",
"type": "string"
},
"scriptsStart": {
"description": "Run by the 'npm start' command.",
"type": "string"
},
"scriptsStop": {
"description": "Run by the 'npm stop' command.",
"type": "string"
},
"scriptsTest": {
"description": "Run by the 'npm test' command.",
"type": "string"
},
"scriptsUninstallBefore": {
"description": "Run BEFORE the package is uninstalled.",
"type": "string"
},
"scriptsVersionBefore": {
"description": "Run BEFORE bump the package version.",
"type": "string"
},
"packageExportsEntryPath": {
"type": [
"string",
"null"
],
"description": "The module path that is resolved when this specifier is imported. Set to `null` to disallow importing this module.",
"pattern": "^\\./"
},
"packageExportsEntryObject": {
"type": "object",
"description": "Used to specify conditional exports, note that Conditional exports are unsupported in older environments, so it's recommended to use the fallback array option if support for those environments is a concern.",
"properties": {
"require": {
"$ref": "#/definitions/packageExportsEntryOrFallback",
"description": "The module path that is resolved when this specifier is imported as a CommonJS module using the `require(...)` function."
},
"import": {
"$ref": "#/definitions/packageExportsEntryOrFallback",
"description": "The module path that is resolved when this specifier is imported as an ECMAScript module using an `import` declaration or the dynamic `import(...)` function."
},
"node": {
"$ref": "#/definitions/packageExportsEntryOrFallback",
"description": "The module path that is resolved when this environment is Node.js."
},
"default": {
"$ref": "#/definitions/packageExportsEntryOrFallback",
"description": "The module path that is resolved when no other export type matches."
}
},
"patternProperties": {
"^(?![\\.0-9]).": {
"$ref": "#/definitions/packageExportsEntryOrFallback",
"description": "The module path that is resolved when this environment matches the property name."
}
},
"additionalProperties": false
},
"packageExportsEntry": {
"oneOf": [
{
"$ref": "#/definitions/packageExportsEntryPath"
},
{
"$ref": "#/definitions/packageExportsEntryObject"
}
]
},
"packageExportsFallback": {
"type": "array",
"description": "Used to allow fallbacks in case this environment doesn't support the preceding entries.",
"items": {
"$ref": "#/definitions/packageExportsEntry"
}
},
"packageExportsEntryOrFallback": {
"oneOf": [
{
"$ref": "#/definitions/packageExportsEntry"
},
{
"$ref": "#/definitions/packageExportsFallback"
}
]
}
},
"type": "object",
"patternProperties": {
"^_": {
"description": "Any property starting with _ is valid.",
"tsType": "any"
}
},
"properties": {
"name": {
"description": "The name of the package.",
"type": "string",
"maxLength": 214,
"minLength": 1,
"pattern": "^(?:@[a-z0-9-*~][a-z0-9-*._~]*/)?[a-z0-9-~][a-z0-9-._~]*$"
},
"version": {
"description": "Version must be parseable by node-semver, which is bundled with npm as a dependency.",
"type": "string"
},
"description": {
"description": "This helps people discover your package, as it's listed in 'npm search'.",
"type": "string"
},
"keywords": {
"description": "This helps people discover your package as it's listed in 'npm search'.",
"type": "array",
"items": {
"type": "string"
}
},
"homepage": {
"description": "The url to the project homepage.",
"type": "string"
},
"bugs": {
"description": "The url to your project's issue tracker and / or the email address to which issues should be reported. These are helpful for people who encounter issues with your package.",
"type": [
"object",
"string"
],
"properties": {
"url": {
"type": "string",
"description": "The url to your project's issue tracker.",
"format": "uri"
},
"email": {
"type": "string",
"description": "The email address to which issues should be reported.",
"format": "email"
}
}
},
"license": {
"type": "string",
"description": "You should specify a license for your package so that people know how they are permitted to use it, and any restrictions you're placing on it."
},
"licenses": {
"description": "DEPRECATED: Instead, use SPDX expressions, like this: { \"license\": \"ISC\" } or { \"license\": \"(MIT OR Apache-2.0)\" } see: 'https://docs.npmjs.com/files/package.json#license'.",
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string"
},
"url": {
"type": "string",
"format": "uri"
}
}
}
},
"author": {
"$ref": "#/definitions/person"
},
"contributors": {
"description": "A list of people who contributed to this package.",
"type": "array",
"items": {
"$ref": "#/definitions/person"
}
},
"maintainers": {
"description": "A list of people who maintains this package.",
"type": "array",
"items": {
"$ref": "#/definitions/person"
}
},
"files": {
"description": "The 'files' field is an array of files to include in your project. If you name a folder in the array, then it will also include the files inside that folder.",
"type": "array",
"items": {
"type": "string"
}
},
"main": {
"description": "The main field is a module ID that is the primary entry point to your program.",
"type": "string"
},
"exports": {
"description": "The \"exports\" field is used to restrict external access to non-exported module files, also enables a module to import itself using \"name\".",
"oneOf": [
{
"$ref": "#/definitions/packageExportsEntryPath",
"description": "The module path that is resolved when the module specifier matches \"name\", shadows the \"main\" field."
},
{
"type": "object",
"properties": {
".": {
"$ref": "#/definitions/packageExportsEntryOrFallback",
"description": "The module path that is resolved when the module specifier matches \"name\", shadows the \"main\" field."
}
},
"patternProperties": {
"^\\./.+": {
"$ref": "#/definitions/packageExportsEntryOrFallback",
"description": "The module path prefix that is resolved when the module specifier starts with \"name/\", set to \"./*\" to allow external modules to import any subpath."
}
},
"additionalProperties": false
},
{
"$ref": "#/definitions/packageExportsEntryObject",
"description": "The module path that is resolved when the module specifier matches \"name\", shadows the \"main\" field."
},
{
"$ref": "#/definitions/packageExportsFallback",
"description": "The module path that is resolved when the module specifier matches \"name\", shadows the \"main\" field."
}
]
},
"bin": {
"type": [
"string",
"object"
],
"additionalProperties": {
"type": "string"
}
},
"type": {
"description": "When set to \"module\", the type field allows a package to specify all .js files within are ES modules. If the \"type\" field is omitted or set to \"commonjs\", all .js files are treated as CommonJS.",
"type": "string",
"enum": [
"commonjs",
"module"
],
"default": "commonjs"
},
"types": {
"description": "Set the types property to point to your bundled declaration file.",
"type": "string"
},
"typings": {
"description": "Note that the \"typings\" field is synonymous with \"types\", and could be used as well.",
"type": "string"
},
"typesVersions": {
"description": "The \"typesVersions\" field is used since TypeScript 3.1 to support features that were only made available in newer TypeScript versions.",
"type": "object",
"additionalProperties": {
"description": "Contains overrides for the TypeScript version that matches the version range matching the property key.",
"type": "object",
"properties": {
"*": {
"description": "Maps all file paths to the file paths specified in the array.",
"type": "array",
"items": {
"type": "string",
"pattern": "^[^*]*(?:\\*[^*]*)?$"
}
}
},
"patternProperties": {
"^[^*]+$": {
"description": "Maps the file path matching the property key to the file paths specified in the array.",
"type": "array",
"items": {
"type": "string"
}
},
"^[^*]*\\*[^*]*$": {
"description": "Maps file paths matching the pattern specified in property key to file paths specified in the array.",
"type": "array",
"items": {
"type": "string",
"pattern": "^[^*]*(?:\\*[^*]*)?$"
}
}
},
"additionalProperties": false
}
},
"man": {
"type": [
"array",
"string"
],
"description": "Specify either a single file or an array of filenames to put in place for the man program to find.",
"items": {
"type": "string"
}
},
"directories": {
"type": "object",
"properties": {
"bin": {
"description": "If you specify a 'bin' directory, then all the files in that folder will be used as the 'bin' hash.",
"type": "string"
},
"doc": {
"description": "Put markdown files in here. Eventually, these will be displayed nicely, maybe, someday.",
"type": "string"
},
"example": {
"description": "Put example scripts in here. Someday, it might be exposed in some clever way.",
"type": "string"
},
"lib": {
"description": "Tell people where the bulk of your library is. Nothing special is done with the lib folder in any way, but it's useful meta info.",
"type": "string"
},
"man": {
"description": "A folder that is full of man pages. Sugar to generate a 'man' array by walking the folder.",
"type": "string"
},
"test": {
"type": "string"
}
}
},
"repository": {
"description": "Specify the place where your code lives. This is helpful for people who want to contribute.",
"type": [
"object",
"string"
],
"properties": {
"type": {
"type": "string"
},
"url": {
"type": "string"
},
"directory": {
"type": "string"
}
}
},
"scripts": {
"description": "The 'scripts' member is an object hash of script commands that are run at various times in the lifecycle of your package. The key is the lifecycle event, and the value is the command to run at that point.",
"type": "object",
"properties": {
"lint": {
"type": "string",
"description": "Run code quality tools, e.g. ESLint, TSLint, etc."
},
"prepublish": {
"type": "string",
"description": "Run BEFORE the package is published (Also run on local npm install without any arguments)."
},
"prepare": {
"type": "string",
"description": "Run both BEFORE the package is packed and published, and on local npm install without any arguments. This is run AFTER prepublish, but BEFORE prepublishOnly."
},
"prepublishOnly": {
"type": "string",
"description": "Run BEFORE the package is prepared and packed, ONLY on npm publish."
},
"prepack": {
"type": "string",
"description": "run BEFORE a tarball is packed (on npm pack, npm publish, and when installing git dependencies)."
},
"postpack": {
"type": "string",
"description": "Run AFTER the tarball has been generated and moved to its final destination."
},
"publish": {
"type": "string",
"description": "Publishes a package to the registry so that it can be installed by name. See https://docs.npmjs.com/cli/v8/commands/npm-publish"
},
"postpublish": {
"$ref": "#/definitions/scriptsPublishAfter"
},
"preinstall": {
"type": "string",
"description": "Run BEFORE the package is installed."
},
"install": {
"$ref": "#/definitions/scriptsInstallAfter"
},
"postinstall": {
"$ref": "#/definitions/scriptsInstallAfter"
},
"preuninstall": {
"$ref": "#/definitions/scriptsUninstallBefore"
},
"uninstall": {
"$ref": "#/definitions/scriptsUninstallBefore"
},
"postuninstall": {
"type": "string",
"description": "Run AFTER the package is uninstalled."
},
"preversion": {
"$ref": "#/definitions/scriptsVersionBefore"
},
"version": {
"$ref": "#/definitions/scriptsVersionBefore"
},
"postversion": {
"type": "string",
"description": "Run AFTER bump the package version."
},
"pretest": {
"$ref": "#/definitions/scriptsTest"
},
"test": {
"$ref": "#/definitions/scriptsTest"
},
"posttest": {
"$ref": "#/definitions/scriptsTest"
},
"prestop": {
"$ref": "#/definitions/scriptsStop"
},
"stop": {
"$ref": "#/definitions/scriptsStop"
},
"poststop": {
"$ref": "#/definitions/scriptsStop"
},
"prestart": {
"$ref": "#/definitions/scriptsStart"
},
"start": {
"$ref": "#/definitions/scriptsStart"
},
"poststart": {
"$ref": "#/definitions/scriptsStart"
},
"prerestart": {
"$ref": "#/definitions/scriptsRestart"
},
"restart": {
"$ref": "#/definitions/scriptsRestart"
},
"postrestart": {
"$ref": "#/definitions/scriptsRestart"
},
"serve": {
"type": "string",
"description": "Start dev server to serve application files"
}
},
"additionalProperties": {
"type": "string",
"tsType": "string | undefined"
}
},
"config": {
"description": "A 'config' hash can be used to set configuration parameters used in package scripts that persist across upgrades.",
"type": "object",
"additionalProperties": true
},
"dependencies": {
"$ref": "#/definitions/dependency"
},
"devDependencies": {
"$ref": "#/definitions/dependency"
},
"optionalDependencies": {
"$ref": "#/definitions/dependency"
},
"peerDependencies": {
"$ref": "#/definitions/dependency"
},
"peerDependenciesMeta": {
"description": "When a user installs your package, warnings are emitted if packages specified in \"peerDependencies\" are not already installed. The \"peerDependenciesMeta\" field serves to provide more information on how your peer dependencies are utilized. Most commonly, it allows peer dependencies to be marked as optional. Metadata for this field is specified with a simple hash of the package name to a metadata object.",
"type": "object",
"additionalProperties": {
"type": "object",
"additionalProperties": true,
"properties": {
"optional": {
"description": "Specifies that this peer dependency is optional and should not be installed automatically.",
"type": "boolean"
}
}
}
},
"bundledDependencies": {
"description": "Array of package names that will be bundled when publishing the package.",
"oneOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "boolean"
}
]
},
"bundleDependencies": {
"description": "DEPRECATED: This field is honored, but \"bundledDependencies\" is the correct field name.",
"oneOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "boolean"
}
]
},
"resolutions": {
"description": "Resolutions is used to support selective version resolutions, which lets you define custom package versions or ranges inside your dependencies. See: https://classic.yarnpkg.com/en/docs/selective-version-resolutions",
"type": "object"
},
"packageManager": {
"description": "Defines which package manager is expected to be used when working on the current project. This field is currently experimental and needs to be opted-in; see https://nodejs.org/api/corepack.html",
"type": "string",
"pattern": "(npm|pnpm|yarn)@\\d+\\.\\d+\\.\\d+(-.+)?"
},
"engines": {
"type": "object",
"properties": {
"node": {
"type": "string"
}
},
"additionalProperties": {
"type": "string"
}
},
"engineStrict": {
"type": "boolean"
},
"os": {
"description": "Specify which operating systems your module will run on.",
"type": "array",
"items": {
"type": "string"
}
},
"cpu": {
"description": "Specify that your code only runs on certain cpu architectures.",
"type": "array",
"items": {
"type": "string"
}
},
"preferGlobal": {
"type": "boolean",
"description": "DEPRECATED: This option used to trigger an npm warning, but it will no longer warn. It is purely there for informational purposes. It is now recommended that you install any binaries as local devDependencies wherever possible."
},
"private": {
"description": "If set to true, then npm will refuse to publish it.",
"oneOf": [
{
"type": "boolean"
},
{
"enum": [
"false",
"true"
]
}
]
},
"publishConfig": {
"type": "object",
"properties": {
"access": {
"type": "string",
"enum": [
"public",
"restricted"
]
},
"tag": {
"type": "string"
},
"registry": {
"type": "string",
"format": "uri"
}
},
"additionalProperties": true
},
"dist": {
"type": "object",
"properties": {
"shasum": {
"type": "string"
},
"tarball": {
"type": "string"
}
}
},
"readme": {
"type": "string"
},
"module": {
"description": "An ECMAScript module ID that is the primary entry point to your program.",
"type": "string"
},
"esnext": {
"description": "A module ID with untranspiled code that is the primary entry point to your program.",
"type": [
"string",
"object"
],
"properties": {
"main": {
"type": "string"
},
"browser": {
"type": "string"
}
},
"additionalProperties": {
"type": "string"
}
},
"workspaces": {
"description": "Allows packages within a directory to depend on one another using direct linking of local files. Additionally, dependencies within a workspace are hoisted to the workspace root when possible to reduce duplication. Note: It's also a good idea to set \"private\" to true when using this feature.",
"anyOf": [
{
"type": "array",
"description": "Workspace package paths. Glob patterns are supported.",
"items": {
"type": "string"
}
},
{
"type": "object",
"properties": {
"packages": {
"type": "array",
"description": "Workspace package paths. Glob patterns are supported.",
"items": {
"type": "string"
}
},
"nohoist": {
"type": "array",
"description": "Packages to block from hoisting to the workspace root. Currently only supported in Yarn only.",
"items": {
"type": "string"
}
}
}
}
]
},
"jspm": {
"$ref": "#"
}
},
"anyOf": [
{
"type": "object",
"not": {
"required": [
"bundledDependencies",
"bundleDependencies"
]
}
},
{
"type": "object",
"not": {
"required": [
"bundleDependencies"
]
},
"required": [
"bundledDependencies"
]
},
{
"type": "object",
"not": {
"required": [
"bundledDependencies"
]
},
"required": [
"bundleDependencies"
]
}
]
}
{
"title": "JSON schema for ESLint configuration files",
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"definitions": {
"rule": {
"oneOf": [
{
"description": "ESLint rule\n\n0 - turns the rule off\n1 - turn the rule on as a warning (doesn't affect exit code)\n2 - turn the rule on as an error (exit code is 1 when triggered)\n",
"type": "integer",
"minimum": 0,
"maximum": 2
},
{
"description": "ESLint rule\n\n\"off\" - turns the rule off\n\"warn\" - turn the rule on as a warning (doesn't affect exit code)\n\"error\" - turn the rule on as an error (exit code is 1 when triggered)\n",
"type": "string",
"enum": [
"off", "warn", "error"
]
},
{
"type": "array"
}
]
},
"possibleErrors": {
"properties": {
"comma-dangle": { "$ref": "#/definitions/rule", "description": "Require or disallow trailing commas"},
"for-direction": {"$ref": "#/definitions/rule", "description": "Enforce “for” loop update clause moving the counter in the right direction"},
"getter-return": {"$ref": "#/definitions/rule", "description": "Enforce return statements in getters"},
"no-await-in-loop": {"$ref": "#/definitions/rule", "description": "Disallow await inside of loops"},
"no-compare-neg-zero": {"$ref": "#/definitions/rule", "description": "Disallow comparing against -0"},
"no-cond-assign": { "$ref": "#/definitions/rule", "description": "Disallow assignment operators in conditional expressions" },
"no-console": { "$ref": "#/definitions/rule", "description": "Disallow the use of console" },
"no-constant-condition": { "$ref": "#/definitions/rule", "description": "Disallow constant expressions in conditions" },
"no-control-regex": { "$ref": "#/definitions/rule", "description": "Disallow control characters in regular expressions" },
"no-debugger": { "$ref": "#/definitions/rule", "description": "Disallow the use of debugger" },
"no-dupe-args": { "$ref": "#/definitions/rule", "description": "Disallow duplicate arguments in function definitions" },
"no-dupe-keys": { "$ref": "#/definitions/rule", "description": "Disallow duplicate keys in object literals" },
"no-duplicate-case": { "$ref": "#/definitions/rule", "description": "Disallow duplicate case labels" },
"no-empty": { "$ref": "#/definitions/rule", "description": "Disallow empty block statements" },
"no-empty-character-class": { "$ref": "#/definitions/rule", "description": "Disallow empty character classes in regular expressions" },
"no-ex-assign": { "$ref": "#/definitions/rule", "description": "Disallow reassigning exceptions in catch clauses" },
"no-extra-boolean-cast": { "$ref": "#/definitions/rule", "description": "Disallow unnecessary boolean casts" },
"no-extra-parens": { "$ref": "#/definitions/rule", "description": "Disallow unnecessary parentheses" },
"no-extra-semi": { "$ref": "#/definitions/rule", "description": "Disallow unnecessary semicolons" },
"no-func-assign": { "$ref": "#/definitions/rule", "description": "Disallow reassigning function declarations" },
"no-inner-declarations": { "$ref": "#/definitions/rule", "description": "Disallow function or var declarations in nested blocks" },
"no-invalid-regexp": { "$ref": "#/definitions/rule", "description": "Disallow invalid regular expression strings in RegExp constructors" },
"no-irregular-whitespace": { "$ref": "#/definitions/rule", "description": "Disallow irregular whitespace outside of strings and comments" },
"no-negated-in-lhs": { "$ref": "#/definitions/rule", "description": "Disallow negating the left operand in in expressions (deprecated)"},
"no-obj-calls": { "$ref": "#/definitions/rule", "description": "Disallow calling global object properties as functions" },
"no-prototype-builtins": { "$ref": "#/definitions/rule", "description": "Disallow calling some Object.prototype methods directly on objects" },
"no-regex-spaces": { "$ref": "#/definitions/rule", "description": "Disallow multiple spaces in regular expressions" },
"no-sparse-arrays": { "$ref": "#/definitions/rule", "description": "Disallow sparse arrays" },
"no-template-curly-in-string": { "$ref": "#/definitions/rule", "description": "Disallow template literal placeholder syntax in regular strings" },
"no-unexpected-multiline": { "$ref": "#/definitions/rule", "description": "Disallow confusing multiline expressions" },
"no-unreachable": { "$ref": "#/definitions/rule", "description": "Disallow unreachable code after return, throw, continue, and break statements" },
"no-unsafe-finally": { "$ref": "#/definitions/rule", "description": "Disallow control flow statements in finally blocks" },
"no-unsafe-negation": { "$ref": "#/definitions/rule", "description": "Disallow negating the left operand of relational operators" },
"use-isnan": { "$ref": "#/definitions/rule", "description": "Require calls to isNaN() when checking for NaN" },
"valid-jsdoc": { "$ref": "#/definitions/rule", "description": "Enforce valid JSDoc comments" },
"valid-typeof": { "$ref": "#/definitions/rule", "description": "Enforce comparing typeof expressions against valid strings" }
}
},
"bestPractices": {
"properties": {
"accessor-pairs": { "$ref": "#/definitions/rule", "description": "Enforce getter and setter pairs in objects" },
"array-callback-return": { "$ref": "#/definitions/rule", "description": "Enforce return statements in callbacks of array methods" },
"block-scoped-var": { "$ref": "#/definitions/rule", "description": "Enforce the use of variables within the scope they are defined" },
"class-methods-use-this": { "$ref": "#/definitions/rule", "description": "Enforce that class methods utilize this" },
"complexity": { "$ref": "#/definitions/rule", "description": "Enforce a maximum cyclomatic complexity allowed in a program" },
"consistent-return": { "$ref": "#/definitions/rule", "description": "Require return statements to either always or never specify values" },
"curly": { "$ref": "#/definitions/rule", "description": "Enforce consistent brace style for all control statements" },
"default-case": { "$ref": "#/definitions/rule", "description": "Require default cases in switch statements" },
"dot-location": { "$ref": "#/definitions/rule", "description": "Enforce consistent newlines before and after dots" },
"dot-notation": { "$ref": "#/definitions/rule", "description": "Enforce dot notation whenever possible" },
"eqeqeq": { "$ref": "#/definitions/rule", "description": "Require the use of === and !==" },
"guard-for-in": { "$ref": "#/definitions/rule", "description": "Require for-in loops to include an if statement" },
"no-alert": { "$ref": "#/definitions/rule", "description": "Disallow the use of alert, confirm, and prompt" },
"no-caller": { "$ref": "#/definitions/rule", "description": "Disallow the use of arguments.caller or arguments.callee" },
"no-case-declarations": { "$ref": "#/definitions/rule", "description": "Disallow lexical declarations in case clauses" },
"no-div-regex": { "$ref": "#/definitions/rule", "description": "Disallow division operators explicitly at the beginning of regular expressions" },
"no-else-return": { "$ref": "#/definitions/rule", "description": "Disallow else blocks after return statements in if statements" },
"no-empty-function": { "$ref": "#/definitions/rule", "description": "Disallow empty functions" },
"no-empty-pattern": { "$ref": "#/definitions/rule", "description": "Disallow empty destructuring patterns" },
"no-eq-null": { "$ref": "#/definitions/rule", "description": "Disallow null comparisons without type-checking operators" },
"no-eval": { "$ref": "#/definitions/rule", "description": "Disallow the use of eval()" },
"no-extend-native": { "$ref": "#/definitions/rule", "description": "Disallow extending native types" },
"no-extra-bind": { "$ref": "#/definitions/rule", "description": "Disallow unnecessary calls to .bind()" },
"no-extra-label": { "$ref": "#/definitions/rule", "description": "Disallow unnecessary labels" },
"no-fallthrough": { "$ref": "#/definitions/rule", "description": "Disallow fallthrough of case statements" },
"no-floating-decimal": { "$ref": "#/definitions/rule", "description": "Disallow leading or trailing decimal points in numeric literals" },
"no-global-assign": { "$ref": "#/definitions/rule", "description": "Disallow assignments to native objects or read-only global variables" },
"no-implicit-coercion": { "$ref": "#/definitions/rule", "description": "Disallow shorthand type conversions" },
"no-implicit-globals": { "$ref": "#/definitions/rule", "description": "Disallow var and named function declarations in the global scope" },
"no-implied-eval": { "$ref": "#/definitions/rule", "description": "Disallow the use of eval()-like methods" },
"no-invalid-this": { "$ref": "#/definitions/rule", "description": "Disallow this keywords outside of classes or class-like objects" },
"no-iterator": { "$ref": "#/definitions/rule", "description": "Disallow the use of the __iterator__ property" },
"no-labels": { "$ref": "#/definitions/rule", "description": "Disallow labeled statements" },
"no-lone-blocks": { "$ref": "#/definitions/rule", "description": "Disallow unnecessary nested blocks" },
"no-loop-func": { "$ref": "#/definitions/rule", "description": "Disallow function declarations and expressions inside loop statements" },
"no-magic-numbers": { "$ref": "#/definitions/rule", "description": "Disallow magic numbers" },
"no-multi-spaces": { "$ref": "#/definitions/rule", "description": "Disallow multiple spaces" },
"no-multi-str": { "$ref": "#/definitions/rule", "description": "Disallow multiline strings" },
"no-native-reassign": { "$ref": "#/definitions/rule"},
"no-new": { "$ref": "#/definitions/rule", "description": "Disallow new operators outside of assignments or comparisons" },
"no-new-func": { "$ref": "#/definitions/rule", "description": "Disallow new operators with the Function object" },
"no-new-wrappers": { "$ref": "#/definitions/rule", "description": "Disallow new operators with the String, Number, and Boolean objects" },
"no-octal": { "$ref": "#/definitions/rule", "description": "Disallow octal literals" },
"no-octal-escape": { "$ref": "#/definitions/rule", "description": "Disallow octal escape sequences in string literals" },
"no-param-reassign": { "$ref": "#/definitions/rule", "description": "Disallow reassigning function parameters" },
"no-proto": { "$ref": "#/definitions/rule", "description": "Disallow the use of the __proto__ property" },
"no-redeclare": { "$ref": "#/definitions/rule", "description": "Disallow var redeclaration" },
"no-restricted-properties": { "$ref": "#/definitions/rule", "description": "Disallow certain properties on certain objects" },
"no-return-assign": { "$ref": "#/definitions/rule", "description": "Disallow assignment operators in return statements" },
"no-return-await": { "$ref": "#/definitions/rule", "description": "Disallow unnecessary return await" },
"no-script-url": { "$ref": "#/definitions/rule", "description": "Disallow javascript: urls" },
"no-self-assign": { "$ref": "#/definitions/rule", "description": "Disallow assignments where both sides are exactly the same" },
"no-self-compare": { "$ref": "#/definitions/rule", "description": "Disallow comparisons where both sides are exactly the same" },
"no-sequences": { "$ref": "#/definitions/rule", "description": "Disallow comma operators" },
"no-throw-literal": { "$ref": "#/definitions/rule", "description": "Disallow throwing literals as exceptions" },
"no-unmodified-loop-condition": { "$ref": "#/definitions/rule", "description": "Disallow unmodified loop conditions" },
"no-unused-expressions": { "$ref": "#/definitions/rule", "description": "Disallow unused expressions" },
"no-unused-labels": { "$ref": "#/definitions/rule", "description": "Disallow unused labels" },
"no-useless-call": { "$ref": "#/definitions/rule", "description": "Disallow unnecessary calls to .call() and .apply()" },
"no-useless-concat": { "$ref": "#/definitions/rule", "description": "Disallow unnecessary concatenation of literals or template literals" },
"no-useless-escape": { "$ref": "#/definitions/rule", "description": "Disallow unnecessary escape characters" },
"no-useless-return": { "$ref": "#/definitions/rule", "description": "Disallow redundant return statements" },
"no-void": { "$ref": "#/definitions/rule", "description": "Disallow void operators" },
"no-warning-comments": { "$ref": "#/definitions/rule", "description": "Disallow specified warning terms in comments" },
"no-with": { "$ref": "#/definitions/rule", "description": "Disallow with statements" },
"prefer-promise-reject-errors": { "$ref": "#/definitions/rule", "description": "Require using Error objects as Promise rejection reasons" },
"radix": { "$ref": "#/definitions/rule", "description": "Enforce the consistent use of the radix argument when using parseInt()" },
"require-await": { "$ref": "#/definitions/rule", "description": "Disallow async functions which have no await expression" },
"vars-on-top": { "$ref": "#/definitions/rule", "description": "Require var declarations be placed at the top of their containing scope" },
"wrap-iife": { "$ref": "#/definitions/rule", "description": "Require parentheses around immediate function invocations" },
"yoda": { "$ref": "#/definitions/rule", "description": "Require or Disallow “Yoda” conditions" }
}
},
"strictMode": {
"properties": {
"strict": { "$ref": "#/definitions/rule", "description": "require or disallow strict mode directives" }
}
},
"variables": {
"properties": {
"init-declarations": { "$ref": "#/definitions/rule", "description": "Require or disallow initialization in var declarations" },
"no-catch-shadow": { "$ref": "#/definitions/rule", "description": "Disallow catch clause parameters from shadowing variables in the outer scope" },
"no-delete-var": { "$ref": "#/definitions/rule", "description": "Disallow deleting variables" },
"no-label-var": { "$ref": "#/definitions/rule", "description": "Disallow labels that share a name with a variable" },
"no-restricted-globals": { "$ref": "#/definitions/rule", "description": "Disallow specified global variables" },
"no-shadow": { "$ref": "#/definitions/rule", "description": "Disallow var declarations from shadowing variables in the outer scope" },
"no-shadow-restricted-names": { "$ref": "#/definitions/rule", "description": "Disallow identifiers from shadowing restricted names" },
"no-undef": { "$ref": "#/definitions/rule", "description": "Disallow the use of undeclared variables unless mentioned in /*global */ comments" },
"no-undefined": { "$ref": "#/definitions/rule", "description": "Disallow the use of undefined as an identifier" },
"no-undef-init": { "$ref": "#/definitions/rule", "description": "Disallow initializing variables to undefined" },
"no-unused-vars": { "$ref": "#/definitions/rule", "description": "Disallow unused variables" },
"no-use-before-define": { "$ref": "#/definitions/rule", "description": "Disallow the use of variables before they are defined" }
}
},
"nodeAndCommonJs": {
"properties": {
"callback-return": { "$ref": "#/definitions/rule", "description": "Require return statements after callbacks" },
"global-require": { "$ref": "#/definitions/rule", "description": "Require require() calls to be placed at top-level module scope" },
"handle-callback-err": { "$ref": "#/definitions/rule", "description": "Require error handling in callbacks" },
"no-buffer-constructor": { "$ref": "#/definitions/rule", "description": "Disallow use of the Buffer() constructor" },
"no-mixed-requires": { "$ref": "#/definitions/rule", "description": "Disallow require calls to be mixed with regular var declarations" },
"no-new-require": { "$ref": "#/definitions/rule", "description": "Disallow new operators with calls to require" },
"no-path-concat": { "$ref": "#/definitions/rule", "description": "Disallow string concatenation with __dirname and __filename" },
"no-process-env": { "$ref": "#/definitions/rule", "description": "Disallow the use of process.env" },
"no-process-exit": { "$ref": "#/definitions/rule", "description": "Disallow the use of process.exit()" },
"no-restricted-modules": { "$ref": "#/definitions/rule", "description": "Disallow specified modules when loaded by require" },
"no-sync": { "$ref": "#/definitions/rule", "description": "Disallow synchronous methods" }
}
},
"stylisticIssues": {
"properties": {
"array-bracket-newline": { "$ref": "#/definitions/rule", "description": "Enforce line breaks after opening and before closing array brackets" },
"array-bracket-spacing": { "$ref": "#/definitions/rule", "description": "Enforce consistent spacing inside array brackets" },
"array-element-newline": { "$ref": "#/definitions/rule", "description": "Enforce line breaks after each array element" },
"block-spacing": { "$ref": "#/definitions/rule", "description": "Enforce consistent spacing inside single-line blocks" },
"brace-style": { "$ref": "#/definitions/rule", "description": "Enforce consistent brace style for blocks" },
"camelcase": { "$ref": "#/definitions/rule", "description": "Enforce camelcase naming convention" },
"capitalized-comments": { "$ref": "#/definitions/rule", "description": "Enforce or disallow capitalization of the first letter of a comment" },
"comma-dangle": { "$ref": "#/definitions/rule", "description": "Require or disallow trailing commas" },
"comma-spacing": { "$ref": "#/definitions/rule", "description": "Enforce consistent spacing before and after commas" },
"comma-style": { "$ref": "#/definitions/rule", "description": "Enforce consistent comma style" },
"computed-property-spacing": { "$ref": "#/definitions/rule", "description": "Enforce consistent spacing inside computed property brackets" },
"consistent-this": { "$ref": "#/definitions/rule", "description": "Enforce consistent naming when capturing the current execution context" },
"eol-last": { "$ref": "#/definitions/rule", "description": "Enforce at least one newline at the end of files" },
"func-call-spacing": { "$ref": "#/definitions/rule", "description": "Require or disallow spacing between function identifiers and their invocations" },
"func-name-matching": { "$ref": "#/definitions/rule", "description": "Require function names to match the name of the variable or property to which they are assigned" },
"func-names": { "$ref": "#/definitions/rule", "description": "Require or disallow named function expressions" },
"func-style": { "$ref": "#/definitions/rule", "description": "Enforce the consistent use of either function declarations or expressions" },
"function-call-argument-newline": { "$ref": "#/definitions/rule", "description": "Enforce line breaks between arguments of a function call" },
"function-paren-newline": { "$ref": "#/definitions/rule", "description": "Enforce consistent line breaks inside function parentheses" },
"id-blacklist": { "$ref": "#/definitions/rule", "description": "Disallow specified identifiers" },
"id-length": { "$ref": "#/definitions/rule", "description": "Enforce minimum and maximum identifier lengths" },
"id-match": { "$ref": "#/definitions/rule", "description": "Require identifiers to match a specified regular expression" },
"implicit-arrow-linebreak": { "$ref": "#/definitions/rule", "description": "Enforce the location of arrow function bodies" },
"indent": { "$ref": "#/definitions/rule", "description": "Enforce consistent indentation" },
"indent-legacy": { "$ref": "#/definitions/rule", "description": "Enforce consistent indentation (legacy, deprecated)" },
"jsx-quotes": { "$ref": "#/definitions/rule", "description": "Enforce the consistent use of either double or single quotes in JSX attributes" },
"key-spacing": { "$ref": "#/definitions/rule", "description": "Enforce consistent spacing between keys and values in object literal properties" },
"keyword-spacing": { "$ref": "#/definitions/rule", "description": "Enforce consistent spacing before and after keywords" },
"line-comment-position": { "$ref": "#/definitions/rule", "description": "Enforce position of line comments" },
"lines-between-class-members": { "$ref": "#/definitions/rule", "description": "Require or disallow an empty line between class members" },
"linebreak-style": { "$ref": "#/definitions/rule", "description": "Enforce consistent linebreak style" },
"lines-around-comment": { "$ref": "#/definitions/rule", "description": "Require empty lines around comments" },
"lines-around-directive": { "$ref": "#/definitions/rule", "description": "Require or disallow newlines around directives" },
"max-depth": { "$ref": "#/definitions/rule", "description": "Enforce a maximum depth that blocks can be nested" },
"max-len": { "$ref": "#/definitions/rule", "description": "Enforce a maximum line length" },
"max-lines": { "$ref": "#/definitions/rule", "description": "Enforce a maximum number of lines per file" },
"max-nested-callbacks": { "$ref": "#/definitions/rule", "description": "Enforce a maximum depth that callbacks can be nested" },
"max-params": { "$ref": "#/definitions/rule", "description": "Enforce a maximum number of parameters in function definitions" },
"max-statements": { "$ref": "#/definitions/rule", "description": "Enforce a maximum number of statements allowed in function blocks" },
"max-statements-per-line": { "$ref": "#/definitions/rule", "description": "Enforce a maximum number of statements allowed per line" },
"multiline-comment-style": { "$ref": "#/definitions/rule", "description": "Enforce a particular style for multiline comments" },
"multiline-ternary": { "$ref": "#/definitions/rule", "description": "Enforce newlines between operands of ternary expressions" },
"new-cap": { "$ref": "#/definitions/rule", "description": "Require constructor function names to begin with a capital letter" },
"newline-after-var": { "$ref": "#/definitions/rule", "description": "Require or disallow an empty line after var declarations" },
"newline-before-return": { "$ref": "#/definitions/rule", "description": "Require an empty line before return statements" },
"newline-per-chained-call": { "$ref": "#/definitions/rule", "description": "Require a newline after each call in a method chain" },
"new-parens": { "$ref": "#/definitions/rule", "description": "Require parentheses when invoking a constructor with no arguments" },
"no-array-constructor": { "$ref": "#/definitions/rule", "description": "Disallow Array constructors" },
"no-bitwise": { "$ref": "#/definitions/rule", "description": "Disallow bitwise operators" },
"no-continue": { "$ref": "#/definitions/rule", "description": "Disallow continue statements" },
"no-inline-comments": { "$ref": "#/definitions/rule", "description": "Disallow inline comments after code" },
"no-lonely-if": { "$ref": "#/definitions/rule", "description": "Disallow if statements as the only statement in else blocks" },
"no-mixed-operators": { "$ref": "#/definitions/rule", "description": "Disallow mixed binary operators" },
"no-mixed-spaces-and-tabs": { "$ref": "#/definitions/rule", "description": "Disallow mixed spaces and tabs for indentation" },
"no-multi-assign": { "$ref": "#/definitions/rule", "description": "Disallow use of chained assignment expressions" },
"no-multiple-empty-lines": { "$ref": "#/definitions/rule", "description": "Disallow multiple empty lines" },
"no-negated-condition": { "$ref": "#/definitions/rule", "description": "Disallow negated conditions" },
"no-nested-ternary": { "$ref": "#/definitions/rule", "description": "Disallow nested ternary expressions" },
"no-new-object": { "$ref": "#/definitions/rule", "description": "Disallow Object constructors" },
"no-plusplus": { "$ref": "#/definitions/rule", "description": "Disallow the unary operators ++ and --" },
"no-restricted-syntax": { "$ref": "#/definitions/rule", "description": "Disallow specified syntax" },
"no-spaced-func": { "$ref": "#/definitions/rule"},
"no-tabs": { "$ref": "#/definitions/rule", "description": "Disallow tabs in file" },
"no-ternary": { "$ref": "#/definitions/rule", "description": "Disallow ternary operators" },
"no-trailing-spaces": { "$ref": "#/definitions/rule", "description": "Disallow trailing whitespace at the end of lines" },
"no-underscore-dangle": { "$ref": "#/definitions/rule", "description": "Disallow dangling underscores in identifiers" },
"no-unneeded-ternary": { "$ref": "#/definitions/rule", "description": "Disallow ternary operators when simpler alternatives exist" },
"no-whitespace-before-property": { "$ref": "#/definitions/rule", "description": "Disallow whitespace before properties" },
"nonblock-statement-body-position": { "$ref": "#/definitions/rule", "description": "Enforce the location of single-line statements" },
"object-curly-newline": { "$ref": "#/definitions/rule", "description": "Enforce consistent line breaks inside braces" },
"object-curly-spacing": { "$ref": "#/definitions/rule", "description": "Enforce consistent spacing inside braces" },
"object-property-newline": { "$ref": "#/definitions/rule", "description": "Enforce placing object properties on separate lines" },
"object-shorthand": { "$ref": "#/definitions/rule"},
"one-var": { "$ref": "#/definitions/rule", "description": "Enforce variables to be declared either together or separately in functions" },
"one-var-declaration-per-line": { "$ref": "#/definitions/rule", "description": "Require or disallow newlines around var declarations" },
"operator-assignment": { "$ref": "#/definitions/rule", "description": "Require or disallow assignment operator shorthand where possible" },
"operator-linebreak": { "$ref": "#/definitions/rule", "description": "Enforce consistent linebreak style for operators" },
"padded-blocks": { "$ref": "#/definitions/rule", "description": "Require or disallow padding within blocks" },
"padding-line-between-statements": { "$ref": "#/definitions/rule", "description": "Require or disallow padding lines between statements" },
"quote-props": { "$ref": "#/definitions/rule", "description": "Require quotes around object literal property names" },
"quotes": { "$ref": "#/definitions/rule", "description": "Enforce the consistent use of either backticks, double, or single quotes" },
"require-jsdoc": { "$ref": "#/definitions/rule", "description": "Require JSDoc comments" },
"semi": { "$ref": "#/definitions/rule", "description": "Require or disallow semicolons instead of ASI" },
"semi-spacing": { "$ref": "#/definitions/rule", "description": "Enforce consistent spacing before and after semicolons" },
"semi-style": { "$ref": "#/definitions/rule", "description": "Enforce location of semicolons" },
"sort-keys": { "$ref": "#/definitions/rule", "description": "Requires object keys to be sorted" },
"sort-vars": { "$ref": "#/definitions/rule", "description": "Require variables within the same declaration block to be sorted" },
"space-before-blocks": { "$ref": "#/definitions/rule", "description": "Enforce consistent spacing before blocks" },
"space-before-function-paren": { "$ref": "#/definitions/rule", "description": "Enforce consistent spacing before function definition opening parenthesis" },
"spaced-comment": { "$ref": "#/definitions/rule", "description": "Enforce consistent spacing after the // or /* in a comment" },
"space-infix-ops": { "$ref": "#/definitions/rule", "description": "Require spacing around operators" },
"space-in-parens": { "$ref": "#/definitions/rule", "description": "Enforce consistent spacing inside parentheses" },
"space-unary-ops": { "$ref": "#/definitions/rule", "description": "Enforce consistent spacing before or after unary operators" },
"switch-colon-spacing": { "$ref": "#/definitions/rule", "description": "Enforce spacing around colons of switch statements" },
"template-tag-spacing": { "$ref": "#/definitions/rule", "description": "Require or disallow spacing between template tags and their literals" },
"unicode-bom": { "$ref": "#/definitions/rule", "description": "Require or disallow Unicode byte order mark (BOM)" },
"wrap-regex": { "$ref": "#/definitions/rule", "description": "Require parenthesis around regex literals" }
}
},
"ecmaScript6": {
"properties": {
"arrow-body-style": { "$ref": "#/definitions/rule", "description": "Require braces around arrow function bodies" },
"arrow-parens": { "$ref": "#/definitions/rule", "description": "Require parentheses around arrow function arguments" },
"arrow-spacing": { "$ref": "#/definitions/rule", "description": "Enforce consistent spacing before and after the arrow in arrow functions" },
"constructor-super": { "$ref": "#/definitions/rule", "description": "Require super() calls in constructors" },
"generator-star-spacing": { "$ref": "#/definitions/rule", "description": "Enforce consistent spacing around * operators in generator functions" },
"no-class-assign": { "$ref": "#/definitions/rule", "description": "Disallow reassigning class members" },
"no-confusing-arrow": { "$ref": "#/definitions/rule", "description": "Disallow arrow functions where they could be confused with comparisons" },
"no-const-assign": { "$ref": "#/definitions/rule", "description": "Disallow reassigning const variables" },
"no-dupe-class-members": { "$ref": "#/definitions/rule", "description": "Disallow duplicate class members" },
"no-duplicate-imports": { "$ref": "#/definitions/rule", "description": "Disallow duplicate module imports" },
"no-new-symbol": { "$ref": "#/definitions/rule", "description": "Disallow new operators with the Symbol object" },
"no-restricted-imports": { "$ref": "#/definitions/rule", "description": "Disallow specified modules when loaded by import" },
"no-this-before-super": { "$ref": "#/definitions/rule", "description": "Disallow this/super before calling super() in constructors" },
"no-useless-computed-key": { "$ref": "#/definitions/rule", "description": "Disallow unnecessary computed property keys in object literals" },
"no-useless-constructor": { "$ref": "#/definitions/rule", "description": "Disallow unnecessary constructors" },
"no-useless-rename": { "$ref": "#/definitions/rule", "description": "Disallow renaming import, export, and destructured assignments to the same name" },
"no-var": { "$ref": "#/definitions/rule", "description": "Require let or const instead of var" },
"object-shorthand": { "$ref": "#/definitions/rule", "description": "Require or disallow method and property shorthand syntax for object literals" },
"prefer-arrow-callback": { "$ref": "#/definitions/rule", "description": "Require arrow functions as callbacks" },
"prefer-const": { "$ref": "#/definitions/rule", "description": "Require const declarations for variables that are never reassigned after declared" },
"prefer-destructuring": { "$ref": "#/definitions/rule", "description": "Require destructuring from arrays and/or objects" },
"prefer-numeric-literals": { "$ref": "#/definitions/rule", "description": "Disallow parseInt() in favor of binary, octal, and hexadecimal literals" },
"prefer-reflect": { "$ref": "#/definitions/rule", "description": "Require Reflect methods where applicable" },
"prefer-rest-params": { "$ref": "#/definitions/rule", "description": "Require rest parameters instead of arguments" },
"prefer-spread": { "$ref": "#/definitions/rule", "description": "Require spread operators instead of .apply()" },
"prefer-template": { "$ref": "#/definitions/rule", "description": "Require template literals instead of string concatenation" },
"require-yield": { "$ref": "#/definitions/rule", "description": "Require generator functions to contain yield" },
"rest-spread-spacing": { "$ref": "#/definitions/rule", "description": "Enforce spacing between rest and spread operators and their expressions" },
"sort-imports": { "$ref": "#/definitions/rule", "description": "Enforce sorted import declarations within modules" },
"symbol-description": { "$ref": "#/definitions/rule", "description": "Require symbol descriptions" },
"template-curly-spacing": { "$ref": "#/definitions/rule", "description": "Require or disallow spacing around embedded expressions of template strings" },
"yield-star-spacing": { "$ref": "#/definitions/rule", "description": "Require or disallow spacing around the * in yield* expressions" }
}
},
"legacy": {
"properties": {
"max-depth": { "$ref": "#/definitions/rule" },
"max-len": { "$ref": "#/definitions/rule" },
"max-params": { "$ref": "#/definitions/rule" },
"max-statements": { "$ref": "#/definitions/rule" },
"no-bitwise": { "$ref": "#/definitions/rule" },
"no-plusplus": { "$ref": "#/definitions/rule" }
}
}
},
"properties": {
"ecmaFeatures": {
"description": "By default, ESLint supports only ECMAScript 5 syntax. You can override that setting to enable support for ECMAScript 6 as well as JSX by using configuration settings.",
"type": "object",
"properties": {
"arrowFunctions": { "type": "boolean" },
"binaryLiterals": { "type": "boolean" },
"blockBindings": { "type": "boolean" },
"classes": { "type": "boolean" },
"defaultParams": { "type": "boolean" },
"destructuring": { "type": "boolean" },
"experimentalObjectRestSpread": { "type": "boolean",
"description": "Enables support for the experimental object rest/spread properties (IMPORTANT: This is an experimental feature that may change significantly in the future. It’s recommended that you do not write rules relying on this functionality unless you are willing to incur maintenance cost when it changes.)"},
"forOf": { "type": "boolean" },
"generators": { "type": "boolean" },
"globalReturn": { "type": "boolean", "description": "allow return statements in the global scope" },
"impliedStrict": { "type": "boolean", "description": "enable global strict mode (if ecmaVersion is 5 or greater)" },
"jsx": { "type": "boolean", "description": "enable JSX" },
"modules": { "type": "boolean" },
"objectLiteralComputedProperties": { "type": "boolean" },
"objectLiteralDuplicateProperties": { "type": "boolean" },
"objectLiteralShorthandMethods": { "type": "boolean" },
"objectLiteralShorthandProperties": { "type": "boolean" },
"octalLiterals": { "type": "boolean" },
"regexUFlag": { "type": "boolean" },
"regexYFlag": { "type": "boolean" },
"restParams": { "type": "boolean" },
"spread": { "type": "boolean" },
"superInFunctions": { "type": "boolean" },
"templateStrings": { "type": "boolean" },
"unicodeCodePointEscapes": { "type": "boolean" }
}
},
"env": {
"description": "An environment defines global variables that are predefined.",
"type": "object",
"properties": {
"amd": {
"type": "boolean",
"description": "defines require() and define() as global variables as per the amd spec"
},
"applescript": {
"type": "boolean",
"description": "AppleScript global variables"
},
"atomtest": {
"type": "boolean",
"description": "Atom test helper globals"
},
"browser": {
"type": "boolean",
"description": "browser global variables"
},
"commonjs": {
"type": "boolean",
"description": "CommonJS global variables and CommonJS scoping (use this for browser-only code that uses Browserify/WebPack)"
},
"shared-node-browser": {
"type": "boolean",
"description": "Globals common to both Node and Browser"
},
"embertest": {
"type": "boolean",
"description": "Ember test helper globals"
},
"es6": {
"type": "boolean",
"description": "enable all ECMAScript 6 features except for modules"
},
"greasemonkey": {
"type": "boolean",
"description": "GreaseMonkey globals"
},
"jasmine": {
"type": "boolean",
"description": "adds all of the Jasmine testing global variables for version 1.3 and 2.0"
},
"jest": {
"type": "boolean",
"description": "Jest global variables"
},
"jquery": {
"type": "boolean",
"description": "jQuery global variables"
},
"meteor": {
"type": "boolean",
"description": "Meteor global variables"
},
"mocha": {
"type": "boolean",
"description": "adds all of the Mocha test global variables"
},
"mongo": {
"type": "boolean",
"description": "MongoDB global variables"
},
"nashorn": {
"type": "boolean",
"description": "Java 8 Nashorn global variables"
},
"node": {
"type": "boolean",
"description": "Node.js global variables and Node.js scoping"
},
"phantomjs": {
"type": "boolean",
"description": "PhantomJS global variables"
},
"prototypejs": {
"type": "boolean",
"description": "Prototype.js global variables"
},
"protractor": {
"type": "boolean",
"description": "Protractor global variables"
},
"qunit": {
"type": "boolean",
"description": "QUnit global variables"
},
"serviceworker": {
"type": "boolean",
"description": "Service Worker global variables"
},
"shelljs": {
"type": "boolean",
"description": "ShellJS global variables"
},
"webextensions": {
"type": "boolean",
"description": "WebExtensions globals"
},
"worker": {
"type": "boolean",
"description": "web workers global variables"
}
}
},
"extends": {
"description": "If you want to extend a specific configuration file, you can use the extends property and specify the path to the file. The path can be either relative or absolute.",
"type": [ "string", "array" ],
"items": {
"type": "string"
}
},
"globals": {
"description": "Set each global variable name equal to true to allow the variable to be overwritten or false to disallow overwriting.",
"type": "object",
"additionalProperties": {
"oneOf": [
{
"type": "string",
"enum": [
"readonly", "writable", "off"
]
},
{
"description": "The values false|\"readable\" and true|\"writeable\" are deprecated, they are equivalent to \"readonly\" and \"writable\", respectively.",
"type": "boolean"
}
]
}
},
"noInlineConfig": {
"description": "Prevent comments from changing config or rules",
"type": "boolean"
},
"parser": {
"type": "string"
},
"parserOptions": {
"description": "The JavaScript language options to be supported",
"type": "object",
"properties": {
"ecmaFeatures": {
"$ref": "#/properties/ecmaFeatures"
},
"ecmaVersion": {
"enum": [ 3, 5, 6, 2015, 7, 2016, 8, 2017, 9, 2018, 10, 2019, 11, 2020, 12, 2021, 13, 2022, "latest" ],
"default": 11,
"description": "Set to 3, 5, 6, 7, 8, 9, 10, 11 (default), 12, 13 or \"latest\" to specify the version of ECMAScript syntax you want to use. You can also set to 2015 (same as 6), 2016 (same as 7), 2017 (same as 8), 2018 (same as 9), 2019 (same as 10), 2020 (same as 11) or 2021 (same as 12) or 2022 (same as 13) to use the year-based naming. \"latest\" always enables the latest supported ECMAScript version."
},
"sourceType": {
"enum": [ "script", "module" ],
"default": "script",
"description": "set to \"script\" (default) or \"module\" if your code is in ECMAScript modules"
}
}
},
"plugins": {
"description": "ESLint supports the use of third-party plugins. Before using the plugin, you have to install it using npm.",
"type": "array",
"items": {
"type": "string"
}
},
"root": {
"description": "By default, ESLint will look for configuration files in all parent folders up to the root directory. This can be useful if you want all of your projects to follow a certain convention, but can sometimes lead to unexpected results. To limit ESLint to a specific project, set this to `true` in a configuration in the root of your project.",
"type": "boolean"
},
"ignorePatterns": {
"description": "Tell ESLint to ignore specific files and directories. Each value uses the same pattern as the `.eslintignore` file.",
"type": [ "string", "array" ],
"items": {
"type": "string"
}
},
"rules": {
"description": "ESLint comes with a large number of rules. You can modify which rules your project uses either using configuration comments or configuration files.",
"type": "object",
"allOf": [
{ "$ref": "#/definitions/possibleErrors" },
{ "$ref": "#/definitions/bestPractices" },
{ "$ref": "#/definitions/strictMode" },
{ "$ref": "#/definitions/variables" },
{ "$ref": "#/definitions/nodeAndCommonJs" },
{ "$ref": "#/definitions/stylisticIssues" },
{ "$ref": "#/definitions/ecmaScript6" },
{ "$ref": "#/definitions/legacy" }
]
},
"settings": {
"description": "ESLint supports adding shared settings into configuration file. You can add settings object to ESLint configuration file and it will be supplied to every rule that will be executed. This may be useful if you are adding custom rules and want them to have access to the same information and be easily configurable.",
"type": "object"
},
"overrides": {
"type": "array",
"description": "Allows to override configuration for files and folders, specified by glob patterns",
"items": {
"type": "object",
"properties": {
"files": {
"description": "Glob pattern for files to apply 'overrides' configuration, relative to the directory of the config file",
"oneOf": [
{
"type": "string"
},
{
"minItems": 1,
"type": "array",
"items": {
"type": "string"
}
}
]
},
"extends": {
"description": "If you want to extend a specific configuration file, you can use the extends property and specify the path to the file. The path can be either relative or absolute.",
"type": [ "string", "array" ],
"items": {
"type": "string"
}
},
"excludedFiles": {
"description": "If a file matches any of the 'excludedFiles' glob patterns, the 'overrides' configuration won’t apply",
"oneOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
}
}
]
},
"ecmaFeatures": {
"$ref": "#/properties/ecmaFeatures"
},
"env": {
"$ref": "#/properties/env"
},
"globals": {
"$ref": "#/properties/globals"
},
"parser": {
"$ref": "#/properties/parser"
},
"parserOptions": {
"$ref": "#/properties/parserOptions"
},
"plugins": {
"$ref": "#/properties/plugins"
},
"processor": {
"description": "To specify a processor, specify the plugin name and processor name joined by a forward slash",
"type": "string"
},
"rules": {
"$ref": "#/properties/rules"
},
"settings": {
"$ref": "#/properties/settings"
}
},
"additionalProperties": false,
"required": [
"files"
]
}
}
}
}
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Schema for .prettierrc",
"definitions": {
"optionsDefinition": {
"type": "object",
"properties": {
"arrowParens": {
"description": "Include parentheses around a sole arrow function parameter.",
"default": "always",
"oneOf": [
{
"enum": ["always"],
"description": "Always include parens. Example: `(x) => x`"
},
{
"enum": ["avoid"],
"description": "Omit parens when possible. Example: `x => x`"
}
]
},
"bracketSameLine": {
"description": "Put > of opening tags on the last line instead of on a new line.",
"default": false,
"type": "boolean"
},
"bracketSpacing": {
"description": "Print spaces between brackets.",
"default": true,
"type": "boolean"
},
"cursorOffset": {
"description": "Print (to stderr) where a cursor at the given position would move to after formatting.\nThis option cannot be used with --range-start and --range-end.",
"default": -1,
"type": "integer"
},
"embeddedLanguageFormatting": {
"description": "Control how Prettier formats quoted code embedded in the file.",
"default": "auto",
"oneOf": [
{
"enum": ["auto"],
"description": "Format embedded code if Prettier can automatically identify it."
},
{
"enum": ["off"],
"description": "Never automatically format embedded code."
}
]
},
"endOfLine": {
"description": "Which end of line characters to apply.",
"default": "lf",
"oneOf": [
{
"enum": ["lf"],
"description": "Line Feed only (\\n), common on Linux and macOS as well as inside git repos"
},
{
"enum": ["crlf"],
"description": "Carriage Return + Line Feed characters (\\r\\n), common on Windows"
},
{
"enum": ["cr"],
"description": "Carriage Return character only (\\r), used very rarely"
},
{
"enum": ["auto"],
"description": "Maintain existing\n(mixed values within one file are normalised by looking at what's used after the first line)"
}
]
},
"filepath": {
"description": "Specify the input filepath. This will be used to do parser inference.",
"type": "string"
},
"htmlWhitespaceSensitivity": {
"description": "How to handle whitespaces in HTML.",
"default": "css",
"oneOf": [
{
"enum": ["css"],
"description": "Respect the default value of CSS display property."
},
{
"enum": ["strict"],
"description": "Whitespaces are considered sensitive."
},
{
"enum": ["ignore"],
"description": "Whitespaces are considered insensitive."
}
]
},
"insertPragma": {
"description": "Insert @format pragma into file's first docblock comment.",
"default": false,
"type": "boolean"
},
"jsxSingleQuote": {
"description": "Use single quotes in JSX.",
"default": false,
"type": "boolean"
},
"parser": {
"description": "Which parser to use.",
"anyOf": [
{ "enum": ["flow"], "description": "Flow" },
{ "enum": ["babel"], "description": "JavaScript" },
{ "enum": ["babel-flow"], "description": "Flow" },
{ "enum": ["babel-ts"], "description": "TypeScript" },
{ "enum": ["typescript"], "description": "TypeScript" },
{ "enum": ["espree"], "description": "JavaScript" },
{ "enum": ["meriyah"], "description": "JavaScript" },
{ "enum": ["css"], "description": "CSS" },
{ "enum": ["less"], "description": "Less" },
{ "enum": ["scss"], "description": "SCSS" },
{ "enum": ["json"], "description": "JSON" },
{ "enum": ["json5"], "description": "JSON5" },
{ "enum": ["json-stringify"], "description": "JSON.stringify" },
{ "enum": ["graphql"], "description": "GraphQL" },
{ "enum": ["markdown"], "description": "Markdown" },
{ "enum": ["mdx"], "description": "MDX" },
{ "enum": ["vue"], "description": "Vue" },
{ "enum": ["yaml"], "description": "YAML" },
{ "enum": ["glimmer"], "description": "Ember / Handlebars" },
{ "enum": ["html"], "description": "HTML" },
{ "enum": ["angular"], "description": "Angular" },
{ "enum": ["lwc"], "description": "Lightning Web Components" },
{ "type": "string", "description": "Custom parser" }
]
},
"pluginSearchDirs": {
"description": "Custom directory that contains prettier plugins in node_modules subdirectory.\nOverrides default behavior when plugins are searched relatively to the location of Prettier.\nMultiple values are accepted.",
"default": [],
"type": "array",
"items": { "type": "string" }
},
"plugins": {
"description": "Add a plugin. Multiple plugins can be passed as separate `--plugin`s.",
"default": [],
"type": "array",
"items": { "type": "string" }
},
"printWidth": {
"description": "The line length where Prettier will try wrap.",
"default": 80,
"type": "integer"
},
"proseWrap": {
"description": "How to wrap prose.",
"default": "preserve",
"oneOf": [
{
"enum": ["always"],
"description": "Wrap prose if it exceeds the print width."
},
{ "enum": ["never"], "description": "Do not wrap prose." },
{ "enum": ["preserve"], "description": "Wrap prose as-is." }
]
},
"quoteProps": {
"description": "Change when properties in objects are quoted.",
"default": "as-needed",
"oneOf": [
{
"enum": ["as-needed"],
"description": "Only add quotes around object properties where required."
},
{
"enum": ["consistent"],
"description": "If at least one property in an object requires quotes, quote all properties."
},
{
"enum": ["preserve"],
"description": "Respect the input use of quotes in object properties."
}
]
},
"rangeEnd": {
"description": "Format code ending at a given character offset (exclusive).\nThe range will extend forwards to the end of the selected statement.\nThis option cannot be used with --cursor-offset.",
"default": null,
"type": "integer"
},
"rangeStart": {
"description": "Format code starting at a given character offset.\nThe range will extend backwards to the start of the first line containing the selected statement.\nThis option cannot be used with --cursor-offset.",
"default": 0,
"type": "integer"
},
"requirePragma": {
"description": "Require either '@prettier' or '@format' to be present in the file's first docblock comment\nin order for it to be formatted.",
"default": false,
"type": "boolean"
},
"semi": {
"description": "Print semicolons.",
"default": true,
"type": "boolean"
},
"singleQuote": {
"description": "Use single quotes instead of double quotes.",
"default": false,
"type": "boolean"
},
"tabWidth": {
"description": "Number of spaces per indentation level.",
"default": 2,
"type": "integer"
},
"trailingComma": {
"description": "Print trailing commas wherever possible when multi-line.",
"default": "es5",
"oneOf": [
{
"enum": ["es5"],
"description": "Trailing commas where valid in ES5 (objects, arrays, etc.)"
},
{ "enum": ["none"], "description": "No trailing commas." },
{
"enum": ["all"],
"description": "Trailing commas wherever possible (including function arguments)."
}
]
},
"useTabs": {
"description": "Indent with tabs instead of spaces.",
"default": false,
"type": "boolean"
},
"vueIndentScriptAndStyle": {
"description": "Indent script and style tags in Vue files.",
"default": false,
"type": "boolean"
}
}
},
"overridesDefinition": {
"type": "object",
"properties": {
"overrides": {
"type": "array",
"description": "Provide a list of patterns to override prettier configuration.",
"items": {
"type": "object",
"required": ["files"],
"properties": {
"files": {
"description": "Include these files in this override.",
"oneOf": [
{ "type": "string" },
{ "type": "array", "items": { "type": "string" } }
]
},
"excludeFiles": {
"description": "Exclude these files from this override.",
"oneOf": [
{ "type": "string" },
{ "type": "array", "items": { "type": "string" } }
]
},
"options": {
"type": "object",
"description": "The options to apply for this override.",
"$ref": "#/definitions/optionsDefinition"
}
},
"additionalProperties": false
}
}
}
}
},
"oneOf": [
{
"type": "object",
"allOf": [
{ "$ref": "#/definitions/optionsDefinition" },
{ "$ref": "#/definitions/overridesDefinition" }
]
},
{ "type": "string" }
]
}
[
{
"key": "ctrl+shift+a",
"command": "workbench.action.toggleActivityBarVisibility"
},
{
"key": "ctrl+alt+b",
"command": "workbench.action.toggleStatusbarVisibility"
},
{
"key": "shift+alt+t",
"command": "workbench.action.terminal.clear"
},
{
"key": "shift+alt+u",
"command": "workbench.output.action.clearOutput"
},
{
"key": "ctrl+oem_period",
"command": "editor.action.triggerSuggest",
"when": "editorHasCompletionItemProvider && textInputFocus && !editorReadonly"
},
{
"key": "ctrl+alt+n",
"command": "code-runner.run"
},
{
"key": "ctrl+alt+s",
"command": "code-runner.stop"
},
{
"key": "alt+t",
"command": "highlight-matching-tag.selectPairContents"
},
{
"key": "alt+a",
"command": "bracket-pair-colorizer-2.expandBracketSelection"
},
{
"key": "ctrl+alt+oem_period",
"command": "editor.action.quickFix",
"when": "editorHasCodeActionsProvider && editorTextFocus && !editorReadonly"
},
{
"key": "ctrl+oem_period",
"command": "-editor.action.quickFix",
"when": "editorHasCodeActionsProvider && editorTextFocus && !editorReadonly"
},
{
"key": "alt+f",
"command": "search.action.openNewEditor"
},
{
"key": "ctrl+shift+i",
"command": "emojisense.quickEmojitext",
"when": "editorTextFocus"
},
{
"key": "ctrl+shift+i",
"command": "-emojisense.quickEmojitext",
"when": "editorTextFocus"
},
{
"key": "ctrl+oem_5",
"command": "workbench.action.terminal.split",
"when": "terminalFocus"
},
{
"key": "ctrl+shift+5",
"command": "-workbench.action.terminal.split",
"when": "terminalFocus"
}
]
[
{
"key": "shift+cmd+a",
"command": "workbench.action.toggleActivityBarVisibility"
},
{
"key": "alt+cmd+b",
"command": "workbench.action.toggleStatusbarVisibility"
},
{
"key": "ctrl+space",
"command": "-editor.action.triggerSuggest",
"when": "editorHasCompletionItemProvider && textInputFocus && !editorReadonly"
},
{
"key": "cmd+.",
"command": "editor.action.triggerSuggest",
"when": "editorHasCompletionItemProvider && textInputFocus && !editorReadonly"
},
{
"key": "cmd+r",
"command": "workbench.action.reloadWindow",
"when": "!filesExplorerFocus && !inDebugMode"
},
{
"key": "ctrl+alt+s",
"command": "code-runner.stop"
},
{
"key": "shift+cmd+k",
"command": "workbench.action.terminal.clear",
"when": "terminalFocus && terminalProcessSupported"
},
{
"key": "shift+cmd+k",
"command": "workbench.output.action.clearOutput",
"when": "focusedView == 'workbench.panel.output'"
},
{
"key": "alt+right",
"command": "workbench.action.terminal.focusNextPane",
"when": "terminalFocus && terminalProcessSupported"
},
{
"key": "alt+left",
"command": "workbench.action.terminal.focusPreviousPane",
"when": "terminalFocus && terminalProcessSupported"
},
{
"key": "alt+k",
"command": "workbench.action.terminal.focusNext",
"when": "terminalFocus && terminalProcessSupported"
},
{
"key": "alt+j",
"command": "workbench.action.terminal.focusPrevious",
"when": "terminalFocus && terminalProcessSupported"
},
{
"key": "alt+down",
"command": "workbench.action.terminal.scrollToNextCommand",
"when": "terminalFocus && terminalProcessSupported && !accessibilityModeEnabled"
},
{
"key": "alt+up",
"command": "workbench.action.terminal.scrollToPreviousCommand",
"when": "terminalFocus && terminalProcessSupported && !accessibilityModeEnabled"
},
{
"key": "shift+cmd+r",
"command": "git.clean",
"when": "textInputFocus && !editorReadonly"
},
{
"key": "shift+cmd+j",
"command": "workbench.action.terminal.new",
"when": "!inSearchEditor && !searchViewletFocus"
},
{
"key": "alt+.",
"command": "editor.action.quickFix",
"when": "editorHasCodeActionsProvider && editorTextFocus && !editorReadonly"
},
{
"key": "alt+o",
"command": "file-browser.open",
"when": "!filesExplorerFocus && !terminalFocus"
},
{
"key": "cmd+m",
"command": "workbench.action.toggleMaximizedPanel",
"when": "panelFocus"
},
{
"key": "cmd+w",
"command": "workbench.action.terminal.kill",
"when": "terminalFocus"
},
{
"key": "cmd+r",
"command": "workbench.action.debug.restart",
"when": "!filesExplorerFocus && inDebugMode"
},
{
"key": "alt+t",
"command": "terminal.focus"
},
{
"key": "alt+cmd+r",
"command": "editor.action.refactor",
"when": "editorHasCodeActionsProvider && editorTextFocus && !editorReadonly"
},
{
"key": "shift+enter",
"command": "markdown-preview-enhanced.runCodeChunk",
"when": "editorTextFocus && editorLangId == 'markdown'"
},
{
"key": "shift+cmd+,",
"command": "workbench.action.openSettingsJson"
},
{
"key": "alt+p",
"command": "editor.action.marker.next",
"when": "editorFocus"
},
{
"key": "shift+alt+p",
"command": "editor.action.marker.prev",
"when": "editorFocus"
},
{
"key": "shift+cmd+0",
"command": "workbench.files.action.collapseExplorerFolders"
},
{
"key": "shift+cmd+g",
"command": "workbench.view.scm",
"when": "workbench.scm.active"
},
{
"key": "ctrl+shift+t",
"command": "workbench.view.extension.todo-tree-container"
},
{
"key": "cmd+k cmd+r",
"command": "git.revertSelectedRanges",
"when": "editorTextFocus || isInDiffEditor"
},
{
"key": "cmd+r",
"command": "workbench.files.action.refreshFilesExplorer",
"when": "filesExplorerFocus "
},
{
"key": "cmd+e",
"command": "workbench.action.navigateToLastEditLocation"
},
{
"key": "alt+b",
"command": "editor.action.jumpToBracket",
"when": "editorTextFocus"
},
{
"key": "shift+alt+b",
"command": "editor.action.selectToBracket"
},
// 删除
{
"key": "alt+escape",
"command": "-editor.action.triggerSuggest",
"when": "editorHasCompletionItemProvider && textInputFocus && !editorReadonly"
},
{
"key": "cmd+l cmd+o",
"command": "-extension.liveServer.goOnline",
"when": "editorTextFocus"
},
{
"key": "cmd+l cmd+c",
"command": "-extension.liveServer.goOffline",
"when": "editorTextFocus"
},
{
"key": "cmd+r r",
"command": "-npm-script.rerun-last-script",
"when": "!terminalFocus"
},
{
"key": "cmd+r shift+r",
"command": "-npm-script.run",
"when": "!terminalFocus"
},
{
"key": "cmd+r t",
"command": "-npm-script.test",
"when": "!terminalFocus"
},
{
"key": "cmd+r l",
"command": "-npm-script.showOutput",
"when": "!terminalFocus"
},
{
"key": "cmd+r shift+x",
"command": "-npm-script.terminate-script",
"when": "!terminalFocus"
},
{
"key": "cmd+r",
"command": "-workbench.action.reloadWindow",
"when": "isDevelopment"
},
{
"key": "ctrl+alt+m",
"command": "-code-runner.stop"
},
{
"key": "ctrl+alt+k",
"command": "-code-runner.runCustomCommand"
},
{
"key": "cmd+k",
"command": "-workbench.action.terminal.clear",
"when": "terminalFocus && terminalProcessSupported"
},
{
"key": "ctrl+shift+5",
"command": "-workbench.action.terminal.split",
"when": "terminalFocus && terminalProcessSupported"
},
{
"key": "alt+cmd+down",
"command": "-workbench.action.terminal.focusNextPane",
"when": "terminalFocus && terminalProcessSupported"
},
{
"key": "alt+cmd+left",
"command": "-workbench.action.terminal.focusPreviousPane",
"when": "terminalFocus && terminalProcessSupported"
},
{
"key": "alt+cmd+up",
"command": "-workbench.action.terminal.focusPreviousPane",
"when": "terminalFocus && terminalProcessSupported"
},
{
"key": "alt+cmd+right",
"command": "-workbench.action.terminal.focusNextPane",
"when": "terminalFocus && terminalProcessSupported"
},
{
"key": "cmd+down",
"command": "-workbench.action.terminal.scrollToNextCommand",
"when": "terminalFocus && terminalProcessSupported && !accessibilityModeEnabled"
},
{
"key": "cmd+up",
"command": "-workbench.action.terminal.scrollToPreviousCommand",
"when": "terminalFocus && terminalProcessSupported && !accessibilityModeEnabled"
},
{
"key": "cmd+.",
"command": "-editor.action.quickFix",
"when": "editorHasCodeActionsProvider && editorTextFocus && !editorReadonly"
},
{
"key": "ctrl+shift+`",
"command": "-workbench.action.terminal.new"
},
{
"key": "alt+t",
"command": "-C_Cpp.SwitchHeaderSource",
"when": "editorTextFocus && editorLangId == 'c'"
},
{
"key": "alt+o",
"command": "-C_Cpp.SwitchHeaderSource",
"when": "editorTextFocus && editorLangId == 'cpp'"
},
{
"key": "shift+cmd+f5",
"command": "-workbench.action.debug.restart",
"when": "inDebugMode"
},
{
"key": "shift+cmd+c",
"command": "-workbench.action.terminal.openNativeConsole",
"when": "!terminalFocus"
},
{
"key": "ctrl+shift+r",
"command": "-editor.action.refactor",
"when": "editorHasCodeActionsProvider && editorTextFocus && !editorReadonly"
},
{
"key": "cmd+k cmd+q",
"command": "-workbench.action.navigateToLastEditLocation"
},
{
"key": "shift+alt+f5",
"command": "-workbench.action.editor.previousChange",
"when": "editorTextFocus"
},
{
"key": "alt+f5",
"command": "-workbench.action.editor.nextChange",
"when": "editorTextFocus"
},
{
"key": "cmd+l cmd+l",
"command": "-l13Diff.show"
},
{
"key": "cmd+l cmd+o",
"command": "-l13Diff.showOutput"
},
{
"key": "cmd+l cmd+f",
"command": "-workbench.view.extension.l13Diff"
},
{
"key": "shift+enter",
"command": "-markdown-preview-enhanced.runCodeChunk",
"when": "editorLangId == 'markdown'"
},
{
"key": "ctrl+shift+cmd+right",
"command": "-editor.action.smartSelect.expand",
"when": "editorTextFocus"
},
{
"key": "shift+cmd+,",
"command": "-editor.action.inPlaceReplace.up",
"when": "editorTextFocus && !editorReadonly"
},
{
"key": "alt+f8",
"command": "-editor.action.marker.next",
"when": "editorFocus"
},
{
"key": "shift+alt+f8",
"command": "-editor.action.marker.prev",
"when": "editorFocus"
},
{
"key": "ctrl+shift+g",
"command": "-workbench.view.scm",
"when": "workbench.scm.active"
},
{
"key": "cmd+k cmd+r",
"command": "-workbench.action.keybindingsReference"
},
{
"key": "cmd+k cmd+r",
"command": "-git.revertSelectedRanges",
"when": "isInDiffEditor"
},
{
"key": "ctrl+space",
"command": "-toggleSuggestionDetails",
"when": "suggestWidgetVisible && textInputFocus"
},
{
"key": "cmd+e",
"command": "-actions.findWithSelection"
},
{
"key": "alt+l",
"command": "references-view.next",
"when": "reference-list.hasResult && references-view.canNavigate"
},
{
"key": "f4",
"command": "-references-view.next",
"when": "reference-list.hasResult && references-view.canNavigate"
},
{
"key": "alt+b",
"command": "-gitlens.toggleFileBlame",
"when": "editorTextFocus && config.gitlens.keymap == 'alternate' && gitlens:activeFileStatus =~ /blameable/"
},
{
"key": "shift+alt+b",
"command": "-gitlens.toggleCodeLens",
"when": "editorTextFocus && !gitlens:disabled && !gitlens:disabledToggleCodeLens && config.gitlens.keymap == 'alternate'"
},
{
"key": "cmd+r",
"command": "-adobeScriptRunner.ae",
"when": "editorTextFocus"
},
{
"key": "shift+enter",
"command": "-acceptAlternativeSelectedSuggestion",
"when": "suggestWidgetVisible && textInputFocus"
},
{
"key": "shift+cmd+\\",
"command": "-editor.action.jumpToBracket",
"when": "editorTextFocus"
},
{
"key": "alt+cmd+i",
"command": "workbench.action.toggleDevTools"
},
{
"key": "alt+cmd+i",
"command": "-workbench.action.toggleDevTools",
"when": "isDevelopment"
},
{
"key": "alt+k",
"command": "workbench.action.editor.nextChange",
"when": "editorTextFocus && !textCompareEditorActive"
},
{
"key": "alt+f5",
"command": "-workbench.action.editor.nextChange",
"when": "editorTextFocus && !textCompareEditorActive"
},
{
"key": "alt+j",
"command": "workbench.action.editor.previousChange",
"when": "editorTextFocus && !textCompareEditorActive"
},
{
"key": "shift+alt+f5",
"command": "-workbench.action.editor.previousChange",
"when": "editorTextFocus && !textCompareEditorActive"
},
{
"key": "cmd+k d",
"command": "gitlens.diffWithPrevious",
"when": "editorTextFocus && !isInDiffEditor && gitlens:activeFileStatus =~ /tracked/"
},
{
"key": "alt+,",
"command": "-gitlens.diffWithPrevious",
"when": "editorTextFocus && !isInDiffEditor && config.gitlens.keymap == 'alternate' && gitlens:activeFileStatus =~ /tracked/"
},
{
"key": "cmd+k cmd+p",
"command": "gitlens.gitCommands",
"when": "!gitlens:disabled"
},
{
"key": "alt+/",
"command": "-gitlens.gitCommands",
"when": "!gitlens:disabled && config.gitlens.keymap == 'alternate'"
},
{
"key": "cmd+k d",
"command": "-workbench.files.action.compareWithSaved"
},
{
"key": "alt+f",
"command": "editor.action.fixAll"
},
{
"key": "alt+a",
"command": "editor.action.sourceAction"
},
{
"key": "shift+cmd+g",
"command": "-extension.extendscript-debug.selectActiveEngine"
},
{
"key": "alt+d",
"command": "editor.action.moveSelectionToNextFindMatch",
"when": "editorFocus"
},
{
"key": "cmd+k cmd+d",
"command": "-editor.action.moveSelectionToNextFindMatch",
"when": "editorFocus"
},
{
"key": "cmd+m",
"command": "-markdown.extension.editing.toggleMath",
"when": "editorTextFocus && !editorReadonly && editorLangId == 'markdown'"
},
{
"key": "cmd+m",
"command": "workbench.action.minimizeOtherEditors",
"when": "editorTextFocus && !editorReadonly"
},
{
"key": "ctrl+shift+g",
"command": "-workbench.view.scm",
"when": "workbench.scm.active && !gitlens:disabled && config.gitlens.keymap == 'chorded'"
},
{
"key": "shift+cmd+g",
"command": "-editor.action.previousMatchFindAction",
"when": "editorFocus"
},
{
"key": "cmd+g",
"command": "-editor.action.nextMatchFindAction",
"when": "editorFocus"
},
{
"key": "shift+cmd+\\",
"when": "editorTextFocus",
"command": "workbench.action.moveEditorToRightGroup"
},
{
"key": "cmd+g",
"command": "workbench.action.gotoSymbol"
},
{
"key": "shift+cmd+o",
"command": "-workbench.action.gotoSymbol"
},
{
"key": "cmd+g",
"command": "-workbench.action.terminal.findNext",
"when": "terminalFindFocused && terminalHasBeenCreated || terminalFindFocused && terminalProcessSupported || terminalFocus && terminalHasBeenCreated || terminalFocus && terminalProcessSupported"
},
{
"key": "alt+r",
"command": "rust-analyzer.run",
"when": "editorTextFocus"
},
{
"key": "shift+cmd+k",
"when": "focusedView == 'workbench.view.search'",
"command": "search.action.clearSearchResults"
},
{
"key": "cmd+k cmd+o",
"command": "openInExternalApp.open",
"when": "filesExplorerFocus || editorTextFocus"
},
{
"key": "shift+cmd+i",
"command": "editor.action.insertSnippet",
"when": "editorTextFocus"
},
{
"key": "alt+s",
"command": "workbench.action.debug.start",
"when": "debuggersAvailable && debugState == 'inactive'"
},
{
"key": "f5",
"command": "-workbench.action.debug.start",
"when": "debuggersAvailable && debugState == 'inactive'"
},
{
"key": "ctrl+,",
"command": "workbench.action.openSettings",
"when": "workbenchState == 'workspace'"
},
{
"key": "ctrl+shift+,",
"command": "workbench.action.openWorkspaceSettingsFile",
"when": "workbenchState == 'workspace'"
},
{
"key": "ctrl+,",
"command": "workbench.action.openFolderSettings",
"when": "workbenchState == 'folder'"
},
{
"key": "ctrl+shift+,",
"command": "workbench.action.openFolderSettingsFile",
"when": "workbenchState == 'folder'"
},
{
"key": "alt+s",
"command": "-gitlens.showQuickRepoStatus",
"when": "!gitlens:disabled && config.gitlens.keymap == 'alternate'"
},
{
"key": "alt+x",
"command": "workbench.action.debug.stop",
"when": "inDebugMode && !focusedSessionIsAttach"
},
{
"key": "shift+f5",
"command": "-workbench.action.debug.stop",
"when": "inDebugMode && !focusedSessionIsAttach"
},
{
"key": "alt+s",
"command": "workbench.action.debug.continue",
"when": "debugState == 'stopped'"
},
{
"key": "f5",
"command": "-workbench.action.debug.continue",
"when": "debugState == 'stopped'"
},
{
"key": "cmd+h",
"command": "editor.action.startFindReplaceAction",
"when": "editorFocus || editorIsOpen"
},
{
"key": "alt+cmd+f",
"command": "-editor.action.startFindReplaceAction",
"when": "editorFocus || editorIsOpen"
}
]
{
"debug.console.fontFamily": "'MesloLGS NF', 'Monaco'",
"debug.javascript.codelens.npmScripts": "never",
"explorer.confirmDelete": false,
"explorer.copyRelativePathSeparator": "/",
"files.autoSave": "afterDelay",
"files.exclude": { "**/.git": true },
"files.maxMemoryForLargeFilesMB": 8192,
"git.autofetch": true,
"git.confirmSync": false,
// "http.proxy": "http://127.0.0.1:7890",
"json.maxItemsComputed": 8888,
"oneDarkPro.markdownStyle": false,
"scm.inputFontFamily": "editor",
"search.useIgnoreFiles": true,
"security.workspace.trust.untrustedFiles": "open",
"telemetry.telemetryLevel": "off",
"terminal.integrated.gpuAcceleration": "on",
"window.title": "${activeEditorMedium}${separator}${rootName}",
"terminal.integrated.defaultProfile.osx": "zsh",
// "terminal.integrated.enableShellIntegration": true,
// "workbench.experimental.layoutControl.enabled": true,
// "explorer.experimental.fileNesting.enabled": true,
// "typescript.tsserver.experimental.enableProjectDiagnostics": false,
// editor
"editor.accessibilitySupport": "off",
"editor.bracketPairColorization.enabled": true,
// not work when enable autoSave
// "editor.codeActionsOnSave": {
// "source.fixAll": false,
// "source.addMissingImports": true,
// "source.fixAll.eslint": true,
// "source.fixAll.stylelint": true
// },
"editor.formatOnSave": false,
"editor.cursorBlinking": "smooth",
"editor.cursorSmoothCaretAnimation": true,
"editor.foldingHighlight": false,
"editor.fontFamily": "'Fira Code'",
"editor.fontSize": 12,
"editor.lightbulb.enabled": false,
"editor.linkedEditing": true,
"editor.minimap.enabled": false,
"editor.quickSuggestions": {
"strings": true,
"comments": true,
"other": true
},
"editor.smoothScrolling": true,
"editor.stickyTabStops": true,
"editor.suggest.preview": true,
"editor.suggest.shareSuggestSelections": true,
"editor.suggest.snippetsPreventQuickSuggestions": false,
"editor.suggestSelection": "first",
"editor.unfoldOnClickAfterEndOfLine": true,
"editor.unicodeHighlight.allowedLocales": {
"zh-hans": true,
"zh-hant": true
},
// language
"html.autoClosingTags": true,
"javascript.preferences.quoteStyle": "single",
"javascript.preferences.useAliasesForRenames": false,
"javascript.updateImportsOnFileMove.enabled": "always",
"typescript.preferences.quoteStyle": "single",
"typescript.preferences.useAliasesForRenames": false,
"typescript.tsserver.maxTsServerMemory": 8192,
"typescript.updateImportsOnFileMove.enabled": "always",
"files.associations": {
".env": "env",
"*.jsxinc": "javascript"
},
"vsicons.associations.files": [
{ "icon": "config", "extensions": ["env"], "format": "svg" }
],
"[javascript][javascriptreact][typescript][typescriptreact][vue][json][jsonc]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[html][css][less][scss][markdown][xml][yaml][svg]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
// terminal
"terminal.integrated.cursorBlinking": true,
"terminal.integrated.enableBell": true,
"terminal.integrated.fontFamily": "'MesloLGS NF', 'Monaco'",
"terminal.integrated.fontSize": 12,
// workbench
"workbench.editorAssociations": {
"*.png": "luna.editor",
"*.jpg": "luna.editor",
"*.jpeg": "luna.editor",
"*.ico": "luna.editor"
},
"workbench.editor.highlightModifiedTabs": true,
"workbench.editor.limit.enabled": true,
"workbench.editor.limit.perEditorGroup": true,
"workbench.editor.limit.value": 8,
"workbench.editor.scrollToSwitchTabs": true,
"workbench.list.smoothScrolling": true,
"workbench.startupEditor": "welcomePage",
"workbench.tree.indent": 14,
// extensions
"livePreview.openPreviewTarget": "External Browser",
"code-runner.executorMap": {
"typescript": "ts-node",
"cpp": "cd $dir && g++ $fileName -std=c++2a -Wall -o $fileNameWithoutExt && ./$fileNameWithoutExt",
"dart": "/Users/yutengjing/apps/flutter/latest/bin/dart run --enable-asserts $fullFileName"
},
"code-runner.showRunIconInEditorTitleMenu": false,
"code-runner.terminalRoot": "/",
"colorInfo.languages": [
{
"selector": "css",
"colors": "css"
},
{
"selector": "less",
"colors": "css"
},
{
"selector": "scss",
"colors": "css"
},
{
"selector": "vue",
"colors": "css"
}
],
"C_Cpp.addNodeAddonIncludePaths": true,
"C_Cpp.autocompleteAddParentheses": true,
"C_Cpp.clang_format_fallbackStyle": "{ BasedOnStyle: Chromium, IndentWidth: 2, ColumnLimit: 0 }",
"C_Cpp.default.cppStandard": "c++20",
"C_Cpp.default.cStandard": "c17",
"C_Cpp.experimentalFeatures": "Enabled",
"C_Cpp.intelliSenseCacheSize": 8192,
"C_Cpp.intelliSenseMemoryLimit": 8192,
"C_Cpp.intelliSenseUpdateDelay": 500,
"c-cpp-flylint.clang.enable": true,
"c-cpp-flylint.clang.standard": ["c++2a"],
"c-cpp-flylint.cppcheck.enable": false,
"c-cpp-flylint.flawfinder.enable": false,
"c-cpp-flylint.flexelint.enable": false,
"c-cpp-flylint.lizard.enable": false,
"c-cpp-flylint.pclintplus.enable": false,
"gitHistory.showEditorTitleMenuBarIcons": false,
"gitlens.codeLens.scopes": [],
"gitlens.currentLine.enabled": false,
"gitlens.statusBar.format": "${author}, ${agoOrDate} • ${message}",
"markdownlint.config": {
"default": true,
"MD033": false,
"MD041": false
},
"markdown-preview-github-styles.colorTheme": "light",
"npm.validate.enable": false,
"vsintellicode.modify.editor.suggestSelection": "automaticallyOverrodeDefaultValue",
"path-autocomplete.extensionOnImport": true,
"path-autocomplete.ignoredFilesPattern": "*.md",
"prettier.documentSelectors": ["**/*.svg"],
"redhat.telemetry.enabled": false,
"template-string-converter.validLanguages": [
"vue",
"typescript",
"javascript",
"typescriptreact",
"javascriptreact"
],
"template-string-converter.autoRemoveTemplateString": true,
"template-string-converter.quoteType": "single",
// https://github.com/Gruntfuggly/todo-tree/issues/255#issuecomment-574279033
"todo-tree.regex.regex": "(?:(?://|#|<!--|;|/\\*\\*?|\\*|(-|\\d+.))\\s*($TAGS))",
"todo-tree.filtering.useBuiltInExcludes": "file and search excludes",
"todo-tree.general.tags": ["TODO:", "FIXME:", "NOTE:", "[ ]", "[x]"],
"todo-tree.highlights.customHighlight": {
"TODO:": {
"foreground": "#ffffff",
"background": "#ffbd2a",
"iconColour": "#ffbd2a"
},
"FIXME:": {
"foreground": "#ffffff",
"background": "#f06292",
"icon": "flame",
"iconColour": "#f06292"
},
"NOTE:": {
"foreground": "#808080",
"background": "#ffff00",
"icon": "alert",
"iconColour": "#ffff00"
}
},
"todo-tree.highlights.defaultHighlight": {
"gutterIcon": false,
"rulerLane": "none"
},
"todo-tree.ripgrep.ripgrep": "/usr/local/bin/rg",
"tsImportSorter.configuration.autoFormat": "off",
"tsImportSorter.configuration.groupRules": [
["^[@][^/]", {}],
[
"^@(/|$)",
"^actions?(/|$)",
"^apis?(/|$)",
"^assets(/|$)",
"^components?(/|$)",
"^helpers?(/|$)",
"^pages?(/|$)",
"^sagas?(/|$)",
"^selectors?(/|$)",
"^reducers?(/|$)",
"^typings?(/|$)",
"^utils(/|$)"
],
{ "flags": "named", "regex": "^[.]" },
[
{ "flags": "scripts" },
{ "flags": "scripts", "regex": "[.]((css)|(less)|(scss))$" }
]
],
"tsImportSorter.configuration.keepUnused": [".*"],
"tsImportSorter.configuration.wrappingStyle": "prettier",
// long config
"cSpell.language": "en-US",
"cSpell.checkLimit": 888,
"cSpell.dictionaries": ["myDict"],
"cSpell.ignorePaths": [
"node_modules",
"vscode-extension",
".git/objects",
".idea",
".dart_tool",
"**/*.lock",
"**/*.log",
"package-lock.json",
"**/pnpm-lock.yaml"
],
"cSpell.languageSettings": [
{
"languageId": "dart",
"patterns": [
{
"name": "Dart-RegExp-String",
"pattern": "/\\br(['\"]).*?\\1/g"
}
],
"ignoreRegExpList": ["Dart-RegExp-String"]
}
],
"cSpell.dictionaryDefinitions": [
{ "name": "myDict", "path": "/Users/yutengjing/.my-spell-check-dict.txt" }
],
"cSpell.userWords": [],
"cSpell.enableFiletypes": [
"!asciidoc",
"!csharp",
"!graphql",
"!handlebars",
"!haskell",
"!jade",
"!latex",
"!plaintext",
"!pug",
"!restructuredtext",
"bat",
"cmake",
"cmake-cache",
"css",
"dart",
"diff",
"dotenv",
"env",
"git-rebase",
"gitignore",
"go",
"gradle",
"groovy",
"hosts",
"html",
"ignore",
"java",
"javascript",
"javascriptreact",
"json",
"jsonc",
"makefile",
"markdown",
"nginx",
"objective-c",
"objective-cpp",
"powershell",
"properties",
"python",
"scss",
"search-result",
"shellscript",
"sql",
"svg",
"swift",
"typescript",
"typescriptreact",
"vue",
"vue-html",
"wallaby-output",
"wasm",
"xml",
"yaml"
],
// depracated
// "colorize.colorized_colors": ["HEXA", "RGB"],
// "colorize.enable_search_variables": false,
// "colorize.languages": [
// "css",
// "scss",
// "less",
// "html",
// "svg",
// "javascript",
// "javascriptreact",
// "typescript",
// "typescriptreact",
// "vue",
// "jsonc"
// ],
// "emojisense.languages": {
// "markdown": true
// },
// "cssPeek.peekFromLanguages": [
// "html",
// "vue",
// "javascriptreact",
// "typescriptreact"
// ],
// "css.enabledLanguages": ["html", "vue"],
// "css.styleSheets": [
// "${fileBasenameNoExtension}.css",
// "${fileBasenameNoExtension}.less",
// "${fileBasenameNoExtension}.scss"
// ],
// "git-graph.showStatusBarItem": false,
// "dart.debugExternalLibraries": true,
// "dart.debugSdkLibraries": false,
// "dart.devToolsBrowser": "chrome",
// "dart.devToolsPort": 9100,
// "dart.devToolsTheme": "light",
// "dart.showDevToolsDebugToolBarButtons": false,
// "dart.showTodos": false,
// "dart.flutterSdkPaths": [
// "/Users/yutengjing/apps/flutter/1.22.4",
// "/Users/yutengjing/apps/flutter/2.2.0",
// "/Users/yutengjing/apps/flutter/latest"
// ],
// "dart.env": {
// "http_proxy": "http://127.0.0.1:7890",
// "http_proxys": "http://127.0.0.1:7890"
// },
// often change
"workbench.iconTheme": "vscode-icons",
"window.zoomLevel": 2,
"editor.inlineSuggest.enabled": true,
"workbench.colorTheme": "One Dark Pro",
"sync.gist": "daa6317cf80ab5f467c50b2693527875"
}
{
// Place your global snippets here. Each snippet is defined under a snippet name and has a scope, prefix, body and
// description. Add comma separated ids of the languages where the snippet is applicable in the scope field. If scope
// is left empty or omitted, the snippet gets applied to all languages. The prefix is what is
// used to trigger the snippet and the body will be expanded and inserted. Possible variables are:
// $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders.
// Placeholders with the same ids are connected.
"section comment": {
"scope": "javascript,typescript,go,rust",
"prefix": "sc",
"body": ["// ------------------------ $1 -----------------------------"],
"description": "using single line comment with long dash to seperate the code section"
},
"example comment": {
"scope": "javascript,typescript",
"prefix": "ei",
"body": ["Input: $1", "* Output: $2"],
"description": "input/output example in comment"
},
"type doc comment": {
"scope": "javascript,typescript,javascriptreact,typescriptreact",
"prefix": "@type",
"body": ["/** @type {$1} */"],
"description": "type doc comment"
},
"extendscript include comment": {
"scope": "javascript",
"prefix": "@inc",
"body": ["// @include '$1'$0"],
"description": "extendscript include comment"
},
"Println variable": {
"scope": "rust",
"prefix": "plv",
"body": "println!(\"{}\", $1);$0",
"description": "Println variable"
}
}
{
// Place your snippets for javascript here. Each snippet is defined under a snippet name and has a prefix, body and
// description. The prefix is what is used to trigger the snippet and the body will be expanded and inserted. Possible variables are:
// $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders. Placeholders with the
// same ids are connected.
// Example:
// "Print to console": {
// "prefix": "log",
// "body": [
// "console.log('$1');",
// "$2"
// ],
// "description": "Log output to console"
// }
}
{"version":5,"content":"[{\"identifier\":{\"id\":\"vscode.bat\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.clojure\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.coffeescript\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.configuration-editing\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.cpp\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.csharp\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.css\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.css-language-features\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.dart\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.debug-auto-launch\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.debug-server-ready\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.diff\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.docker\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.emmet\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.extension-editing\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.fsharp\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.git\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.git-base\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.github\"},\"preRelease\":false,\"version\":\"0.0.1\"},{\"identifier\":{\"id\":\"vscode.github-authentication\"},\"preRelease\":false,\"version\":\"0.0.2\"},{\"identifier\":{\"id\":\"vscode.go\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.groovy\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.grunt\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.gulp\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.handlebars\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.hlsl\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.html\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.html-language-features\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.image-preview\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.ini\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.ipynb\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.jake\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.java\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.javascript\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.json\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.json-language-features\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.julia\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.latex\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.less\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.log\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.lua\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.make\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.markdown\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.markdown-language-features\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.markdown-math\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.merge-conflict\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.microsoft-authentication\"},\"preRelease\":false,\"version\":\"0.0.1\"},{\"identifier\":{\"id\":\"vscode.npm\"},\"preRelease\":false,\"version\":\"1.0.1\"},{\"identifier\":{\"id\":\"vscode.objective-c\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.perl\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.php\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.php-language-features\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.powershell\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.pug\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.python\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.r\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.razor\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.ruby\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.rust\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.scss\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.search-result\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.shaderlab\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.shellscript\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.simple-browser\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.sql\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.swift\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.theme-abyss\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.theme-defaults\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.theme-kimbie-dark\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.theme-monokai\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.theme-monokai-dimmed\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.theme-quietlight\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.theme-red\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.theme-solarized-dark\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.theme-solarized-light\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.theme-tomorrow-night-blue\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.typescript\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.typescript-language-features\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.vb\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.vscode-theme-seti\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.xml\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"vscode.yaml\"},\"preRelease\":false,\"version\":\"1.0.0\"},{\"identifier\":{\"id\":\"ms-vscode.js-debug\",\"uuid\":\"25629058-ddac-4e17-abba-74678e126c5d\"},\"preRelease\":false,\"version\":\"1.62.0\"},{\"identifier\":{\"id\":\"ms-vscode.js-debug-companion\",\"uuid\":\"99cb0b7f-7354-4278-b8da-6cc79972169d\"},\"preRelease\":false,\"version\":\"1.0.15\"},{\"identifier\":{\"id\":\"ms-vscode.references-view\",\"uuid\":\"dc489f46-520d-4556-ae85-1f9eab3c412d\"},\"preRelease\":false,\"version\":\"0.0.81\"},{\"identifier\":{\"id\":\"ms-vscode.vscode-js-profile-table\",\"uuid\":\"7e52b41b-71ad-457b-ab7e-0620f1fc4feb\"},\"preRelease\":false,\"version\":\"0.0.18\"}]"}
{"ref":"9107e755-3abe-4a75-b349-c6bea291675d","content":"{\"version\":5,\"machineId\":\"025a59c1-fe60-483c-af06-6d987d35e986\",\"content\":\"[{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.bat\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.clojure\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.coffeescript\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.configuration-editing\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.cpp\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.csharp\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.css\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.css-language-features\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.dart\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.debug-auto-launch\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.debug-server-ready\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.docker\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.emmet\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.extension-editing\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.fsharp\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.git\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.github\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"0.0.1\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.github-authentication\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"0.0.2\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.go\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.groovy\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.grunt\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.gulp\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.handlebars\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.hlsl\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.html\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.html-language-features\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.image-preview\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.ini\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.jake\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.java\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.javascript\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.json\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.json-language-features\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.julia\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.less\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.log\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.lua\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.make\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.markdown\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.markdown-language-features\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.merge-conflict\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.microsoft-authentication\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"0.0.1\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.notebook-markdown-extensions\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.npm\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.1\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.objective-c\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.perl\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.php\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.php-language-features\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.powershell\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.pug\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.python\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.r\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.razor\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.ruby\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.rust\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.scss\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.search-result\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.shaderlab\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.shellscript\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.simple-browser\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.sql\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.swift\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.testing-editor-contributions\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.theme-abyss\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.theme-defaults\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.theme-kimbie-dark\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.theme-monokai\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.theme-monokai-dimmed\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.theme-quietlight\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.theme-red\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.theme-solarized-dark\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.theme-solarized-light\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.theme-tomorrow-night-blue\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.typescript\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.typescript-language-features\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.vb\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.vscode-theme-seti\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.xml\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.yaml\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"aaron-bond.better-comments\\\",\\\"uuid\\\":\\\"7a0110bb-231a-4598-aa1b-0769ea46d28b\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"2.1.0\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"adam-bender.commit-message-editor\\\",\\\"uuid\\\":\\\"b9883563-e6ba-4f6c-b03c-193c80e79c75\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"0.19.7\\\",\\\"disabled\\\":true,\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"bierner.color-info\\\",\\\"uuid\\\":\\\"0f8bd812-5d52-4fff-bd1c-6b0a7ee9cad9\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"0.7.0\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"bierner.gif-player\\\",\\\"uuid\\\":\\\"ff3e8d46-6684-4d74-b098-c320411e0949\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"0.0.2\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"bierner.jsdoc-markdown-highlighting\\\",\\\"uuid\\\":\\\"a7b993a8-0c1c-44cc-816d-c0b87cf96290\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"0.0.1\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"bodil.file-browser\\\",\\\"uuid\\\":\\\"97a82b1e-e6f7-4519-b1fc-f6be103e3824\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"0.2.10\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"chrisdias.vscode-opennewinstance\\\",\\\"uuid\\\":\\\"d1232d17-9a0f-4fda-9cf0-e4bf18d567ae\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"0.0.12\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"codezombiech.gitignore\\\",\\\"uuid\\\":\\\"3e891cf9-53cb-49a3-8d01-8f0b1f0afb29\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"0.7.0\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"davidanson.vscode-markdownlint\\\",\\\"uuid\\\":\\\"daf8b44d-8aae-4da2-80c5-1f770219f643\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"0.45.0\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"donjayamanne.githistory\\\",\\\"uuid\\\":\\\"5960f38e-0bbe-4644-8f9c-9c8824e82511\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"0.6.19\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"dtsvet.vscode-wasm\\\",\\\"uuid\\\":\\\"ccdc6b78-b9ca-4057-99b2-6f3449c9509d\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.3.1\\\",\\\"disabled\\\":true,\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"dzhavat.css-initial-value\\\",\\\"uuid\\\":\\\"8c2377ea-596d-46c3-92fa-1c5b66bb9d1c\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"0.2.5\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"eamodio.gitlens-insiders\\\",\\\"uuid\\\":\\\"b17b0387-ccfb-44a8-b75b-3b1f925bf2f6\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"2022.2.1304\\\",\\\"installed\\\":true,\\\"state\\\":{\\\"gitlens:views:welcome:visible\\\":false,\\\"gitlens:synced:version\\\":\\\"2022.2.1304\\\"}},{\\\"identifier\\\":{\\\"id\\\":\\\"ecmel.vscode-html-css\\\",\\\"uuid\\\":\\\"aaee577c-f062-495a-9816-0cbd442f1d25\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.10.2\\\",\\\"disabled\\\":true,\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"eg2.vscode-npm-script\\\",\\\"uuid\\\":\\\"ae9e3eb0-3357-4cc0-90ee-598d2d384757\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"0.3.23\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"esbenp.prettier-vscode\\\",\\\"uuid\\\":\\\"96fa4707-6983-4489-b7c5-d5ffdfdcce90\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"9.2.0\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"formulahendry.code-runner\\\",\\\"uuid\\\":\\\"a6a0c5b2-d078-4bf5-a9ee-4e37054414b3\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"0.11.6\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"foxundermoon.shell-format\\\",\\\"uuid\\\":\\\"5fb19573-2183-4cf2-b53d-0fb869dae7ae\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"7.2.2\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"gruntfuggly.todo-tree\\\",\\\"uuid\\\":\\\"261cac81-cd7b-4555-bb41-0c2d2bcd3e70\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"0.0.215\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"irongeek.vscode-env\\\",\\\"uuid\\\":\\\"2fd1d28f-fc2a-4582-8788-2f01febe43a6\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"0.1.0\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"jakearl.search-editor-apply-changes\\\",\\\"uuid\\\":\\\"a85a8ec7-f543-4625-8da7-d21ac04487a0\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"0.1.1\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"jjaakko.markdown-kbd\\\",\\\"uuid\\\":\\\"0ca65281-8ee3-4a0a-a556-bb58556bfbbc\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"0.4.2\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"jock.svg\\\",\\\"uuid\\\":\\\"4ae6dc82-7981-4f10-bd81-2d72aec37f39\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.4.15\\\",\\\"disabled\\\":true,\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"kamikillerto.vscode-colorize\\\",\\\"uuid\\\":\\\"445ba381-f232-4150-9056-d790bd76d698\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"0.11.1\\\",\\\"disabled\\\":true,\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"kisstkondoros.vscode-gutter-preview\\\",\\\"uuid\\\":\\\"eedfd044-d5ac-4389-973d-3ac1fdb98ad5\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"0.30.0\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"meganrogge.template-string-converter\\\",\\\"uuid\\\":\\\"e56ae0dc-ddd7-462a-872d-6d14ea27f737\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"0.5.5\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"mhutchie.git-graph\\\",\\\"uuid\\\":\\\"438221f8-1107-4ccd-a6fe-f3b7fe0856b7\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.30.0\\\",\\\"disabled\\\":true,\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"mkxml.vscode-filesize\\\",\\\"uuid\\\":\\\"21b3e09e-b3f7-4e20-9302-50039286650d\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"3.1.0\\\",\\\"disabled\\\":true,\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"ms-vscode.hexeditor\\\",\\\"uuid\\\":\\\"cc7d2112-5178-4472-8e0e-25dced95e7f0\\\"},\\\"preRelease\\\":true,\\\"version\\\":\\\"1.9.2\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"ms-vscode.js-debug\\\",\\\"uuid\\\":\\\"25629058-ddac-4e17-abba-74678e126c5d\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.62.0\\\",\\\"disabled\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"ms-vscode.js-debug-companion\\\",\\\"uuid\\\":\\\"99cb0b7f-7354-4278-b8da-6cc79972169d\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.15\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"ms-vscode.node-debug\\\",\\\"uuid\\\":\\\"b6ded8fb-a0a0-4c1c-acbd-ab2a3bc995a6\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.44.28\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"ms-vscode.node-debug2\\\",\\\"uuid\\\":\\\"36d19e17-7569-4841-a001-947eb18602b2\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.42.7\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"ms-vscode.references-view\\\",\\\"uuid\\\":\\\"dc489f46-520d-4556-ae85-1f9eab3c412d\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"0.0.81\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"ms-vscode.vscode-js-profile-flame\\\",\\\"uuid\\\":\\\"76169c6c-5d43-4560-93d8-95e15125880d\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"0.0.21\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"ms-vscode.vscode-js-profile-table\\\",\\\"uuid\\\":\\\"7e52b41b-71ad-457b-ab7e-0620f1fc4feb\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"0.0.18\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"ms-vscode.vscode-typescript-next\\\",\\\"uuid\\\":\\\"15305aca-2588-4ca0-8147-ab2c64730b82\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"4.6.20211124\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"pflannery.vscode-versionlens\\\",\\\"uuid\\\":\\\"07fc4a0a-11fc-4121-ba9a-f0d534c729d8\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.9\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"pomber.git-file-history\\\",\\\"uuid\\\":\\\"7632e3e0-7d47-4be3-a5e3-a5873293f815\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.1\\\",\\\"disabled\\\":true,\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"pranaygp.vscode-css-peek\\\",\\\"uuid\\\":\\\"0b8f8d63-11a2-4194-969c-ca7488b3413a\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"4.2.0\\\",\\\"disabled\\\":true,\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"qcz.text-power-tools\\\",\\\"uuid\\\":\\\"f05d5b1a-dd2d-4d27-bfd6-e3cff922bd7e\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.30.0\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"redhat.vscode-yaml\\\",\\\"uuid\\\":\\\"2061917f-f76a-458a-8da9-f162de22b97e\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.2.1\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"robole.snippets-ranger\\\",\\\"uuid\\\":\\\"5c3e68a9-0b7e-498f-afed-ed1e0babc5ff\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"0.20.2\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"ryu1kn.partial-diff\\\",\\\"uuid\\\":\\\"79afa437-682e-4fa2-a4fd-87844832a1dc\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.4.3\\\",\\\"disabled\\\":true,\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"sleistner.vscode-fileutils\\\",\\\"uuid\\\":\\\"d637104e-1fd7-4063-98fc-8afe46012c9b\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"3.4.5\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"streetsidesoftware.code-spell-checker\\\",\\\"uuid\\\":\\\"f6dbd813-b0a0-42c1-90ea-10dde9d925a7\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"2.1.5\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"stylelint.vscode-stylelint\\\",\\\"uuid\\\":\\\"ec35b5a3-9802-4c68-b5ff-e85f19ec0977\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.2.1\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"thzt.vscode-ast\\\",\\\"uuid\\\":\\\"51dbf43f-0450-4ea4-97ae-486932828d11\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.9\\\",\\\"disabled\\\":true,\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"tyriar.luna-paint\\\",\\\"uuid\\\":\\\"4358224d-f1ef-4635-a14b-a2f784a06e3d\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"0.11.0\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"uctakeoff.vscode-counter\\\",\\\"uuid\\\":\\\"7789bd61-a874-4bf0-a8b4-d9e8d920af63\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"2.3.0\\\",\\\"disabled\\\":true,\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode-icons-team.vscode-icons\\\",\\\"uuid\\\":\\\"9ccc1dd7-7ec4-4a46-bd4f-7d7b8b9d322a\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"11.7.0\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"wallabyjs.quokka-vscode\\\",\\\"uuid\\\":\\\"aae0701b-111f-49c1-9000-abd37a442f28\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.426\\\",\\\"disabled\\\":true,\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"yutengjing.open-in-external-app\\\",\\\"uuid\\\":\\\"42a19d78-8550-49db-958b-561a7bfdee7d\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"0.3.1\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"yutengjing.view-github-repository\\\",\\\"uuid\\\":\\\"53585df3-9072-4bf2-b3b0-3ece63256d0b\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.11\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"yzhang.markdown-all-in-one\\\",\\\"uuid\\\":\\\"98790d67-10fa-497c-9113-f6c7489207b2\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"3.4.0\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"zenghongtu.vscode-asciiflow2\\\",\\\"uuid\\\":\\\"780d2a61-3b2b-4c65-8f2a-36d445306c71\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"0.2.0\\\",\\\"disabled\\\":true,\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"zhaouv.vscode-markdown-draw\\\",\\\"uuid\\\":\\\"8bfcd53f-6afd-41c4-aff0-0c0ef2cdfd58\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"0.1.4\\\",\\\"disabled\\\":true,\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.markdown-math\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"dozerg.tsimportsorter\\\",\\\"uuid\\\":\\\"e2bd68c2-cbc7-4318-ba99-0af8c7fe9e11\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"7.4.1\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"ms-vscode.live-server\\\",\\\"uuid\\\":\\\"4eae7368-ec63-429d-8449-57a7df5e2117\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"0.2.9\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"johnsoncodehk.volar\\\",\\\"uuid\\\":\\\"a5223b43-8621-4351-a14e-3d560f85f277\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"0.31.2\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"ctcuff.font-preview\\\",\\\"uuid\\\":\\\"89d4a1d0-a567-4ed7-9f81-a03ab672d713\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.2.2\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"hediet.debug-visualizer\\\",\\\"uuid\\\":\\\"bce78737-8848-49f7-a27d-97004928fe41\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"2.2.4\\\",\\\"disabled\\\":true,\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"hediet.delorean-js-debug\\\",\\\"uuid\\\":\\\"bd94de2e-8ada-4303-8886-cb26c93915e2\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"0.1.9\\\",\\\"disabled\\\":true,\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.ipynb\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"medo64.render-crlf\\\",\\\"uuid\\\":\\\"a5d8b25c-27b8-421d-a8b0-1681827909b9\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.5.25\\\",\\\"disabled\\\":true,\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"bierner.emojisense\\\",\\\"uuid\\\":\\\"081cd2e9-bc51-4ea3-977e-544bed2e33a8\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"0.9.0\\\",\\\"disabled\\\":true,\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"ms-vscode-remote.remote-wsl-recommender\\\",\\\"uuid\\\":\\\"cb296d3c-017a-4dee-83af-ebb5a5a16e9a\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"0.0.11\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"redhat.vscode-xml\\\",\\\"uuid\\\":\\\"6703768d-d42f-474e-9f6e-5f288d53f6e8\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"0.18.1\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"nicoespeon.abracadabra\\\",\\\"uuid\\\":\\\"0bfc03aa-70fb-4740-82a7-ca1043260d88\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"6.8.0\\\",\\\"disabled\\\":true,\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"rendertom.adobe-script-runner\\\",\\\"uuid\\\":\\\"02a1e3ce-aa11-4f22-8b50-8909d9e55678\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"0.5.0\\\",\\\"disabled\\\":true,\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"l13rary.l13-diff\\\",\\\"uuid\\\":\\\"2cb78115-e6f0-4ad3-9626-650536f897a0\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.3\\\",\\\"disabled\\\":true,\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"johnsoncodehk.vscode-typescript-vue-plugin\\\",\\\"uuid\\\":\\\"78d16c76-388b-44e4-8470-6790d6c3d2d1\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"0.31.2\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"chekweitan.compare-view\\\",\\\"uuid\\\":\\\"1e3d51a2-1c9e-4fc4-aa60-9a8be8f01e7f\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"0.6.0\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"adobe.extendscript-debug\\\",\\\"uuid\\\":\\\"d4e87851-cd2d-44fa-b0b9-606bfe58309c\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.1.2\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"idered.npm\\\",\\\"uuid\\\":\\\"8ccfd385-8bd1-48a1-b024-1595802154fd\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"0.5.2\\\",\\\"disabled\\\":true,\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"miguelsolorio.min-theme\\\",\\\"uuid\\\":\\\"e9e7f567-5669-4c9c-a2db-df05d6cf28ed\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.5.0\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"zhuangtongfa.material-theme\\\",\\\"uuid\\\":\\\"26a529c9-2654-4b95-a63f-02f6a52429e6\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"3.13.3\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"amodio.tsl-problem-matcher\\\",\\\"uuid\\\":\\\"91954a63-baf9-4e93-a97c-7798c45ca9f7\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"0.5.0\\\",\\\"disabled\\\":true,\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.diff\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"mulu-github.jsflowchart\\\",\\\"uuid\\\":\\\"06b91dd0-c1bc-4d50-9404-dc26d6967ba1\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"0.1.6\\\",\\\"disabled\\\":true,\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"ms-vscode.js-debug-nightly\\\",\\\"uuid\\\":\\\"7acbb4ce-c85a-49d4-8d95-a8054406ae97\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"2021.11.1217\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"github.copilot-nightly\\\",\\\"uuid\\\":\\\"c2321d37-f89d-47b1-92b5-9db847d8f654\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.7.5015\\\",\\\"disabled\\\":true,\\\"installed\\\":true,\\\"state\\\":{\\\"github.copilot.telemetryAccepted.2021-10-14\\\":\\\"tjx666\\\"}},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.git-base\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"tldraw-org.tldraw-vscode\\\",\\\"uuid\\\":\\\"c8132309-be84-4ae3-afa5-c6a8bc824611\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.1.2\\\",\\\"disabled\\\":true,\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"asurance.vscode-sound-player\\\",\\\"uuid\\\":\\\"96a8a7c1-081c-4f43-85a2-7b5bf708ea5d\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"0.0.3\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"spades.vs-picgo\\\",\\\"uuid\\\":\\\"a8c6502d-fef3-4642-9171-e483ca80dfe9\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"2.1.6\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"yutengjing.vscode-fe-helper\\\",\\\"uuid\\\":\\\"353ab467-c4a7-4d6c-9de6-2244f600eebd\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"0.1.4\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"matklad.rust-analyzer\\\",\\\"uuid\\\":\\\"06574cb4-e5dc-4631-8174-a543a4533621\\\"},\\\"preRelease\\\":true,\\\"version\\\":\\\"0.3.931\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"tamasfe.even-better-toml\\\",\\\"uuid\\\":\\\"b2215d5f-675e-4a2b-b6ac-1ca737518b78\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"0.14.2\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"serayuzgur.crates\\\",\\\"uuid\\\":\\\"6a95a3fd-3a5d-4326-b8ab-1b1653b1f183\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"0.5.10\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.latex\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"connor4312.esbuild-problem-matchers\\\",\\\"uuid\\\":\\\"51d2c32a-22da-4506-b800-5ab8805f79e1\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"0.0.2\\\",\\\"disabled\\\":true,\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"ionutvmi.path-autocomplete\\\",\\\"uuid\\\":\\\"0d1241e3-fa60-4f24-8f2a-6d7085677c48\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.18.0\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"yutengjing.adobe-extension-devtools\\\",\\\"uuid\\\":\\\"cef2995f-cde2-4ee7-97cd-84346e546565\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"0.0.1\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"bierner.speech\\\",\\\"uuid\\\":\\\"39c59b25-e0a9-4b81-b620-7809ed7c3a02\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"0.1.0\\\",\\\"disabled\\\":true,\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"dzhavat.css-flexbox-cheatsheet\\\",\\\"uuid\\\":\\\"5f70f405-914a-43f6-b8ff-740495ee6b34\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"3.3.1\\\",\\\"disabled\\\":true,\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"bierner.comment-tagged-templates\\\",\\\"uuid\\\":\\\"700f8472-f3c3-4f26-9fef-c6ad8e5fafe8\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"0.3.1\\\",\\\"disabled\\\":true,\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"kisstkondoros.csstriggers\\\",\\\"uuid\\\":\\\"30f54a6e-00bb-4beb-bb98-ca3a3f7af460\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"0.14.0\\\",\\\"disabled\\\":true,\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"joaomoreno.javascript-notebooks\\\",\\\"uuid\\\":\\\"6730a2ea-ac32-4fb9-8e80-ef11ca094459\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"0.0.2\\\",\\\"disabled\\\":true,\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"bierner.github-markdown-preview\\\",\\\"uuid\\\":\\\"9f5a5fc9-8b23-4484-85c4-1438b82d8634\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"0.1.0\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"bierner.markdown-checkbox\\\",\\\"uuid\\\":\\\"b0db4123-c5d9-4f45-bd2e-70738ebbb304\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"0.3.2\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"bierner.markdown-emoji\\\",\\\"uuid\\\":\\\"f595c9c1-28b5-415e-a55f-2deb4a8c3abd\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"0.2.1\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"bierner.markdown-preview-github-styles\\\",\\\"uuid\\\":\\\"5cbdf58a-694a-4aba-af08-61d00842eb03\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"bierner.markdown-yaml-preamble\\\",\\\"uuid\\\":\\\"b872af63-f9e1-438e-9462-0315abe9d3aa\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"0.1.0\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"hediet.realtime-debugging\\\",\\\"uuid\\\":\\\"bbde1141-588d-44ae-a3a8-393d3a3a4826\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"0.1.0\\\",\\\"disabled\\\":true,\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"yutengjing.ytj-snippets\\\",\\\"uuid\\\":\\\"324ade6b-a934-457b-9730-a6056bcdef41\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"0.0.1\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"yutengjing.vscode-archive\\\",\\\"uuid\\\":\\\"29dad39d-46c6-45af-870f-7c9da1a1aace\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"0.0.1\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"visualstudioexptteam.vscodeintellicode\\\",\\\"uuid\\\":\\\"876e8f93-74d0-4f4f-91b7-34a09f19f444\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.2.16\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"dbaeumer.vscode-eslint\\\",\\\"uuid\\\":\\\"583b2b34-2c1e-4634-8c0b-0b82e283ea3a\\\"},\\\"preRelease\\\":true,\\\"version\\\":\\\"2.2.3\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"capybara1.vscode-url-title-resolver\\\",\\\"uuid\\\":\\\"7faa914a-f674-482e-a631-c56cc96d1210\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.1.1\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"jeff-hykin.better-cpp-syntax\\\",\\\"uuid\\\":\\\"73767f91-7dcb-43cb-90b3-596d073eea1f\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.15.11\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"ms-vscode.cpptools\\\",\\\"uuid\\\":\\\"690b692e-e8a9-493f-b802-8089d50ac1b2\\\"},\\\"preRelease\\\":true,\\\"version\\\":\\\"1.8.3\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"jbenden.c-cpp-flylint\\\",\\\"uuid\\\":\\\"398cca50-8c14-40d0-98b5-7b362a661b18\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.11.0\\\",\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"vscode.builtin-notebook-renderers\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"1.0.0\\\"},{\\\"identifier\\\":{\\\"id\\\":\\\"sourcegraph.sourcegraph\\\",\\\"uuid\\\":\\\"6faf9533-e655-435d-8157-13d5e285d271\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"2.0.6\\\",\\\"disabled\\\":true,\\\"installed\\\":true},{\\\"identifier\\\":{\\\"id\\\":\\\"shan.code-settings-sync\\\",\\\"uuid\\\":\\\"e337c67b-55c2-4fef-8949-eb260e7fb7fd\\\"},\\\"preRelease\\\":false,\\\"version\\\":\\\"3.4.3\\\",\\\"installed\\\":true}]\"}","skippedExtensions":[]}
{"ref":"fd437929-f390-47ea-81e8-c2ad1adc9e95","content":"{\"version\":2,\"machineId\":\"025a59c1-fe60-483c-af06-6d987d35e986\",\"content\":\"{\\\"mac\\\":\\\"[\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"shift+cmd+a\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"workbench.action.toggleActivityBarVisibility\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+cmd+b\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"workbench.action.toggleStatusbarVisibility\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"ctrl+space\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-editor.action.triggerSuggest\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorHasCompletionItemProvider && textInputFocus && !editorReadonly\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+.\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"editor.action.triggerSuggest\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorHasCompletionItemProvider && textInputFocus && !editorReadonly\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+r\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"workbench.action.reloadWindow\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"!filesExplorerFocus && !inDebugMode\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"ctrl+alt+s\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"code-runner.stop\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"shift+cmd+k\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"workbench.action.terminal.clear\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"terminalFocus && terminalProcessSupported\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"shift+cmd+k\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"workbench.output.action.clearOutput\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"focusedView == 'workbench.panel.output'\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+right\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"workbench.action.terminal.focusNextPane\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"terminalFocus && terminalProcessSupported\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+left\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"workbench.action.terminal.focusPreviousPane\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"terminalFocus && terminalProcessSupported\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+k\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"workbench.action.terminal.focusNext\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"terminalFocus && terminalProcessSupported\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+j\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"workbench.action.terminal.focusPrevious\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"terminalFocus && terminalProcessSupported\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+down\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"workbench.action.terminal.scrollToNextCommand\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"terminalFocus && terminalProcessSupported && !accessibilityModeEnabled\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+up\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"workbench.action.terminal.scrollToPreviousCommand\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"terminalFocus && terminalProcessSupported && !accessibilityModeEnabled\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"shift+cmd+r\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"git.clean\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"textInputFocus && !editorReadonly\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"shift+cmd+j\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"workbench.action.terminal.new\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"!inSearchEditor && !searchViewletFocus\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+.\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"editor.action.quickFix\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorHasCodeActionsProvider && editorTextFocus && !editorReadonly\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+o\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"file-browser.open\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"!filesExplorerFocus && !terminalFocus\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+m\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"workbench.action.toggleMaximizedPanel\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"panelFocus\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+w\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"workbench.action.terminal.kill\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"terminalFocus\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+r\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"workbench.action.debug.restart\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"!filesExplorerFocus && inDebugMode\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+t\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"terminal.focus\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+cmd+r\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"editor.action.refactor\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorHasCodeActionsProvider && editorTextFocus && !editorReadonly\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"shift+enter\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"markdown-preview-enhanced.runCodeChunk\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorTextFocus && editorLangId == 'markdown'\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"shift+cmd+,\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"workbench.action.openSettingsJson\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+p\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"editor.action.marker.next\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorFocus\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"shift+alt+p\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"editor.action.marker.prev\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorFocus\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"shift+cmd+0\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"workbench.files.action.collapseExplorerFolders\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"shift+cmd+g\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"workbench.view.scm\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"workbench.scm.active\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"ctrl+shift+t\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"workbench.view.extension.todo-tree-container\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+k cmd+r\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"git.revertSelectedRanges\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorTextFocus || isInDiffEditor\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+r\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"workbench.files.action.refreshFilesExplorer\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"filesExplorerFocus \\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+e\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"workbench.action.navigateToLastEditLocation\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+b\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"editor.action.jumpToBracket\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorTextFocus\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"shift+alt+b\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"editor.action.selectToBracket\\\\\\\"\\\\n },\\\\n\\\\n\\\\n // 删除\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+escape\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-editor.action.triggerSuggest\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorHasCompletionItemProvider && textInputFocus && !editorReadonly\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+l cmd+o\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-extension.liveServer.goOnline\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorTextFocus\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+l cmd+c\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-extension.liveServer.goOffline\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorTextFocus\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+r r\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-npm-script.rerun-last-script\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"!terminalFocus\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+r shift+r\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-npm-script.run\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"!terminalFocus\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+r t\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-npm-script.test\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"!terminalFocus\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+r l\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-npm-script.showOutput\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"!terminalFocus\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+r shift+x\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-npm-script.terminate-script\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"!terminalFocus\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+r\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-workbench.action.reloadWindow\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"isDevelopment\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"ctrl+alt+m\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-code-runner.stop\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"ctrl+alt+k\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-code-runner.runCustomCommand\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+k\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-workbench.action.terminal.clear\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"terminalFocus && terminalProcessSupported\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"ctrl+shift+5\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-workbench.action.terminal.split\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"terminalFocus && terminalProcessSupported\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+cmd+down\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-workbench.action.terminal.focusNextPane\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"terminalFocus && terminalProcessSupported\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+cmd+left\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-workbench.action.terminal.focusPreviousPane\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"terminalFocus && terminalProcessSupported\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+cmd+up\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-workbench.action.terminal.focusPreviousPane\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"terminalFocus && terminalProcessSupported\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+cmd+right\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-workbench.action.terminal.focusNextPane\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"terminalFocus && terminalProcessSupported\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+down\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-workbench.action.terminal.scrollToNextCommand\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"terminalFocus && terminalProcessSupported && !accessibilityModeEnabled\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+up\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-workbench.action.terminal.scrollToPreviousCommand\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"terminalFocus && terminalProcessSupported && !accessibilityModeEnabled\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+.\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-editor.action.quickFix\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorHasCodeActionsProvider && editorTextFocus && !editorReadonly\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"ctrl+shift+`\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-workbench.action.terminal.new\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+t\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-C_Cpp.SwitchHeaderSource\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorTextFocus && editorLangId == 'c'\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+o\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-C_Cpp.SwitchHeaderSource\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorTextFocus && editorLangId == 'cpp'\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"shift+cmd+f5\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-workbench.action.debug.restart\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"inDebugMode\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"shift+cmd+c\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-workbench.action.terminal.openNativeConsole\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"!terminalFocus\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"ctrl+shift+r\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-editor.action.refactor\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorHasCodeActionsProvider && editorTextFocus && !editorReadonly\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+k cmd+q\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-workbench.action.navigateToLastEditLocation\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"shift+alt+f5\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-workbench.action.editor.previousChange\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorTextFocus\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+f5\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-workbench.action.editor.nextChange\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorTextFocus\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+l cmd+l\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-l13Diff.show\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+l cmd+o\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-l13Diff.showOutput\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+l cmd+f\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-workbench.view.extension.l13Diff\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"shift+enter\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-markdown-preview-enhanced.runCodeChunk\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorLangId == 'markdown'\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"ctrl+shift+cmd+right\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-editor.action.smartSelect.expand\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorTextFocus\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"shift+cmd+,\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-editor.action.inPlaceReplace.up\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorTextFocus && !editorReadonly\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+f8\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-editor.action.marker.next\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorFocus\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"shift+alt+f8\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-editor.action.marker.prev\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorFocus\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"ctrl+shift+g\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-workbench.view.scm\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"workbench.scm.active\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+k cmd+r\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-workbench.action.keybindingsReference\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+k cmd+r\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-git.revertSelectedRanges\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"isInDiffEditor\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"ctrl+space\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-toggleSuggestionDetails\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"suggestWidgetVisible && textInputFocus\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+e\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-actions.findWithSelection\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+l\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"references-view.next\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"reference-list.hasResult && references-view.canNavigate\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"f4\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-references-view.next\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"reference-list.hasResult && references-view.canNavigate\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+b\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-gitlens.toggleFileBlame\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorTextFocus && config.gitlens.keymap == 'alternate' && gitlens:activeFileStatus =~ /blameable/\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"shift+alt+b\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-gitlens.toggleCodeLens\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorTextFocus && !gitlens:disabled && !gitlens:disabledToggleCodeLens && config.gitlens.keymap == 'alternate'\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+r\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-adobeScriptRunner.ae\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorTextFocus\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"shift+enter\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-acceptAlternativeSelectedSuggestion\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"suggestWidgetVisible && textInputFocus\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"shift+cmd+\\\\\\\\\\\\\\\\\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-editor.action.jumpToBracket\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorTextFocus\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+cmd+i\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"workbench.action.toggleDevTools\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+cmd+i\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-workbench.action.toggleDevTools\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"isDevelopment\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+k\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"workbench.action.editor.nextChange\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorTextFocus && !textCompareEditorActive\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+f5\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-workbench.action.editor.nextChange\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorTextFocus && !textCompareEditorActive\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+j\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"workbench.action.editor.previousChange\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorTextFocus && !textCompareEditorActive\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"shift+alt+f5\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-workbench.action.editor.previousChange\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorTextFocus && !textCompareEditorActive\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+k d\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"gitlens.diffWithPrevious\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorTextFocus && !isInDiffEditor && gitlens:activeFileStatus =~ /tracked/\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+,\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-gitlens.diffWithPrevious\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorTextFocus && !isInDiffEditor && config.gitlens.keymap == 'alternate' && gitlens:activeFileStatus =~ /tracked/\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+k cmd+p\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"gitlens.gitCommands\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"!gitlens:disabled\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+/\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-gitlens.gitCommands\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"!gitlens:disabled && config.gitlens.keymap == 'alternate'\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+k d\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-workbench.files.action.compareWithSaved\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+f\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"editor.action.fixAll\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+a\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"editor.action.sourceAction\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"shift+cmd+g\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-extension.extendscript-debug.selectActiveEngine\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+d\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"editor.action.moveSelectionToNextFindMatch\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorFocus\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+k cmd+d\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-editor.action.moveSelectionToNextFindMatch\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorFocus\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+m\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-markdown.extension.editing.toggleMath\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorTextFocus && !editorReadonly && editorLangId == 'markdown'\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+m\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"workbench.action.minimizeOtherEditors\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorTextFocus && !editorReadonly\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"ctrl+shift+g\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-workbench.view.scm\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"workbench.scm.active && !gitlens:disabled && config.gitlens.keymap == 'chorded'\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"shift+cmd+g\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-editor.action.previousMatchFindAction\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorFocus\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+g\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-editor.action.nextMatchFindAction\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorFocus\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"shift+cmd+\\\\\\\\\\\\\\\\\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorTextFocus\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"workbench.action.moveEditorToRightGroup\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+g\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"workbench.action.gotoSymbol\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"shift+cmd+o\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-workbench.action.gotoSymbol\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+g\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-workbench.action.terminal.findNext\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"terminalFindFocused && terminalHasBeenCreated || terminalFindFocused && terminalProcessSupported || terminalFocus && terminalHasBeenCreated || terminalFocus && terminalProcessSupported\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+r\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"rust-analyzer.run\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorTextFocus\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"shift+cmd+k\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"focusedView == 'workbench.view.search'\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"search.action.clearSearchResults\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+k cmd+o\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"openInExternalApp.open\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"filesExplorerFocus || editorTextFocus\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"shift+cmd+i\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"editor.action.insertSnippet\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorTextFocus\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+s\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"workbench.action.debug.start\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"debuggersAvailable && debugState == 'inactive'\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"f5\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-workbench.action.debug.start\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"debuggersAvailable && debugState == 'inactive'\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"ctrl+,\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"workbench.action.openSettings\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"workbenchState == 'workspace'\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"ctrl+shift+,\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"workbench.action.openWorkspaceSettingsFile\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"workbenchState == 'workspace'\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"ctrl+,\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"workbench.action.openFolderSettings\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"workbenchState == 'folder'\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"ctrl+shift+,\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"workbench.action.openFolderSettingsFile\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"workbenchState == 'folder'\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+s\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-gitlens.showQuickRepoStatus\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"!gitlens:disabled && config.gitlens.keymap == 'alternate'\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+x\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"workbench.action.debug.stop\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"inDebugMode && !focusedSessionIsAttach\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"shift+f5\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-workbench.action.debug.stop\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"inDebugMode && !focusedSessionIsAttach\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+s\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"workbench.action.debug.continue\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"debugState == 'stopped'\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"f5\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-workbench.action.debug.continue\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"debugState == 'stopped'\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+h\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"editor.action.startFindReplaceAction\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorFocus || editorIsOpen\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+cmd+f\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-editor.action.startFindReplaceAction\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorFocus || editorIsOpen\\\\\\\"\\\\n }\\\\n]\\\",\\\"windows\\\":\\\"[\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"shift+cmd+a\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"workbench.action.toggleActivityBarVisibility\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+cmd+b\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"workbench.action.toggleStatusbarVisibility\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"ctrl+space\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-editor.action.triggerSuggest\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorHasCompletionItemProvider && textInputFocus && !editorReadonly\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+.\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"editor.action.triggerSuggest\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorHasCompletionItemProvider && textInputFocus && !editorReadonly\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+r\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"workbench.action.reloadWindow\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"!filesExplorerFocus && !inDebugMode\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"ctrl+alt+s\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"code-runner.stop\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"shift+cmd+k\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"workbench.action.terminal.clear\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"terminalFocus && terminalProcessSupported\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"shift+cmd+k\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"workbench.output.action.clearOutput\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"focusedView == 'workbench.panel.output'\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+f\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"search.action.openNewEditor\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"!terminalFocus\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+right\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"workbench.action.terminal.focusNextPane\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"terminalFocus && terminalProcessSupported\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+left\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"workbench.action.terminal.focusPreviousPane\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"terminalFocus && terminalProcessSupported\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"shift+alt+down\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"workbench.action.terminal.focusNext\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"terminalFocus && terminalProcessSupported\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"shift+alt+up\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"workbench.action.terminal.focusPrevious\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"terminalFocus && terminalProcessSupported\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+down\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"workbench.action.terminal.scrollToNextCommand\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"terminalFocus && terminalProcessSupported && !accessibilityModeEnabled\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+up\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"workbench.action.terminal.scrollToPreviousCommand\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"terminalFocus && terminalProcessSupported && !accessibilityModeEnabled\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"shift+cmd+r\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"git.clean\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"textInputFocus && !editorReadonly\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"shift+cmd+j\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"workbench.action.terminal.new\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"!inSearchEditor && !searchViewletFocus\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+.\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"editor.action.quickFix\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorHasCodeActionsProvider && editorTextFocus && !editorReadonly\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+o\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"file-browser.open\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"!filesExplorerFocus && !terminalFocus\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+m\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"workbench.action.toggleMaximizedPanel\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"panelFocus\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+w\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"workbench.action.terminal.kill\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"terminalFocus\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+r\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"workbench.action.debug.restart\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"!filesExplorerFocus && inDebugMode\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+t\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"terminal.focus\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"shift+cmd+c\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"git.openChange\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+cmd+r\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"editor.action.refactor\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorHasCodeActionsProvider && editorTextFocus && !editorReadonly\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+j\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"workbench.action.editor.previousChange\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorTextFocus\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+k\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"workbench.action.editor.nextChange\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorTextFocus\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"shift+enter\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"markdown-preview-enhanced.runCodeChunk\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorTextFocus && editorLangId == 'markdown'\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"shift+cmd+,\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"workbench.action.openSettingsJson\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+p\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"editor.action.marker.next\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorFocus\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"shift+alt+p\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"editor.action.marker.prev\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorFocus\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"shift+cmd+0\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"workbench.files.action.collapseExplorerFolders\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"shift+cmd+g\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"workbench.view.scm\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"workbench.scm.active\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"ctrl+shift+t\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"workbench.view.extension.todo-tree-container\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+k cmd+r\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"git.revertSelectedRanges\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorTextFocus || isInDiffEditor\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+r\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"workbench.files.action.refreshFilesExplorer\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"filesExplorerFocus \\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+e\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"workbench.action.navigateToLastEditLocation\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+b\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"editor.emmet.action.balanceOut\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"shift+alt+b\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"editor.emmet.action.balanceIn\\\\\\\"\\\\n },\\\\n\\\\n\\\\n // 删除\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+escape\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-editor.action.triggerSuggest\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorHasCompletionItemProvider && textInputFocus && !editorReadonly\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+l cmd+o\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-extension.liveServer.goOnline\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorTextFocus\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+l cmd+c\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-extension.liveServer.goOffline\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorTextFocus\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+r r\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-npm-script.rerun-last-script\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"!terminalFocus\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+r shift+r\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-npm-script.run\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"!terminalFocus\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+r t\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-npm-script.test\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"!terminalFocus\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+r l\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-npm-script.showOutput\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"!terminalFocus\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+r shift+x\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-npm-script.terminate-script\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"!terminalFocus\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+r\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-workbench.action.reloadWindow\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"isDevelopment\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"ctrl+alt+m\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-code-runner.stop\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"ctrl+alt+k\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-code-runner.runCustomCommand\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+k\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-workbench.action.terminal.clear\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"terminalFocus && terminalProcessSupported\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"ctrl+shift+5\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-workbench.action.terminal.split\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"terminalFocus && terminalProcessSupported\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+cmd+down\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-workbench.action.terminal.focusNextPane\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"terminalFocus && terminalProcessSupported\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+cmd+left\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-workbench.action.terminal.focusPreviousPane\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"terminalFocus && terminalProcessSupported\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+cmd+up\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-workbench.action.terminal.focusPreviousPane\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"terminalFocus && terminalProcessSupported\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+cmd+right\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-workbench.action.terminal.focusNextPane\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"terminalFocus && terminalProcessSupported\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+down\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-workbench.action.terminal.scrollToNextCommand\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"terminalFocus && terminalProcessSupported && !accessibilityModeEnabled\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+up\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-workbench.action.terminal.scrollToPreviousCommand\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"terminalFocus && terminalProcessSupported && !accessibilityModeEnabled\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+.\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-editor.action.quickFix\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorHasCodeActionsProvider && editorTextFocus && !editorReadonly\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"ctrl+shift+`\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-workbench.action.terminal.new\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+t\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-C_Cpp.SwitchHeaderSource\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorTextFocus && editorLangId == 'c'\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+o\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-C_Cpp.SwitchHeaderSource\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorTextFocus && editorLangId == 'cpp'\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"shift+cmd+f5\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-workbench.action.debug.restart\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"inDebugMode\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"shift+cmd+c\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-workbench.action.terminal.openNativeConsole\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"!terminalFocus\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"ctrl+shift+r\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-editor.action.refactor\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorHasCodeActionsProvider && editorTextFocus && !editorReadonly\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+k cmd+q\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-workbench.action.navigateToLastEditLocation\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"shift+alt+f5\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-workbench.action.editor.previousChange\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorTextFocus\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+f5\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-workbench.action.editor.nextChange\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorTextFocus\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+l cmd+l\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-l13Diff.show\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+l cmd+o\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-l13Diff.showOutput\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+l cmd+f\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-workbench.view.extension.l13Diff\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"shift+enter\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-markdown-preview-enhanced.runCodeChunk\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorLangId == 'markdown'\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"ctrl+shift+cmd+right\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-editor.action.smartSelect.expand\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorTextFocus\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"shift+cmd+,\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-editor.action.inPlaceReplace.up\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorTextFocus && !editorReadonly\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+f8\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-editor.action.marker.next\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorFocus\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"shift+alt+f8\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-editor.action.marker.prev\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorFocus\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"ctrl+shift+g\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-workbench.view.scm\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"workbench.scm.active\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+k cmd+r\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-workbench.action.keybindingsReference\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+k cmd+r\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-git.revertSelectedRanges\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"isInDiffEditor\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"ctrl+.\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"toggleSuggestionDetails\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"suggestWidgetVisible && textInputFocus\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"ctrl+space\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-toggleSuggestionDetails\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"suggestWidgetVisible && textInputFocus\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"cmd+e\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-actions.findWithSelection\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+l\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"references-view.next\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"reference-list.hasResult && references-view.canNavigate\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"f4\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-references-view.next\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"reference-list.hasResult && references-view.canNavigate\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"alt+b\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-gitlens.toggleFileBlame\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorTextFocus && config.gitlens.keymap == 'alternate' && gitlens:activeFileStatus =~ /blameable/\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"key\\\\\\\": \\\\\\\"shift+alt+b\\\\\\\",\\\\n \\\\\\\"command\\\\\\\": \\\\\\\"-gitlens.toggleCodeLens\\\\\\\",\\\\n \\\\\\\"when\\\\\\\": \\\\\\\"editorTextFocus && !gitlens:disabled && !gitlens:disabledToggleCodeLens && config.gitlens.keymap == 'alternate'\\\\\\\"\\\\n },\\\\n]\\\"}\"}","platformSpecific":true}
{"ref":"da0b3056-f0c4-4399-8458-b8c78c68940f","content":"{\"version\":2,\"machineId\":\"025a59c1-fe60-483c-af06-6d987d35e986\",\"content\":\"{\\\"settings\\\":\\\"{\\\\n \\\\\\\"debug.console.fontFamily\\\\\\\": \\\\\\\"'MesloLGS NF', 'Monaco'\\\\\\\",\\\\n \\\\\\\"debug.javascript.codelens.npmScripts\\\\\\\": \\\\\\\"never\\\\\\\",\\\\n \\\\\\\"explorer.confirmDelete\\\\\\\": false,\\\\n \\\\\\\"explorer.copyRelativePathSeparator\\\\\\\": \\\\\\\"/\\\\\\\",\\\\n \\\\\\\"files.autoSave\\\\\\\": \\\\\\\"afterDelay\\\\\\\",\\\\n \\\\\\\"files.exclude\\\\\\\": { \\\\\\\"**/.git\\\\\\\": true },\\\\n \\\\\\\"files.maxMemoryForLargeFilesMB\\\\\\\": 8192,\\\\n \\\\\\\"git.autofetch\\\\\\\": true,\\\\n \\\\\\\"git.confirmSync\\\\\\\": false,\\\\n // \\\\\\\"http.proxy\\\\\\\": \\\\\\\"http://127.0.0.1:7890\\\\\\\",\\\\n \\\\\\\"json.maxItemsComputed\\\\\\\": 8888,\\\\n \\\\\\\"oneDarkPro.markdownStyle\\\\\\\": false,\\\\n \\\\\\\"scm.inputFontFamily\\\\\\\": \\\\\\\"editor\\\\\\\",\\\\n \\\\\\\"search.useIgnoreFiles\\\\\\\": true,\\\\n \\\\\\\"security.workspace.trust.untrustedFiles\\\\\\\": \\\\\\\"open\\\\\\\",\\\\n \\\\\\\"telemetry.telemetryLevel\\\\\\\": \\\\\\\"off\\\\\\\",\\\\n \\\\\\\"terminal.integrated.gpuAcceleration\\\\\\\": \\\\\\\"on\\\\\\\",\\\\n \\\\\\\"window.title\\\\\\\": \\\\\\\"${activeEditorMedium}${separator}${rootName}\\\\\\\",\\\\n \\\\\\\"terminal.integrated.defaultProfile.osx\\\\\\\": \\\\\\\"zsh\\\\\\\",\\\\n // \\\\\\\"terminal.integrated.enableShellIntegration\\\\\\\": true,\\\\n // \\\\\\\"workbench.experimental.layoutControl.enabled\\\\\\\": true,\\\\n // \\\\\\\"explorer.experimental.fileNesting.enabled\\\\\\\": true,\\\\n // \\\\\\\"typescript.tsserver.experimental.enableProjectDiagnostics\\\\\\\": false,\\\\n\\\\n // editor\\\\n \\\\\\\"editor.accessibilitySupport\\\\\\\": \\\\\\\"off\\\\\\\",\\\\n \\\\\\\"editor.bracketPairColorization.enabled\\\\\\\": true,\\\\n // not work when enable autoSave\\\\n // \\\\\\\"editor.codeActionsOnSave\\\\\\\": {\\\\n // \\\\\\\"source.fixAll\\\\\\\": false,\\\\n // \\\\\\\"source.addMissingImports\\\\\\\": true,\\\\n // \\\\\\\"source.fixAll.eslint\\\\\\\": true,\\\\n // \\\\\\\"source.fixAll.stylelint\\\\\\\": true\\\\n // },\\\\n \\\\\\\"editor.formatOnSave\\\\\\\": false,\\\\n \\\\\\\"editor.cursorBlinking\\\\\\\": \\\\\\\"smooth\\\\\\\",\\\\n \\\\\\\"editor.cursorSmoothCaretAnimation\\\\\\\": true,\\\\n \\\\\\\"editor.foldingHighlight\\\\\\\": false,\\\\n \\\\\\\"editor.fontFamily\\\\\\\": \\\\\\\"'Fira Code'\\\\\\\",\\\\n \\\\\\\"editor.fontSize\\\\\\\": 12,\\\\n \\\\\\\"editor.lightbulb.enabled\\\\\\\": false,\\\\n \\\\\\\"editor.linkedEditing\\\\\\\": true,\\\\n \\\\\\\"editor.minimap.enabled\\\\\\\": false,\\\\n \\\\\\\"editor.quickSuggestions\\\\\\\": {\\\\n \\\\\\\"strings\\\\\\\": true,\\\\n \\\\\\\"comments\\\\\\\": true,\\\\n \\\\\\\"other\\\\\\\": true\\\\n },\\\\n \\\\\\\"editor.smoothScrolling\\\\\\\": true,\\\\n \\\\\\\"editor.stickyTabStops\\\\\\\": true,\\\\n \\\\\\\"editor.suggest.preview\\\\\\\": true,\\\\n \\\\\\\"editor.suggest.shareSuggestSelections\\\\\\\": true,\\\\n \\\\\\\"editor.suggest.snippetsPreventQuickSuggestions\\\\\\\": false,\\\\n \\\\\\\"editor.suggestSelection\\\\\\\": \\\\\\\"first\\\\\\\",\\\\n \\\\\\\"editor.unfoldOnClickAfterEndOfLine\\\\\\\": true,\\\\n \\\\\\\"editor.unicodeHighlight.allowedLocales\\\\\\\": {\\\\n \\\\\\\"zh-hans\\\\\\\": true,\\\\n \\\\\\\"zh-hant\\\\\\\": true\\\\n },\\\\n\\\\n // language\\\\n \\\\\\\"html.autoClosingTags\\\\\\\": true,\\\\n \\\\\\\"javascript.preferences.quoteStyle\\\\\\\": \\\\\\\"single\\\\\\\",\\\\n \\\\\\\"javascript.preferences.useAliasesForRenames\\\\\\\": false,\\\\n \\\\\\\"javascript.updateImportsOnFileMove.enabled\\\\\\\": \\\\\\\"always\\\\\\\",\\\\n \\\\\\\"typescript.preferences.quoteStyle\\\\\\\": \\\\\\\"single\\\\\\\",\\\\n \\\\\\\"typescript.preferences.useAliasesForRenames\\\\\\\": false,\\\\n \\\\\\\"typescript.tsserver.maxTsServerMemory\\\\\\\": 8192,\\\\n \\\\\\\"typescript.updateImportsOnFileMove.enabled\\\\\\\": \\\\\\\"always\\\\\\\",\\\\n \\\\\\\"files.associations\\\\\\\": {\\\\n \\\\\\\".env\\\\\\\": \\\\\\\"env\\\\\\\",\\\\n \\\\\\\"*.jsxinc\\\\\\\": \\\\\\\"javascript\\\\\\\"\\\\n },\\\\n \\\\\\\"vsicons.associations.files\\\\\\\": [\\\\n { \\\\\\\"icon\\\\\\\": \\\\\\\"config\\\\\\\", \\\\\\\"extensions\\\\\\\": [\\\\\\\"env\\\\\\\"], \\\\\\\"format\\\\\\\": \\\\\\\"svg\\\\\\\" }\\\\n ],\\\\n \\\\\\\"[javascript][javascriptreact][typescript][typescriptreact][vue][json][jsonc]\\\\\\\": {\\\\n \\\\\\\"editor.defaultFormatter\\\\\\\": \\\\\\\"esbenp.prettier-vscode\\\\\\\"\\\\n },\\\\n \\\\\\\"[html][css][less][scss][markdown][xml][yaml][svg]\\\\\\\": {\\\\n \\\\\\\"editor.defaultFormatter\\\\\\\": \\\\\\\"esbenp.prettier-vscode\\\\\\\"\\\\n },\\\\n\\\\n // terminal\\\\n \\\\\\\"terminal.integrated.cursorBlinking\\\\\\\": true,\\\\n \\\\\\\"terminal.integrated.enableBell\\\\\\\": true,\\\\n \\\\\\\"terminal.integrated.fontFamily\\\\\\\": \\\\\\\"'MesloLGS NF', 'Monaco'\\\\\\\",\\\\n \\\\\\\"terminal.integrated.fontSize\\\\\\\": 12,\\\\n\\\\n // workbench\\\\n \\\\\\\"workbench.editorAssociations\\\\\\\": {\\\\n \\\\\\\"*.png\\\\\\\": \\\\\\\"luna.editor\\\\\\\",\\\\n \\\\\\\"*.jpg\\\\\\\": \\\\\\\"luna.editor\\\\\\\",\\\\n \\\\\\\"*.jpeg\\\\\\\": \\\\\\\"luna.editor\\\\\\\",\\\\n \\\\\\\"*.ico\\\\\\\": \\\\\\\"luna.editor\\\\\\\"\\\\n },\\\\n \\\\\\\"workbench.editor.highlightModifiedTabs\\\\\\\": true,\\\\n \\\\\\\"workbench.editor.limit.enabled\\\\\\\": true,\\\\n \\\\\\\"workbench.editor.limit.perEditorGroup\\\\\\\": true,\\\\n \\\\\\\"workbench.editor.limit.value\\\\\\\": 8,\\\\n \\\\\\\"workbench.editor.scrollToSwitchTabs\\\\\\\": true,\\\\n \\\\\\\"workbench.list.smoothScrolling\\\\\\\": true,\\\\n \\\\\\\"workbench.startupEditor\\\\\\\": \\\\\\\"welcomePage\\\\\\\",\\\\n \\\\\\\"workbench.tree.indent\\\\\\\": 14,\\\\n\\\\n // extensions\\\\n \\\\\\\"livePreview.openPreviewTarget\\\\\\\": \\\\\\\"External Browser\\\\\\\",\\\\n \\\\\\\"code-runner.executorMap\\\\\\\": {\\\\n \\\\\\\"typescript\\\\\\\": \\\\\\\"ts-node\\\\\\\",\\\\n \\\\\\\"cpp\\\\\\\": \\\\\\\"cd $dir && g++ $fileName -std=c++2a -Wall -o $fileNameWithoutExt && ./$fileNameWithoutExt\\\\\\\",\\\\n \\\\\\\"dart\\\\\\\": \\\\\\\"/Users/yutengjing/apps/flutter/latest/bin/dart run --enable-asserts $fullFileName\\\\\\\"\\\\n },\\\\n \\\\\\\"code-runner.showRunIconInEditorTitleMenu\\\\\\\": false,\\\\n \\\\\\\"code-runner.terminalRoot\\\\\\\": \\\\\\\"/\\\\\\\",\\\\n \\\\\\\"colorInfo.languages\\\\\\\": [\\\\n {\\\\n \\\\\\\"selector\\\\\\\": \\\\\\\"css\\\\\\\",\\\\n \\\\\\\"colors\\\\\\\": \\\\\\\"css\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"selector\\\\\\\": \\\\\\\"less\\\\\\\",\\\\n \\\\\\\"colors\\\\\\\": \\\\\\\"css\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"selector\\\\\\\": \\\\\\\"scss\\\\\\\",\\\\n \\\\\\\"colors\\\\\\\": \\\\\\\"css\\\\\\\"\\\\n },\\\\n {\\\\n \\\\\\\"selector\\\\\\\": \\\\\\\"vue\\\\\\\",\\\\n \\\\\\\"colors\\\\\\\": \\\\\\\"css\\\\\\\"\\\\n }\\\\n ],\\\\n \\\\\\\"C_Cpp.addNodeAddonIncludePaths\\\\\\\": true,\\\\n \\\\\\\"C_Cpp.autocompleteAddParentheses\\\\\\\": true,\\\\n \\\\\\\"C_Cpp.clang_format_fallbackStyle\\\\\\\": \\\\\\\"{ BasedOnStyle: Chromium, IndentWidth: 2, ColumnLimit: 0 }\\\\\\\",\\\\n \\\\\\\"C_Cpp.default.cppStandard\\\\\\\": \\\\\\\"c++20\\\\\\\",\\\\n \\\\\\\"C_Cpp.default.cStandard\\\\\\\": \\\\\\\"c17\\\\\\\",\\\\n \\\\\\\"C_Cpp.experimentalFeatures\\\\\\\": \\\\\\\"Enabled\\\\\\\",\\\\n \\\\\\\"C_Cpp.intelliSenseCacheSize\\\\\\\": 8192,\\\\n \\\\\\\"C_Cpp.intelliSenseMemoryLimit\\\\\\\": 8192,\\\\n \\\\\\\"C_Cpp.intelliSenseUpdateDelay\\\\\\\": 500,\\\\n \\\\\\\"c-cpp-flylint.clang.enable\\\\\\\": true,\\\\n \\\\\\\"c-cpp-flylint.clang.standard\\\\\\\": [\\\\\\\"c++2a\\\\\\\"],\\\\n \\\\\\\"c-cpp-flylint.cppcheck.enable\\\\\\\": false,\\\\n \\\\\\\"c-cpp-flylint.flawfinder.enable\\\\\\\": false,\\\\n \\\\\\\"c-cpp-flylint.flexelint.enable\\\\\\\": false,\\\\n \\\\\\\"c-cpp-flylint.lizard.enable\\\\\\\": false,\\\\n \\\\\\\"c-cpp-flylint.pclintplus.enable\\\\\\\": false,\\\\n \\\\\\\"gitHistory.showEditorTitleMenuBarIcons\\\\\\\": false,\\\\n \\\\\\\"gitlens.codeLens.scopes\\\\\\\": [],\\\\n \\\\\\\"gitlens.currentLine.enabled\\\\\\\": false,\\\\n \\\\\\\"gitlens.statusBar.format\\\\\\\": \\\\\\\"${author}, ${agoOrDate} • ${message}\\\\\\\",\\\\n \\\\\\\"markdownlint.config\\\\\\\": {\\\\n \\\\\\\"default\\\\\\\": true,\\\\n \\\\\\\"MD033\\\\\\\": false,\\\\n \\\\\\\"MD041\\\\\\\": false\\\\n },\\\\n \\\\\\\"markdown-preview-github-styles.colorTheme\\\\\\\": \\\\\\\"light\\\\\\\",\\\\n \\\\\\\"npm.validate.enable\\\\\\\": false,\\\\n \\\\\\\"vsintellicode.modify.editor.suggestSelection\\\\\\\": \\\\\\\"automaticallyOverrodeDefaultValue\\\\\\\",\\\\n \\\\\\\"path-autocomplete.extensionOnImport\\\\\\\": true,\\\\n \\\\\\\"path-autocomplete.ignoredFilesPattern\\\\\\\": \\\\\\\"*.md\\\\\\\",\\\\n \\\\\\\"prettier.documentSelectors\\\\\\\": [\\\\\\\"**/*.svg\\\\\\\"],\\\\n \\\\\\\"redhat.telemetry.enabled\\\\\\\": false,\\\\n \\\\\\\"template-string-converter.validLanguages\\\\\\\": [\\\\n \\\\\\\"vue\\\\\\\",\\\\n \\\\\\\"typescript\\\\\\\",\\\\n \\\\\\\"javascript\\\\\\\",\\\\n \\\\\\\"typescriptreact\\\\\\\",\\\\n \\\\\\\"javascriptreact\\\\\\\"\\\\n ],\\\\n \\\\\\\"template-string-converter.autoRemoveTemplateString\\\\\\\": true,\\\\n \\\\\\\"template-string-converter.quoteType\\\\\\\": \\\\\\\"single\\\\\\\",\\\\n // https://github.com/Gruntfuggly/todo-tree/issues/255#issuecomment-574279033\\\\n \\\\\\\"todo-tree.regex.regex\\\\\\\": \\\\\\\"(?:(?://|#|<!--|;|/\\\\\\\\\\\\\\\\*\\\\\\\\\\\\\\\\*?|\\\\\\\\\\\\\\\\*|(-|\\\\\\\\\\\\\\\\d+.))\\\\\\\\\\\\\\\\s*($TAGS))\\\\\\\",\\\\n \\\\\\\"todo-tree.filtering.useBuiltInExcludes\\\\\\\": \\\\\\\"file and search excludes\\\\\\\",\\\\n \\\\\\\"todo-tree.general.tags\\\\\\\": [\\\\\\\"TODO:\\\\\\\", \\\\\\\"FIXME:\\\\\\\", \\\\\\\"NOTE:\\\\\\\", \\\\\\\"[ ]\\\\\\\", \\\\\\\"[x]\\\\\\\"],\\\\n \\\\\\\"todo-tree.highlights.customHighlight\\\\\\\": {\\\\n \\\\\\\"TODO:\\\\\\\": {\\\\n \\\\\\\"foreground\\\\\\\": \\\\\\\"#ffffff\\\\\\\",\\\\n \\\\\\\"background\\\\\\\": \\\\\\\"#ffbd2a\\\\\\\",\\\\n \\\\\\\"iconColour\\\\\\\": \\\\\\\"#ffbd2a\\\\\\\"\\\\n },\\\\n \\\\\\\"FIXME:\\\\\\\": {\\\\n \\\\\\\"foreground\\\\\\\": \\\\\\\"#ffffff\\\\\\\",\\\\n \\\\\\\"background\\\\\\\": \\\\\\\"#f06292\\\\\\\",\\\\n \\\\\\\"icon\\\\\\\": \\\\\\\"flame\\\\\\\",\\\\n \\\\\\\"iconColour\\\\\\\": \\\\\\\"#f06292\\\\\\\"\\\\n },\\\\n \\\\\\\"NOTE:\\\\\\\": {\\\\n \\\\\\\"foreground\\\\\\\": \\\\\\\"#808080\\\\\\\",\\\\n \\\\\\\"background\\\\\\\": \\\\\\\"#ffff00\\\\\\\",\\\\n \\\\\\\"icon\\\\\\\": \\\\\\\"alert\\\\\\\",\\\\n \\\\\\\"iconColour\\\\\\\": \\\\\\\"#ffff00\\\\\\\"\\\\n }\\\\n },\\\\n \\\\\\\"todo-tree.highlights.defaultHighlight\\\\\\\": {\\\\n \\\\\\\"gutterIcon\\\\\\\": false,\\\\n \\\\\\\"rulerLane\\\\\\\": \\\\\\\"none\\\\\\\"\\\\n },\\\\n \\\\\\\"todo-tree.ripgrep.ripgrep\\\\\\\": \\\\\\\"/usr/local/bin/rg\\\\\\\",\\\\n \\\\\\\"tsImportSorter.configuration.autoFormat\\\\\\\": \\\\\\\"off\\\\\\\",\\\\n \\\\\\\"tsImportSorter.configuration.groupRules\\\\\\\": [\\\\n [\\\\\\\"^[@][^/]\\\\\\\", {}],\\\\n [\\\\n \\\\\\\"^@(/|$)\\\\\\\",\\\\n \\\\\\\"^actions?(/|$)\\\\\\\",\\\\n \\\\\\\"^apis?(/|$)\\\\\\\",\\\\n \\\\\\\"^assets(/|$)\\\\\\\",\\\\n \\\\\\\"^components?(/|$)\\\\\\\",\\\\n \\\\\\\"^helpers?(/|$)\\\\\\\",\\\\n \\\\\\\"^pages?(/|$)\\\\\\\",\\\\n \\\\\\\"^sagas?(/|$)\\\\\\\",\\\\n \\\\\\\"^selectors?(/|$)\\\\\\\",\\\\n \\\\\\\"^reducers?(/|$)\\\\\\\",\\\\n \\\\\\\"^typings?(/|$)\\\\\\\",\\\\n \\\\\\\"^utils(/|$)\\\\\\\"\\\\n ],\\\\n { \\\\\\\"flags\\\\\\\": \\\\\\\"named\\\\\\\", \\\\\\\"regex\\\\\\\": \\\\\\\"^[.]\\\\\\\" },\\\\n [\\\\n { \\\\\\\"flags\\\\\\\": \\\\\\\"scripts\\\\\\\" },\\\\n { \\\\\\\"flags\\\\\\\": \\\\\\\"scripts\\\\\\\", \\\\\\\"regex\\\\\\\": \\\\\\\"[.]((css)|(less)|(scss))$\\\\\\\" }\\\\n ]\\\\n ],\\\\n \\\\\\\"tsImportSorter.configuration.keepUnused\\\\\\\": [\\\\\\\".*\\\\\\\"],\\\\n \\\\\\\"tsImportSorter.configuration.wrappingStyle\\\\\\\": \\\\\\\"prettier\\\\\\\",\\\\n\\\\n // long config\\\\n \\\\\\\"cSpell.language\\\\\\\": \\\\\\\"en-US\\\\\\\",\\\\n \\\\\\\"cSpell.checkLimit\\\\\\\": 888,\\\\n \\\\\\\"cSpell.dictionaries\\\\\\\": [\\\\\\\"myDict\\\\\\\"],\\\\n \\\\\\\"cSpell.ignorePaths\\\\\\\": [\\\\n \\\\\\\"node_modules\\\\\\\",\\\\n \\\\\\\"vscode-extension\\\\\\\",\\\\n \\\\\\\".git/objects\\\\\\\",\\\\n \\\\\\\".idea\\\\\\\",\\\\n \\\\\\\".dart_tool\\\\\\\",\\\\n \\\\\\\"**/*.lock\\\\\\\",\\\\n \\\\\\\"**/*.log\\\\\\\",\\\\n \\\\\\\"package-lock.json\\\\\\\",\\\\n \\\\\\\"**/pnpm-lock.yaml\\\\\\\"\\\\n ],\\\\n \\\\\\\"cSpell.languageSettings\\\\\\\": [\\\\n {\\\\n \\\\\\\"languageId\\\\\\\": \\\\\\\"dart\\\\\\\",\\\\n \\\\\\\"patterns\\\\\\\": [\\\\n {\\\\n \\\\\\\"name\\\\\\\": \\\\\\\"Dart-RegExp-String\\\\\\\",\\\\n \\\\\\\"pattern\\\\\\\": \\\\\\\"/\\\\\\\\\\\\\\\\br(['\\\\\\\\\\\\\\\"]).*?\\\\\\\\\\\\\\\\1/g\\\\\\\"\\\\n }\\\\n ],\\\\n \\\\\\\"ignoreRegExpList\\\\\\\": [\\\\\\\"Dart-RegExp-String\\\\\\\"]\\\\n }\\\\n ],\\\\n \\\\\\\"cSpell.dictionaryDefinitions\\\\\\\": [\\\\n { \\\\\\\"name\\\\\\\": \\\\\\\"myDict\\\\\\\", \\\\\\\"path\\\\\\\": \\\\\\\"/Users/yutengjing/.my-spell-check-dict.txt\\\\\\\" }\\\\n ],\\\\n \\\\\\\"cSpell.userWords\\\\\\\": [],\\\\n \\\\\\\"cSpell.enableFiletypes\\\\\\\": [\\\\n \\\\\\\"!asciidoc\\\\\\\",\\\\n \\\\\\\"!csharp\\\\\\\",\\\\n \\\\\\\"!graphql\\\\\\\",\\\\n \\\\\\\"!handlebars\\\\\\\",\\\\n \\\\\\\"!haskell\\\\\\\",\\\\n \\\\\\\"!jade\\\\\\\",\\\\n \\\\\\\"!latex\\\\\\\",\\\\n \\\\\\\"!plaintext\\\\\\\",\\\\n \\\\\\\"!pug\\\\\\\",\\\\n \\\\\\\"!restructuredtext\\\\\\\",\\\\n \\\\\\\"bat\\\\\\\",\\\\n \\\\\\\"cmake\\\\\\\",\\\\n \\\\\\\"cmake-cache\\\\\\\",\\\\n \\\\\\\"css\\\\\\\",\\\\n \\\\\\\"dart\\\\\\\",\\\\n \\\\\\\"diff\\\\\\\",\\\\n \\\\\\\"dotenv\\\\\\\",\\\\n \\\\\\\"env\\\\\\\",\\\\n \\\\\\\"git-rebase\\\\\\\",\\\\n \\\\\\\"gitignore\\\\\\\",\\\\n \\\\\\\"go\\\\\\\",\\\\n \\\\\\\"gradle\\\\\\\",\\\\n \\\\\\\"groovy\\\\\\\",\\\\n \\\\\\\"hosts\\\\\\\",\\\\n \\\\\\\"html\\\\\\\",\\\\n \\\\\\\"ignore\\\\\\\",\\\\n \\\\\\\"java\\\\\\\",\\\\n \\\\\\\"javascript\\\\\\\",\\\\n \\\\\\\"javascriptreact\\\\\\\",\\\\n \\\\\\\"json\\\\\\\",\\\\n \\\\\\\"jsonc\\\\\\\",\\\\n \\\\\\\"makefile\\\\\\\",\\\\n \\\\\\\"markdown\\\\\\\",\\\\n \\\\\\\"nginx\\\\\\\",\\\\n \\\\\\\"objective-c\\\\\\\",\\\\n \\\\\\\"objective-cpp\\\\\\\",\\\\n \\\\\\\"powershell\\\\\\\",\\\\n \\\\\\\"properties\\\\\\\",\\\\n \\\\\\\"python\\\\\\\",\\\\n \\\\\\\"scss\\\\\\\",\\\\n \\\\\\\"search-result\\\\\\\",\\\\n \\\\\\\"shellscript\\\\\\\",\\\\n \\\\\\\"sql\\\\\\\",\\\\n \\\\\\\"svg\\\\\\\",\\\\n \\\\\\\"swift\\\\\\\",\\\\n \\\\\\\"typescript\\\\\\\",\\\\n \\\\\\\"typescriptreact\\\\\\\",\\\\n \\\\\\\"vue\\\\\\\",\\\\n \\\\\\\"vue-html\\\\\\\",\\\\n \\\\\\\"wallaby-output\\\\\\\",\\\\n \\\\\\\"wasm\\\\\\\",\\\\n \\\\\\\"xml\\\\\\\",\\\\n \\\\\\\"yaml\\\\\\\"\\\\n ],\\\\n\\\\n // depracated\\\\n // \\\\\\\"colorize.colorized_colors\\\\\\\": [\\\\\\\"HEXA\\\\\\\", \\\\\\\"RGB\\\\\\\"],\\\\n // \\\\\\\"colorize.enable_search_variables\\\\\\\": false,\\\\n // \\\\\\\"colorize.languages\\\\\\\": [\\\\n // \\\\\\\"css\\\\\\\",\\\\n // \\\\\\\"scss\\\\\\\",\\\\n // \\\\\\\"less\\\\\\\",\\\\n // \\\\\\\"html\\\\\\\",\\\\n // \\\\\\\"svg\\\\\\\",\\\\n // \\\\\\\"javascript\\\\\\\",\\\\n // \\\\\\\"javascriptreact\\\\\\\",\\\\n // \\\\\\\"typescript\\\\\\\",\\\\n // \\\\\\\"typescriptreact\\\\\\\",\\\\n // \\\\\\\"vue\\\\\\\",\\\\n // \\\\\\\"jsonc\\\\\\\"\\\\n // ],\\\\n // \\\\\\\"emojisense.languages\\\\\\\": {\\\\n // \\\\\\\"markdown\\\\\\\": true\\\\n // },\\\\n // \\\\\\\"cssPeek.peekFromLanguages\\\\\\\": [\\\\n // \\\\\\\"html\\\\\\\",\\\\n // \\\\\\\"vue\\\\\\\",\\\\n // \\\\\\\"javascriptreact\\\\\\\",\\\\n // \\\\\\\"typescriptreact\\\\\\\"\\\\n // ],\\\\n // \\\\\\\"css.enabledLanguages\\\\\\\": [\\\\\\\"html\\\\\\\", \\\\\\\"vue\\\\\\\"],\\\\n // \\\\\\\"css.styleSheets\\\\\\\": [\\\\n // \\\\\\\"${fileBasenameNoExtension}.css\\\\\\\",\\\\n // \\\\\\\"${fileBasenameNoExtension}.less\\\\\\\",\\\\n // \\\\\\\"${fileBasenameNoExtension}.scss\\\\\\\"\\\\n // ],\\\\n // \\\\\\\"git-graph.showStatusBarItem\\\\\\\": false,\\\\n // \\\\\\\"dart.debugExternalLibraries\\\\\\\": true,\\\\n // \\\\\\\"dart.debugSdkLibraries\\\\\\\": false,\\\\n // \\\\\\\"dart.devToolsBrowser\\\\\\\": \\\\\\\"chrome\\\\\\\",\\\\n // \\\\\\\"dart.devToolsPort\\\\\\\": 9100,\\\\n // \\\\\\\"dart.devToolsTheme\\\\\\\": \\\\\\\"light\\\\\\\",\\\\n // \\\\\\\"dart.showDevToolsDebugToolBarButtons\\\\\\\": false,\\\\n // \\\\\\\"dart.showTodos\\\\\\\": false,\\\\n // \\\\\\\"dart.flutterSdkPaths\\\\\\\": [\\\\n // \\\\\\\"/Users/yutengjing/apps/flutter/1.22.4\\\\\\\",\\\\n // \\\\\\\"/Users/yutengjing/apps/flutter/2.2.0\\\\\\\",\\\\n // \\\\\\\"/Users/yutengjing/apps/flutter/latest\\\\\\\"\\\\n // ],\\\\n // \\\\\\\"dart.env\\\\\\\": {\\\\n // \\\\\\\"http_proxy\\\\\\\": \\\\\\\"http://127.0.0.1:7890\\\\\\\",\\\\n // \\\\\\\"http_proxys\\\\\\\": \\\\\\\"http://127.0.0.1:7890\\\\\\\"\\\\n // },\\\\n\\\\n // often change\\\\n \\\\\\\"workbench.iconTheme\\\\\\\": \\\\\\\"vscode-icons\\\\\\\",\\\\n \\\\\\\"editor.inlineSuggest.enabled\\\\\\\": true,\\\\n \\\\\\\"workbench.colorTheme\\\\\\\": \\\\\\\"One Dark Pro\\\\\\\",\\\\n \\\\\\\"sync.gist\\\\\\\": \\\\\\\"daa6317cf80ab5f467c50b2693527875\\\\\\\"\\\\n}\\\"}\"}"}
{"version":1,"content":"{}"}
{"ref":"2babf087-aa26-404c-8fb7-ce6986a8b8fa","content":"{\"version\":1,\"machineId\":\"025a59c1-fe60-483c-af06-6d987d35e986\",\"content\":\"{\\\"global.code-snippets\\\":\\\"{\\\\n // Place your global snippets here. Each snippet is defined under a snippet name and has a scope, prefix, body and\\\\n // description. Add comma separated ids of the languages where the snippet is applicable in the scope field. If scope\\\\n // is left empty or omitted, the snippet gets applied to all languages. The prefix is what is\\\\n // used to trigger the snippet and the body will be expanded and inserted. Possible variables are:\\\\n // $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders.\\\\n // Placeholders with the same ids are connected.\\\\n \\\\\\\"section comment\\\\\\\": {\\\\n \\\\\\\"scope\\\\\\\": \\\\\\\"javascript,typescript,go,rust\\\\\\\",\\\\n \\\\\\\"prefix\\\\\\\": \\\\\\\"sc\\\\\\\",\\\\n \\\\\\\"body\\\\\\\": [\\\\\\\"// ------------------------ $1 -----------------------------\\\\\\\"],\\\\n \\\\\\\"description\\\\\\\": \\\\\\\"using single line comment with long dash to seperate the code section\\\\\\\"\\\\n },\\\\n \\\\\\\"example comment\\\\\\\": {\\\\n \\\\\\\"scope\\\\\\\": \\\\\\\"javascript,typescript\\\\\\\",\\\\n \\\\\\\"prefix\\\\\\\": \\\\\\\"ei\\\\\\\",\\\\n \\\\\\\"body\\\\\\\": [\\\\\\\"Input: $1\\\\\\\", \\\\\\\"* Output: $2\\\\\\\"],\\\\n \\\\\\\"description\\\\\\\": \\\\\\\"input/output example in comment\\\\\\\"\\\\n },\\\\n \\\\\\\"type doc comment\\\\\\\": {\\\\n \\\\\\\"scope\\\\\\\": \\\\\\\"javascript,typescript,javascriptreact,typescriptreact\\\\\\\",\\\\n \\\\\\\"prefix\\\\\\\": \\\\\\\"@type\\\\\\\",\\\\n \\\\\\\"body\\\\\\\": [\\\\\\\"/** @type {$1} */\\\\\\\"],\\\\n \\\\\\\"description\\\\\\\": \\\\\\\"type doc comment\\\\\\\"\\\\n },\\\\n \\\\\\\"extendscript include comment\\\\\\\": {\\\\n \\\\\\\"scope\\\\\\\": \\\\\\\"javascript\\\\\\\",\\\\n \\\\\\\"prefix\\\\\\\": \\\\\\\"@inc\\\\\\\",\\\\n \\\\\\\"body\\\\\\\": [\\\\\\\"// @include '$1'$0\\\\\\\"],\\\\n \\\\\\\"description\\\\\\\": \\\\\\\"extendscript include comment\\\\\\\"\\\\n },\\\\n \\\\\\\"Println variable\\\\\\\": {\\\\n \\\\\\\"scope\\\\\\\": \\\\\\\"rust\\\\\\\",\\\\n \\\\\\\"prefix\\\\\\\": \\\\\\\"plv\\\\\\\",\\\\n \\\\\\\"body\\\\\\\": \\\\\\\"println!(\\\\\\\\\\\\\\\"{}\\\\\\\\\\\\\\\", $1);$0\\\\\\\",\\\\n \\\\\\\"description\\\\\\\": \\\\\\\"Println variable\\\\\\\"\\\\n }\\\\n}\\\\n\\\",\\\"javascript.json\\\":\\\"{\\\\n\\\\t// Place your snippets for javascript here. Each snippet is defined under a snippet name and has a prefix, body and \\\\n\\\\t// description. The prefix is what is used to trigger the snippet and the body will be expanded and inserted. Possible variables are:\\\\n\\\\t// $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders. Placeholders with the \\\\n\\\\t// same ids are connected.\\\\n\\\\t// Example:\\\\n\\\\t// \\\\\\\"Print to console\\\\\\\": {\\\\n\\\\t// \\\\t\\\\\\\"prefix\\\\\\\": \\\\\\\"log\\\\\\\",\\\\n\\\\t// \\\\t\\\\\\\"body\\\\\\\": [\\\\n\\\\t// \\\\t\\\\t\\\\\\\"console.log('$1');\\\\\\\",\\\\n\\\\t// \\\\t\\\\t\\\\\\\"$2\\\\\\\"\\\\n\\\\t// \\\\t],\\\\n\\\\t// \\\\t\\\\\\\"description\\\\\\\": \\\\\\\"Log output to console\\\\\\\"\\\\n\\\\t// }\\\\n}\\\"}\"}"}
{"ref":"0","content":null}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment