isaacscript 2.0.11-alpha.2 → 2.0.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. package/LICENSE +674 -0
  2. package/README.md +4 -6
  3. package/file-templates/dynamic/README.md +3 -0
  4. package/file-templates/dynamic/gitignore +147 -0
  5. package/file-templates/dynamic/main.ts +19 -0
  6. package/file-templates/dynamic/metadata.vdf +6 -0
  7. package/file-templates/dynamic/metadata.xml +8 -0
  8. package/file-templates/dynamic/package.json +20 -0
  9. package/file-templates/static/.env_template +2 -0
  10. package/file-templates/static/.eslintrc.js.template +24 -0
  11. package/file-templates/static/.github/workflows/ci.yml +54 -0
  12. package/file-templates/static/.prettierignore +14 -0
  13. package/file-templates/static/.prettierrc.js +42 -0
  14. package/file-templates/static/.vscode/extensions.json +10 -0
  15. package/file-templates/static/.vscode/settings.json +79 -0
  16. package/file-templates/static/LICENSE +674 -0
  17. package/file-templates/static/build.sh +15 -0
  18. package/file-templates/static/check-orphaned-words.sh +58 -0
  19. package/file-templates/static/cspell.json.template +21 -0
  20. package/file-templates/static/lint.sh +39 -0
  21. package/file-templates/static/plugins/addCrashDebugStatements.ts +40 -0
  22. package/file-templates/static/plugins/addIsaacScriptCommentHeader.ts +37 -0
  23. package/file-templates/static/plugins/noExtendedEnums.ts +69 -0
  24. package/file-templates/static/run.sh +10 -0
  25. package/file-templates/static/src/bundleEntry.ts +10 -0
  26. package/file-templates/static/tsconfig.eslint.json +11 -0
  27. package/file-templates/static/tsconfig.json +33 -0
  28. package/file-templates/static/update.sh +21 -0
  29. package/file-templates/static-alt/.prettierignore-base +5 -0
  30. package/file-templates/static-alt/.prettierrc-base.js +30 -0
  31. package/file-templates/static-alt/.vscode/extensions-typescript.json +9 -0
  32. package/file-templates/static-alt/.vscode/settings-typescript.json +66 -0
  33. package/file-templates/static-alt/check-file-updates.sh +67 -0
  34. package/isaacscript-watcher/.luacheckrc +96 -0
  35. package/isaacscript-watcher/README.md +8 -0
  36. package/isaacscript-watcher/main.lua +270 -0
  37. package/isaacscript-watcher/metadata.xml +7 -0
  38. package/isaacscript-watcher/resources/gfx/logo.anm2 +27 -0
  39. package/isaacscript-watcher/resources/gfx/logo.png +0 -0
  40. package/package.json +39 -8
  41. package/src/checkForWindowsTerminalBugs.js +75 -79
  42. package/src/checkForWindowsTerminalBugs.js.map +1 -1
  43. package/src/commands/copy/copy.js +32 -32
  44. package/src/commands/init/checkIfProjectPathExists.js +27 -29
  45. package/src/commands/init/checkIfProjectPathExists.js.map +1 -1
  46. package/src/commands/init/checkModSubdirectory.js +15 -15
  47. package/src/commands/init/checkModTargetDirectory.js +30 -32
  48. package/src/commands/init/checkModTargetDirectory.js.map +1 -1
  49. package/src/commands/init/createMod.js +142 -137
  50. package/src/commands/init/createMod.js.map +1 -1
  51. package/src/commands/init/getModsDir.js +55 -57
  52. package/src/commands/init/getModsDir.js.map +1 -1
  53. package/src/commands/init/getProjectPath.js +88 -92
  54. package/src/commands/init/getProjectPath.js.map +1 -1
  55. package/src/commands/init/git.js +150 -152
  56. package/src/commands/init/git.js.map +1 -1
  57. package/src/commands/init/init.js +65 -69
  58. package/src/commands/init/init.js.map +1 -1
  59. package/src/commands/init/installVSCodeExtensions.js +32 -32
  60. package/src/commands/init/promptSaveSlot.js +21 -24
  61. package/src/commands/init/promptSaveSlot.js.map +1 -1
  62. package/src/commands/init/promptVSCode.js +24 -26
  63. package/src/commands/init/promptVSCode.js.map +1 -1
  64. package/src/commands/monitor/constants.js +4 -4
  65. package/src/commands/monitor/copyWatcherMod.js +38 -38
  66. package/src/commands/monitor/modDirectorySyncer/modDirectorySyncer.js +49 -49
  67. package/src/commands/monitor/monitor.js +146 -146
  68. package/src/commands/monitor/notifyGame.js +57 -57
  69. package/src/commands/monitor/saveDatWriter/saveDatWriter.js +116 -116
  70. package/src/commands/monitor/saveDatWriter/types.js +2 -2
  71. package/src/commands/monitor/spawnSaveDatWriter.js +34 -34
  72. package/src/commands/monitor/touchWatcherSaveDatFiles.js +20 -20
  73. package/src/commands/publish/publish.js +220 -235
  74. package/src/commands/publish/publish.js.map +1 -1
  75. package/src/configFile.js +63 -65
  76. package/src/configFile.js.map +1 -1
  77. package/src/constants.js +59 -59
  78. package/src/constants.js.map +1 -1
  79. package/src/exec.js +95 -95
  80. package/src/file.js +193 -193
  81. package/src/main.js +117 -114
  82. package/src/main.js.map +1 -1
  83. package/src/parseArgs.js +106 -106
  84. package/src/prompt.js +86 -92
  85. package/src/prompt.js.map +1 -1
  86. package/src/types/Command.js +4 -4
  87. package/src/types/Config.js +12 -12
  88. package/src/types/GitHubCLIHostsYAML.js +2 -2
  89. package/src/utils.js +81 -81
  90. package/src/utils.js.map +1 -1
  91. package/src/validateInIsaacScriptProject.js +26 -26
  92. package/src/validateNodeVersion.js +24 -24
  93. package/src/validateOS.js +16 -16
  94. package/src/checkForWindowsTerminalBugs.d.ts +0 -5
  95. package/src/commands/copy/copy.d.ts +0 -3
  96. package/src/commands/init/checkIfProjectPathExists.d.ts +0 -1
  97. package/src/commands/init/checkModSubdirectory.d.ts +0 -1
  98. package/src/commands/init/checkModTargetDirectory.d.ts +0 -1
  99. package/src/commands/init/createMod.d.ts +0 -1
  100. package/src/commands/init/getModsDir.d.ts +0 -1
  101. package/src/commands/init/getProjectPath.d.ts +0 -1
  102. package/src/commands/init/git.d.ts +0 -4
  103. package/src/commands/init/init.d.ts +0 -1
  104. package/src/commands/init/installVSCodeExtensions.d.ts +0 -1
  105. package/src/commands/init/promptSaveSlot.d.ts +0 -1
  106. package/src/commands/init/promptVSCode.d.ts +0 -1
  107. package/src/commands/monitor/constants.d.ts +0 -1
  108. package/src/commands/monitor/copyWatcherMod.d.ts +0 -2
  109. package/src/commands/monitor/modDirectorySyncer/modDirectorySyncer.d.ts +0 -1
  110. package/src/commands/monitor/monitor.d.ts +0 -2
  111. package/src/commands/monitor/notifyGame.d.ts +0 -3
  112. package/src/commands/monitor/saveDatWriter/saveDatWriter.d.ts +0 -1
  113. package/src/commands/monitor/saveDatWriter/types.d.ts +0 -5
  114. package/src/commands/monitor/spawnSaveDatWriter.d.ts +0 -4
  115. package/src/commands/monitor/touchWatcherSaveDatFiles.d.ts +0 -2
  116. package/src/commands/publish/publish.d.ts +0 -2
  117. package/src/configFile.d.ts +0 -4
  118. package/src/constants.d.ts +0 -34
  119. package/src/exec.d.ts +0 -4
  120. package/src/file.d.ts +0 -12
  121. package/src/main.d.ts +0 -2
  122. package/src/parseArgs.d.ts +0 -1
  123. package/src/prompt.d.ts +0 -5
  124. package/src/types/Command.d.ts +0 -2
  125. package/src/types/Config.d.ts +0 -18
  126. package/src/types/GitHubCLIHostsYAML.d.ts +0 -7
  127. package/src/utils.d.ts +0 -13
  128. package/src/validateInIsaacScriptProject.d.ts +0 -1
  129. package/src/validateNodeVersion.d.ts +0 -5
  130. package/src/validateOS.d.ts +0 -1
package/README.md CHANGED
@@ -1,11 +1,9 @@
1
1
  # isaacscript-cli
2
2
 
3
- This library was generated with [Nx](https://nx.dev).
3
+ [![npm version](https://img.shields.io/npm/v/isaacscript.svg)](https://www.npmjs.com/package/isaacscript)
4
4
 
5
- ## Building
5
+ IsaacScript is a tool to help you create _Binding of Isaac: Repentance_ mods using [TypeScript](https://www.typescriptlang.org/).
6
6
 
7
- Run `nx build isaacscript-cli` to build the library.
7
+ Please visit the [official website](https://isaacscript.github.io/) for more information.
8
8
 
9
- ## Running unit tests
10
-
11
- Run `nx test isaacscript-cli` to execute the unit tests via [Jest](https://jestjs.io).
9
+ This package contains the command-line tool that initializes new mods and monitors the current project. (The binary is called `isaacscript`, not `isaacscript-cli`. The package is named `isaacscript-cli` to disambiguate it from the other projects in this monorepo.)
@@ -0,0 +1,3 @@
1
+ # MOD-NAME-TO-REPLACE
2
+
3
+ MOD-NAME-TO-REPLACE is a mod for _[The Binding of Isaac: Repentance](https://store.steampowered.com/app/1426300/The_Binding_of_Isaac_Repentance/)_, written in [TypeScript](https://www.typescriptlang.org/) using the [IsaacScript](https://isaacscript.github.io/) framework.
@@ -0,0 +1,147 @@
1
+ # Per-user IsaacScript settings
2
+ isaacscript.json
3
+
4
+ # The transpiled Lua output
5
+ mod/main.lua
6
+
7
+ # Windows artifacts
8
+ thumbs.db
9
+
10
+ # MacOS artifacts
11
+ .DS_Store
12
+
13
+ # ------------------------------
14
+ # GitHub Node.gitignore template
15
+ # https://raw.githubusercontent.com/github/gitignore/master/Node.gitignore
16
+ # ------------------------------
17
+
18
+ # Logs
19
+ logs
20
+ *.log
21
+ npm-debug.log*
22
+ yarn-debug.log*
23
+ yarn-error.log*
24
+ lerna-debug.log*
25
+ .pnpm-debug.log*
26
+
27
+ # Diagnostic reports (https://nodejs.org/api/report.html)
28
+ report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
29
+
30
+ # Runtime data
31
+ pids
32
+ *.pid
33
+ *.seed
34
+ *.pid.lock
35
+
36
+ # Directory for instrumented libs generated by jscoverage/JSCover
37
+ lib-cov
38
+
39
+ # Coverage directory used by tools like istanbul
40
+ coverage
41
+ *.lcov
42
+
43
+ # nyc test coverage
44
+ .nyc_output
45
+
46
+ # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
47
+ .grunt
48
+
49
+ # Bower dependency directory (https://bower.io/)
50
+ bower_components
51
+
52
+ # node-waf configuration
53
+ .lock-wscript
54
+
55
+ # Compiled binary addons (https://nodejs.org/api/addons.html)
56
+ build/Release
57
+
58
+ # Dependency directories
59
+ node_modules/
60
+ jspm_packages/
61
+
62
+ # Snowpack dependency directory (https://snowpack.dev/)
63
+ web_modules/
64
+
65
+ # TypeScript cache
66
+ *.tsbuildinfo
67
+
68
+ # Optional npm cache directory
69
+ .npm
70
+
71
+ # Optional eslint cache
72
+ .eslintcache
73
+
74
+ # Optional stylelint cache
75
+ .stylelintcache
76
+
77
+ # Microbundle cache
78
+ .rpt2_cache/
79
+ .rts2_cache_cjs/
80
+ .rts2_cache_es/
81
+ .rts2_cache_umd/
82
+
83
+ # Optional REPL history
84
+ .node_repl_history
85
+
86
+ # Output of 'npm pack'
87
+ *.tgz
88
+
89
+ # Yarn Integrity file
90
+ .yarn-integrity
91
+
92
+ # dotenv environment variable files
93
+ .env
94
+ .env.development.local
95
+ .env.test.local
96
+ .env.production.local
97
+ .env.local
98
+
99
+ # parcel-bundler cache (https://parceljs.org/)
100
+ .cache
101
+ .parcel-cache
102
+
103
+ # Next.js build output
104
+ .next
105
+ out
106
+
107
+ # Nuxt.js build / generate output
108
+ .nuxt
109
+ dist
110
+
111
+ # Gatsby files
112
+ .cache/
113
+ # Comment in the public line in if your project uses Gatsby and not Next.js
114
+ # https://nextjs.org/blog/next-9-1#public-directory-support
115
+ # public
116
+
117
+ # vuepress build output
118
+ .vuepress/dist
119
+
120
+ # vuepress v2.x temp and cache directory
121
+ .temp
122
+ .cache
123
+
124
+ # Docusaurus cache and generated files
125
+ .docusaurus
126
+
127
+ # Serverless directories
128
+ .serverless/
129
+
130
+ # FuseBox cache
131
+ .fusebox/
132
+
133
+ # DynamoDB Local files
134
+ .dynamodb/
135
+
136
+ # TernJS port file
137
+ .tern-port
138
+
139
+ # Stores VSCode versions used for testing VSCode extensions
140
+ .vscode-test
141
+
142
+ # yarn v2
143
+ .yarn/cache
144
+ .yarn/unplugged
145
+ .yarn/build-state.yml
146
+ .yarn/install-state.gz
147
+ .pnp.*
@@ -0,0 +1,19 @@
1
+ import { ModCallback } from "isaac-typescript-definitions";
2
+
3
+ const MOD_NAME = "MOD-NAME-TO-REPLACE";
4
+
5
+ export function main(): void {
6
+ // Instantiate a new mod object, which grants the ability to add callback functions that
7
+ // correspond to in-game events.
8
+ const mod = RegisterMod(MOD_NAME, 1);
9
+
10
+ // Set a callback function that corresponds to when a new run is started.
11
+ mod.AddCallback(ModCallback.POST_GAME_STARTED, postGameStarted);
12
+
13
+ // Print an initialization message to the "log.txt" file.
14
+ Isaac.DebugString(`${MOD_NAME} initialized.`);
15
+ }
16
+
17
+ function postGameStarted() {
18
+ Isaac.DebugString("Callback triggered: MC_POST_GAME_STARTED");
19
+ }
@@ -0,0 +1,6 @@
1
+ "workshopitem"
2
+ {
3
+ "appid" "250900"
4
+ "publishedfileid" ""
5
+ "contentfolder" "MOD-TARGET-DIR"
6
+ }
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8" ?>
2
+ <metadata>
3
+ <name>MOD-NAME-TO-REPLACE</name>
4
+ <directory>MOD-NAME-TO-REPLACE</directory>
5
+ <description>MOD-NAME-TO-REPLACE is a currently a work in progress.</description>
6
+ <version>1.0</version>
7
+ <visibility />
8
+ </metadata>
@@ -0,0 +1,20 @@
1
+ {
2
+ "name": "MOD-NAME-TO-REPLACE",
3
+ "version": "0.0.1",
4
+ "description": "A mod for The Binding of Isaac: Repentance",
5
+ "keywords": [
6
+ "isaac",
7
+ "mod",
8
+ "rebirth",
9
+ "afterbirth",
10
+ "repentance"
11
+ ],
12
+ "license": "GPL-3.0",
13
+ "dependencies": {
14
+ "isaac-typescript-definitions": "^0.0.1",
15
+ "isaacscript": "^0.0.1",
16
+ "isaacscript-common": "^0.0.1",
17
+ "isaacscript-lint": "^0.0.1",
18
+ "isaacscript-spell": "^0.0.1"
19
+ }
20
+ }
@@ -0,0 +1,2 @@
1
+ STEAM_USERNAME=""
2
+ STEAM_PASSWORD=""
@@ -0,0 +1,24 @@
1
+ // This is the configuration file for ESLint, the TypeScript linter:
2
+ // https://eslint.org/docs/user-guide/configuring
3
+ module.exports = {
4
+ extends: [
5
+ /**
6
+ * The linter base is the IsaacScript mod config:
7
+ * https://github.com/IsaacScript/eslint-config-isaacscript/blob/main/mod.js
8
+ */
9
+ "eslint-config-isaacscript/mod",
10
+ ],
11
+
12
+ parserOptions: {
13
+ /**
14
+ * ESLint needs to know about the project's TypeScript settings in order for TypeScript-specific
15
+ * things to lint correctly. We do not point this at "./tsconfig.json" because certain files
16
+ * (such at this file) should be linted but not included in the actual project output.
17
+ */
18
+ project: "./tsconfig.eslint.json",
19
+ },
20
+
21
+ rules: {
22
+ // Insert changed or disabled rules here, if necessary.
23
+ },
24
+ };
@@ -0,0 +1,54 @@
1
+ name: CI
2
+
3
+ on: [push, pull_request]
4
+
5
+ jobs:
6
+ build_and_lint:
7
+ runs-on: ubuntu-latest
8
+ steps:
9
+ - name: Checkout the repository
10
+ uses: actions/checkout@v3
11
+
12
+ - name: Setup Node.js
13
+ uses: actions/setup-node@v3
14
+ with:
15
+ # The default version is 14. The ESLint config requires Node 16 to work properly.
16
+ node-version: "16"
17
+ cache: "npm"
18
+
19
+ - name: Retrieve the cached "node_modules" directory (if present)
20
+ uses: actions/cache@v3
21
+ id: node-cache
22
+ with:
23
+ path: node_modules
24
+ key: node-modules-${{ runner.os }}-${{ hashFiles('package-lock.json') }}
25
+
26
+ - name: Install dependencies (if the cached directory was not found)
27
+ if: steps.node-cache.outputs.cache-hit != 'true'
28
+ run: npm ci
29
+
30
+ - name: Install xmllint (which the "lint.sh" script uses)
31
+ run: sudo apt-get update && sudo apt-get install libxml2-utils -y
32
+
33
+ - name: Test to see if the project compiles
34
+ run: bash build.sh
35
+
36
+ - name: Perform automated checks
37
+ run: bash lint.sh
38
+
39
+ # To enable CI failure notifications over Discord, add a "DISCORD_WEBHOOK" secret to the
40
+ # repository equal to the URL for the webhook, and then uncomment the lines below.
41
+
42
+ #discord:
43
+ # name: Discord Failure Notification
44
+ # needs: [build_and_lint]
45
+ # if: always() # This is needed to always run this job, even if the other jobs fail.
46
+ # runs-on: ubuntu-latest
47
+ # steps:
48
+ # - uses: technote-space/workflow-conclusion-action@v2
49
+ # - if: env.WORKFLOW_CONCLUSION != 'success' && env.WORKFLOW_CONCLUSION != 'cancelled'
50
+ # uses: sarisia/actions-status-discord@v1
51
+ # with:
52
+ # webhook: ${{ secrets.DISCORD_WEBHOOK }}
53
+ # status: ${{ env.WORKFLOW_CONCLUSION }}
54
+ # title: ""
@@ -0,0 +1,14 @@
1
+ # Ignore compiled output.
2
+ dist
3
+
4
+ # The VSCode CSpell plugin causes the file to become unformatted whenever a new word is added.
5
+ cspell.json
6
+
7
+ # Ignore all of the XML files created by Basement Renovator.
8
+ mod/content/rooms/**/*.xml
9
+ mod/content/luarooms/**/*.xml
10
+ mod/resources/rooms/**/*.xml
11
+ mod/resources/luarooms/**/*.xml
12
+
13
+ # Ignore all of the XML files created by the animation editor.
14
+ mod/resources/**/*.anm2
@@ -0,0 +1,42 @@
1
+ // This is the configuration file for Prettier, the auto-formatter:
2
+ // https://prettier.io/docs/en/configuration.html
3
+ module.exports = {
4
+ // Always print trailing commas:
5
+ // https://prettier.io/docs/en/options.html#trailing-commas
6
+ // The default is "es5" - Trailing commas where valid in ES5 (objects, arrays, etc.). However,
7
+ // always having trailing commas is objectively better. The Airbnb style guide agrees:
8
+ // https://github.com/airbnb/javascript#commas--dangling
9
+ // Prettier itself also acknowledges Nik Graf's blog in their official blog:
10
+ // https://prettier.io/blog/2020/03/21/2.0.0.html
11
+ // https://medium.com/@nikgraf/why-you-should-enforce-dangling-commas-for-multiline-statements-d034c98e36f8
12
+ // Prettier will change the default in the future:
13
+ // https://github.com/prettier/prettier/issues/9369
14
+ trailingComma: "all",
15
+
16
+ // We want to always use "lf" to be consistent with all platforms.
17
+ endOfLine: "lf",
18
+
19
+ // Allow proper formatting of JSONC files:
20
+ // https://github.com/prettier/prettier/issues/5708
21
+ overrides: [
22
+ {
23
+ files: ["**/.vscode/*.json", "**/tsconfig.json", "**/tsconfig.*.json"],
24
+ options: {
25
+ parser: "json5",
26
+ quoteProps: "preserve",
27
+ },
28
+ },
29
+ {
30
+ files: ["**/*.xml"],
31
+ options: {
32
+ printWidth: 1000000,
33
+ },
34
+ },
35
+ ],
36
+
37
+ // Allow proper formatting of XML files:
38
+ // https://github.com/prettier/plugin-xml#configuration
39
+ // The default is "struct". However, whitespace cannot be reformatted unless this is set to
40
+ // "ignore".
41
+ xmlWhitespaceSensitivity: "ignore",
42
+ };
@@ -0,0 +1,10 @@
1
+ // These are Visual Studio Code extensions that are intended to be used with this particular
2
+ // repository: https://go.microsoft.com/fwlink/?LinkId=827846
3
+ {
4
+ "recommendations": [
5
+ "esbenp.prettier-vscode", // The TypeScript formatter
6
+ "dbaeumer.vscode-eslint", // The TypeScript linter
7
+ "streetsidesoftware.code-spell-checker", // A spell-checker extension based on cspell
8
+ "typescript-to-lua.vscode-typescript-to-lua", // The TypeScriptToLua extension
9
+ ],
10
+ }
@@ -0,0 +1,79 @@
1
+ // These are Visual Studio Code settings that should apply to this particular repository.
2
+ {
3
+ // ----------------
4
+ // Vanilla settings
5
+ // ----------------
6
+
7
+ // This matches the Airbnb JavaScript style guide.
8
+ "editor.rulers": [100],
9
+ "editor.tabSize": 2,
10
+
11
+ "files.associations": {
12
+ "*.anm2": "xml", // anm2 files are just XML files
13
+ "*.dat": "json", // Nearly all mods save JSON to the "save#.dat" file
14
+ },
15
+
16
+ // We want to always use "lf" to be consistent with all platforms.
17
+ "files.eol": "\n",
18
+
19
+ // Automatically removing all trailing whitespace when saving a file.
20
+ "files.trimTrailingWhitespace": true,
21
+
22
+ // Configure glob patterns for excluding files and folders in full text searches and quick open.
23
+ // (File extensions must be specified or the glob won't work properly.)
24
+ "search.exclude": {
25
+ "**/*.png": true,
26
+ "**/*.wav": true,
27
+ "dist/**/*.ts": true,
28
+ "dist/**/*.js": true,
29
+ "dist/**/*.json": true,
30
+ "dist/**/*.lua": true,
31
+ },
32
+
33
+ // -----------------
34
+ // Language settings
35
+ // -----------------
36
+
37
+ // By default, VSCode will not automatically fill-in function arguments.
38
+ "javascript.suggest.completeFunctionCalls": true,
39
+ "typescript.suggest.completeFunctionCalls": true,
40
+
41
+ // Automatically run the formatter when certain files are saved.
42
+ "[javascript]": {
43
+ "editor.codeActionsOnSave": ["source.fixAll.eslint"],
44
+ "editor.defaultFormatter": "esbenp.prettier-vscode",
45
+ "editor.formatOnSave": true,
46
+ "editor.tabSize": 2,
47
+ },
48
+ "[typescript]": {
49
+ "editor.codeActionsOnSave": ["source.fixAll.eslint"],
50
+ "editor.defaultFormatter": "esbenp.prettier-vscode",
51
+ "editor.formatOnSave": true,
52
+ "editor.tabSize": 2,
53
+ },
54
+ "[json]": {
55
+ "editor.defaultFormatter": "esbenp.prettier-vscode",
56
+ "editor.formatOnSave": true,
57
+ "editor.tabSize": 2,
58
+ },
59
+ "[jsonc]": {
60
+ "editor.defaultFormatter": "esbenp.prettier-vscode",
61
+ "editor.formatOnSave": true,
62
+ "editor.tabSize": 2,
63
+ },
64
+ "[yaml]": {
65
+ "editor.defaultFormatter": "esbenp.prettier-vscode",
66
+ "editor.formatOnSave": true,
67
+ "editor.tabSize": 2,
68
+ },
69
+ "[xml]": {
70
+ "editor.defaultFormatter": "esbenp.prettier-vscode",
71
+ "editor.formatOnSave": true,
72
+ "editor.tabSize": 2,
73
+ },
74
+ "[markdown]": {
75
+ "editor.defaultFormatter": "esbenp.prettier-vscode",
76
+ "editor.formatOnSave": true,
77
+ "editor.tabSize": 2,
78
+ },
79
+ }