prettier-vscode
prettier-vscode copied to clipboard
Prettier JSON returns an error when there is a capital to True or False as value
trafficstars
Summary
Uppercase True or False makes Prettier crash.
Github Repository to Reproduce Issue
none
Steps To Reproduce:
- Write True or False as a value in a dictionary.
- Format
Expected result
Prettier formats document.
Actual result
Prettier returns following error
Additional information
See end of logs
VS Code Version:
Version: 1.94.0 (user setup) Commit: d78a74bcdfad14d5d3b1b782f87255d802b57511 Date: 2024-10-02T13:08:12.626Z Electron: 30.5.1 ElectronBuildId: 10262041 Chromium: 124.0.6367.243 Node.js: 20.16.0 V8: 12.4.254.20-electron.0 OS: Windows_NT x64 10.0.22631
Prettier Extension Version: 11.0.0
OS and version: Windows 11
Prettier Log Output
["INFO" - 10:11:41 PM] Formatting untitled:Untitled-1
["INFO" - 10:11:41 PM] PrettierInstance:
{
"doc": {
"builders": {
"line": {
"type": "line"
},
"softline": {
"type": "line",
"soft": true
},
"hardline": {
"type": "concat",
"parts": [
{
"type": "line",
"hard": true
},
{
"type": "break-parent"
}
]
},
"literalline": {
"type": "concat",
"parts": [
{
"type": "line",
"hard": true,
"literal": true
},
{
"type": "break-parent"
}
]
},
"lineSuffixBoundary": {
"type": "line-suffix-boundary"
},
"cursor": {
"type": "cursor"
},
"breakParent": {
"type": "break-parent"
},
"trim": {
"type": "trim"
},
"hardlineWithoutBreakParent": {
"type": "line",
"hard": true
},
"literallineWithoutBreakParent": {
"type": "line",
"hard": true,
"literal": true
}
},
"printer": {},
"utils": {},
"debug": {}
},
"version": "2.8.8",
"util": {},
"__internal": {
"errors": {},
"coreOptions": {
"CATEGORY_CONFIG": "Config",
"CATEGORY_EDITOR": "Editor",
"CATEGORY_FORMAT": "Format",
"CATEGORY_OTHER": "Other",
"CATEGORY_OUTPUT": "Output",
"CATEGORY_GLOBAL": "Global",
"CATEGORY_SPECIAL": "Special",
"options": {
"cursorOffset": {
"since": "1.4.0",
"category": "Special",
"type": "int",
"default": -1,
"range": {
"start": -1,
"end": null,
"step": 1
},
"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.",
"cliCategory": "Editor"
},
"endOfLine": {
"since": "1.15.0",
"category": "Global",
"type": "choice",
"default": [
{
"since": "1.15.0",
"value": "auto"
},
{
"since": "2.0.0",
"value": "lf"
}
],
"description": "Which end of line characters to apply.",
"choices": [
{
"value": "lf",
"description": "Line Feed only (\\n), common on Linux and macOS as well as inside git repos"
},
{
"value": "crlf",
"description": "Carriage Return + Line Feed characters (\\r\\n), common on Windows"
},
{
"value": "cr",
"description": "Carriage Return character only (\\r), used very rarely"
},
{
"value": "auto",
"description": "Maintain existing\n(mixed values within one file are normalised by looking at what's used after the first line)"
}
]
},
"filepath": {
"since": "1.4.0",
"category": "Special",
"type": "path",
"description": "Specify the input filepath. This will be used to do parser inference.",
"cliName": "stdin-filepath",
"cliCategory": "Other",
"cliDescription": "Path to the file to pretend that stdin comes from."
},
"insertPragma": {
"since": "1.8.0",
"category": "Special",
"type": "boolean",
"default": false,
"description": "Insert @format pragma into file's first docblock comment.",
"cliCategory": "Other"
},
"parser": {
"since": "0.0.10",
"category": "Global",
"type": "choice",
"default": [
{
"since": "0.0.10",
"value": "babylon"
},
{
"since": "1.13.0"
}
],
"description": "Which parser to use.",
"choices": [
{
"value": "flow",
"description": "Flow"
},
{
"value": "babel",
"since": "1.16.0",
"description": "JavaScript"
},
{
"value": "babel-flow",
"since": "1.16.0",
"description": "Flow"
},
{
"value": "babel-ts",
"since": "2.0.0",
"description": "TypeScript"
},
{
"value": "typescript",
"since": "1.4.0",
"description": "TypeScript"
},
{
"value": "acorn",
"since": "2.6.0",
"description": "JavaScript"
},
{
"value": "espree",
"since": "2.2.0",
"description": "JavaScript"
},
{
"value": "meriyah",
"since": "2.2.0",
"description": "JavaScript"
},
{
"value": "css",
"since": "1.7.1",
"description": "CSS"
},
{
"value": "less",
"since": "1.7.1",
"description": "Less"
},
{
"value": "scss",
"since": "1.7.1",
"description": "SCSS"
},
{
"value": "json",
"since": "1.5.0",
"description": "JSON"
},
{
"value": "json5",
"since": "1.13.0",
"description": "JSON5"
},
{
"value": "json-stringify",
"since": "1.13.0",
"description": "JSON.stringify"
},
{
"value": "graphql",
"since": "1.5.0",
"description": "GraphQL"
},
{
"value": "markdown",
"since": "1.8.0",
"description": "Markdown"
},
{
"value": "mdx",
"since": "1.15.0",
"description": "MDX"
},
{
"value": "vue",
"since": "1.10.0",
"description": "Vue"
},
{
"value": "yaml",
"since": "1.14.0",
"description": "YAML"
},
{
"value": "glimmer",
"since": "2.3.0",
"description": "Ember / Handlebars"
},
{
"value": "html",
"since": "1.15.0",
"description": "HTML"
},
{
"value": "angular",
"since": "1.15.0",
"description": "Angular"
},
{
"value": "lwc",
"since": "1.17.0",
"description": "Lightning Web Components"
}
]
},
"plugins": {
"since": "1.10.0",
"type": "path",
"array": true,
"default": [
{
"value": []
}
],
"category": "Global",
"description": "Add a plugin. Multiple plugins can be passed as separate `--plugin`s.",
"cliName": "plugin",
"cliCategory": "Config"
},
"pluginSearchDirs": {
"since": "1.13.0",
"type": "path",
"array": true,
"default": [
{
"value": []
}
],
"category": "Global",
"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.",
"cliName": "plugin-search-dir",
"cliCategory": "Config"
},
"printWidth": {
"since": "0.0.0",
"category": "Global",
"type": "int",
"default": 80,
"description": "The line length where Prettier will try wrap.",
"range": {
"start": 0,
"end": null,
"step": 1
}
},
"rangeEnd": {
"since": "1.4.0",
"category": "Special",
"type": "int",
"default": null,
"range": {
"start": 0,
"end": null,
"step": 1
},
"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.",
"cliCategory": "Editor"
},
"rangeStart": {
"since": "1.4.0",
"category": "Special",
"type": "int",
"default": 0,
"range": {
"start": 0,
"end": null,
"step": 1
},
"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.",
"cliCategory": "Editor"
},
"requirePragma": {
"since": "1.7.0",
"category": "Special",
"type": "boolean",
"default": false,
"description": "Require either '@prettier' or '@format' to be present in the file's first docblock comment\nin order for it to be formatted.",
"cliCategory": "Other"
},
"tabWidth": {
"type": "int",
"category": "Global",
"default": 2,
"description": "Number of spaces per indentation level.",
"range": {
"start": 0,
"end": null,
"step": 1
}
},
"useTabs": {
"since": "1.0.0",
"category": "Global",
"type": "boolean",
"default": false,
"description": "Indent with tabs instead of spaces."
},
"embeddedLanguageFormatting": {
"since": "2.1.0",
"category": "Global",
"type": "choice",
"default": [
{
"since": "2.1.0",
"value": "auto"
}
],
"description": "Control how Prettier formats quoted code embedded in the file.",
"choices": [
{
"value": "auto",
"description": "Format embedded code if Prettier can automatically identify it."
},
{
"value": "off",
"description": "Never automatically format embedded code."
}
]
}
}
},
"optionsModule": {
"hiddenDefaults": {
"astFormat": "estree",
"printer": {},
"locStart": null,
"locEnd": null
}
},
"optionsNormalizer": {},
"utils": {}
},
"__debug": {}
}
["INFO" - 10:11:41 PM] File Info:
{
"ignored": false,
"inferredParser": null
}
["WARN" - 10:11:41 PM] Parser not inferred, trying VS Code language.
["INFO" - 10:11:41 PM] No local configuration (i.e. .prettierrc or .editorconfig) detected, falling back to VS Code configuration
["INFO" - 10:11:41 PM] Prettier Options:
{
"arrowParens": "always",
"bracketSpacing": true,
"endOfLine": "lf",
"htmlWhitespaceSensitivity": "css",
"insertPragma": false,
"singleAttributePerLine": false,
"bracketSameLine": false,
"jsxBracketSameLine": false,
"jsxSingleQuote": false,
"printWidth": 80,
"proseWrap": "preserve",
"quoteProps": "as-needed",
"requirePragma": false,
"semi": true,
"singleQuote": false,
"tabWidth": 2,
"trailingComma": "es5",
"useTabs": false,
"embeddedLanguageFormatting": "auto",
"vueIndentScriptAndStyle": false,
"experimentalTernaries": false,
"filepath": "Untitled-1",
"parser": "json"
}
["ERROR" - 10:11:41 PM] Error formatting document.
["ERROR" - 10:11:41 PM] Identifier 'True' is not allowed in JSON. (1:24)
> 1 | {'208650': {'success': True, 'data': {'type': 'game', 'name': 'Batman™: Arkham Knight', 'steam_appid': 208650, 'required_age': '17', 'is_free': False, 'controller_support': 'full', 'dlc': [
| ^^^^
2 | 367480,
3 | 313102,
4 | 313100,
SyntaxError: Identifier 'True' is not allowed in JSON. (1:24)
> 1 | {'208650': {'success': True, 'data': {'type': 'game', 'name': 'Batman™: Arkham Knight', 'steam_appid': 208650, 'required_age': '17', 'is_free': False, 'controller_support': 'full', 'dlc': [
| ^^^^
2 | 367480,
3 | 313102,
4 | 313100,
at p (c:\Users\Joris\.vscode\extensions\esbenp.prettier-vscode-11.0.0\node_modules\prettier\parser-babel.js:22:1054)
at v (c:\Users\Joris\.vscode\extensions\esbenp.prettier-vscode-11.0.0\node_modules\prettier\parser-babel.js:29:51472)
at S (c:\Users\Joris\.vscode\extensions\esbenp.prettier-vscode-11.0.0\node_modules\prettier\parser-babel.js:29:52190)
at S (c:\Users\Joris\.vscode\extensions\esbenp.prettier-vscode-11.0.0\node_modules\prettier\parser-babel.js:29:51832)
at S (c:\Users\Joris\.vscode\extensions\esbenp.prettier-vscode-11.0.0\node_modules\prettier\parser-babel.js:29:51668)
at S (c:\Users\Joris\.vscode\extensions\esbenp.prettier-vscode-11.0.0\node_modules\prettier\parser-babel.js:29:51832)
at S (c:\Users\Joris\.vscode\extensions\esbenp.prettier-vscode-11.0.0\node_modules\prettier\parser-babel.js:29:51668)
at Object.parse (c:\Users\Joris\.vscode\extensions\esbenp.prettier-vscode-11.0.0\node_modules\prettier\parser-babel.js:29:51349)
at Object.parse (c:\Users\Joris\.vscode\extensions\esbenp.prettier-vscode-11.0.0\node_modules\prettier\index.js:7515:23)
at coreFormat (c:\Users\Joris\.vscode\extensions\esbenp.prettier-vscode-11.0.0\node_modules\prettier\index.js:8829:18)
at formatWithCursor2 (c:\Users\Joris\.vscode\extensions\esbenp.prettier-vscode-11.0.0\node_modules\prettier\index.js:9021:18)
at c:\Users\Joris\.vscode\extensions\esbenp.prettier-vscode-11.0.0\node_modules\prettier\index.js:38183:12
at Object.format (c:\Users\Joris\.vscode\extensions\esbenp.prettier-vscode-11.0.0\node_modules\prettier\index.js:38197:12)
at t.default.format (c:\Users\Joris\.vscode\extensions\esbenp.prettier-vscode-11.0.0\dist\extension.js:1:16369)
at t.PrettierEditProvider.provideEdits (c:\Users\Joris\.vscode\extensions\esbenp.prettier-vscode-11.0.0\dist\extension.js:1:12927)
at RS.provideDocumentFormattingEdits (file:///d:/Program%20Files/Microsoft%20VS%20Code/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:137:130818)
["INFO" - 10:11:41 PM] Formatting completed in 3ms.