From 07f6d49ef3d553ea79da4b2012c6fc5c193fd945 Mon Sep 17 00:00:00 2001 From: fisker Cheung Date: Tue, 13 Oct 2020 09:17:33 +0800 Subject: [PATCH] Stop inferring the parser to be `json` for `.jsonl` files (#9371) Co-authored-by: Georgii Dolzhykov --- changelog_unreleased/api/pr-9371.md | 19 +++++++++++++++++++ cspell.json | 5 ++++- src/language-js/index.js | 1 + .../__snapshots__/infer-parser.js.snap | 5 +++++ .../__snapshots__/support-info.js.snap | 1 - tests_integration/__tests__/infer-parser.js | 13 +++++++++++++ .../cli/infer-parser/known-unknown/known.js | 2 ++ .../infer-parser/known-unknown/unknown.jsonl | 4 ++++ 8 files changed, 48 insertions(+), 2 deletions(-) create mode 100644 changelog_unreleased/api/pr-9371.md create mode 100644 tests_integration/cli/infer-parser/known-unknown/known.js create mode 100644 tests_integration/cli/infer-parser/known-unknown/unknown.jsonl diff --git a/changelog_unreleased/api/pr-9371.md b/changelog_unreleased/api/pr-9371.md new file mode 100644 index 000000000..22af5459e --- /dev/null +++ b/changelog_unreleased/api/pr-9371.md @@ -0,0 +1,19 @@ +#### Stop inferring the parser to be `json` for `.jsonl` files (#9371 by @fisker) + + +```console +// Prettier stable +$ prettier --check . +Checking formatting... +[error] bad.jsonl: SyntaxError: Unexpected token (2:1) +[error] 1 | '{"type": "t/f", "head": "England", "relation": "invaded", "tail": "United States"}' +[error] > 2 | '{"type": "t/f", "head": "England", "relation": "attacked", "tail": "Baltimore"}' +[error] | ^ +[error] 3 | +All matched files use Prettier code style! + +// Prettier master +$ prettier --check . +Checking formatting... +All matched files use Prettier code style! +``` diff --git a/cspell.json b/cspell.json index 8e4e3f3f5..2c6e73280 100644 --- a/cspell.json +++ b/cspell.json @@ -2,6 +2,7 @@ "version": "0.1", "words": [ "ACMR", + "Alexa", "algolia", "Amjad", "Andrey", @@ -75,6 +76,7 @@ "declarators", "dedent", "defun", + "Deloise", "deltice", "deopt", "dependabot", @@ -179,8 +181,9 @@ "josephfrazier", "jsesc", "jsfmt", - "judgements", + "jsonl", "JSXs", + "judgements", "kalmanb", "Karimov", "Kassens", diff --git a/src/language-js/index.js b/src/language-js/index.js index 7cc00f94b..00c22e142 100644 --- a/src/language-js/index.js +++ b/src/language-js/index.js @@ -71,6 +71,7 @@ const languages = [ parsers: ["json"], vscodeLanguageIds: ["json"], filenames: [...data.filenames, ".prettierrc"], + extensions: data.extensions.filter((extension) => extension !== ".jsonl"), })), createLanguage( require("linguist-languages/data/JSON with Comments.json"), diff --git a/tests_integration/__tests__/__snapshots__/infer-parser.js.snap b/tests_integration/__tests__/__snapshots__/infer-parser.js.snap index 10220ca0a..52b58ad43 100644 --- a/tests_integration/__tests__/__snapshots__/infer-parser.js.snap +++ b/tests_integration/__tests__/__snapshots__/infer-parser.js.snap @@ -128,6 +128,11 @@ Array [ ] `; +exports[`Known/Unknown (stdout) 1`] = ` +"known.js +" +`; + exports[`stdin no path and no parser --check logs error but exits with 0 (stderr) 1`] = ` "[error] No parser and no file path given, couldn't infer a parser. " diff --git a/tests_integration/__tests__/__snapshots__/support-info.js.snap b/tests_integration/__tests__/__snapshots__/support-info.js.snap index 6357b4a6f..e71ffe151 100644 --- a/tests_integration/__tests__/__snapshots__/support-info.js.snap +++ b/tests_integration/__tests__/__snapshots__/support-info.js.snap @@ -435,7 +435,6 @@ exports[`CLI --support-info (stdout) 1`] = ` \\".har\\", \\".ice\\", \\".JSON-tmLanguage\\", - \\".jsonl\\", \\".mcmeta\\", \\".tfstate\\", \\".tfstate.backup\\", diff --git a/tests_integration/__tests__/infer-parser.js b/tests_integration/__tests__/infer-parser.js index 3c5c73e38..5e27a6b09 100644 --- a/tests_integration/__tests__/infer-parser.js +++ b/tests_integration/__tests__/infer-parser.js @@ -194,3 +194,16 @@ describe("API with no path and no parser", () => { expect(global.console.warn.mock.calls[0]).toMatchSnapshot(); }); }); + +describe("Known/Unknown", () => { + runPrettier("cli/infer-parser/known-unknown", [ + "--end-of-line", + "lf", + "--list-different", + ".", + ]).test({ + status: 1, + stderr: "", + write: [], + }); +}); diff --git a/tests_integration/cli/infer-parser/known-unknown/known.js b/tests_integration/cli/infer-parser/known-unknown/known.js new file mode 100644 index 000000000..a77f53edb --- /dev/null +++ b/tests_integration/cli/infer-parser/known-unknown/known.js @@ -0,0 +1,2 @@ +hello( 'world' +) diff --git a/tests_integration/cli/infer-parser/known-unknown/unknown.jsonl b/tests_integration/cli/infer-parser/known-unknown/unknown.jsonl new file mode 100644 index 000000000..9720dd629 --- /dev/null +++ b/tests_integration/cli/infer-parser/known-unknown/unknown.jsonl @@ -0,0 +1,4 @@ +{"name": "Gilbert", "wins": [["straight", "7♣"], ["one pair", "10♥"]]} +{"name": "Alexa", "wins": [["two pair", "4♠"], ["two pair", "9♠"]]} +{"name": "May", "wins": []} +{"name": "Deloise", "wins": [["three of a kind", "5♣"]]}