From 51744e10086bd6bc9ab53d5ddcb1e6cea10a1a5e Mon Sep 17 00:00:00 2001 From: Lucas Duailibe Date: Sun, 31 Dec 2017 12:01:21 -0300 Subject: [PATCH 001/277] Print parens in FunctionTypeAnnotation when arrowParens is "always" (#3616) * add test case * print parens in function type annotation --- src/language-js/printer-estree.js | 3 + .../__snapshots__/jsfmt.spec.js.snap | 110 ++++++++++++++++++ tests/flow_function_parentheses/jsfmt.spec.js | 1 + 3 files changed, 114 insertions(+) diff --git a/src/language-js/printer-estree.js b/src/language-js/printer-estree.js index 09fbf017..fd52d8d2 100644 --- a/src/language-js/printer-estree.js +++ b/src/language-js/printer-estree.js @@ -3285,6 +3285,9 @@ function printFunctionParams(path, print, options, expandArg, printTypeParams) { !fun.rest; if (isFlowShorthandWithOneArg) { + if (options.arrowParens === "always") { + return concat(["(", concat(printed), ")"]); + } return concat(printed); } diff --git a/tests/flow_function_parentheses/__snapshots__/jsfmt.spec.js.snap b/tests/flow_function_parentheses/__snapshots__/jsfmt.spec.js.snap index f193c2ff..995d58e3 100644 --- a/tests/flow_function_parentheses/__snapshots__/jsfmt.spec.js.snap +++ b/tests/flow_function_parentheses/__snapshots__/jsfmt.spec.js.snap @@ -34,6 +34,23 @@ const selectorByPath: Path => SomethingSelector< `; +exports[`single.js 3`] = ` +const selectorByPath: + Path + => SomethingSelector< + SomethingUEditorContextType, + SomethingUEditorContextType, + SomethingBulkValue +> = memoizeWithArgs(/* ... */) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +const selectorByPath: (Path) => SomethingSelector< + SomethingUEditorContextType, + SomethingUEditorContextType, + SomethingBulkValue +> = memoizeWithArgs(/* ... */); + +`; + exports[`test.js 1`] = ` type Banana = { eat: string => boolean, @@ -219,3 +236,96 @@ interface F { type ExtractType = (B) => D; `; + +exports[`test.js 3`] = ` +type Banana = { + eat: string => boolean, +}; + +type Hex = {n: 0x01}; + +type T = { method: (a) => void }; + +type T = { method(a): void }; + +declare class X { method(a): void } + +declare function f(a): void; + +var f: (a) => void; + +interface F { m(string): number } + +interface F { m: (string) => number } + +function f(o: { f: (string) => void }) {} + +function f(o: { f(string): void }) {} + +type f = (...arg) => void; + +type f = (/* comment */ arg) => void; + +type f = (arg /* comment */) => void; + +type f = (?arg) => void; + +class X { + constructor( + ideConnectionFactory: child_process$ChildProcess => FlowIDEConnection = + defaultIDEConnectionFactory, + ) { + } +} + +interface F { + ideConnectionFactoryLongLongLong: (child_process$ChildProcess) => FlowIDEConnection +} + +type ExtractType = (B) => D +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +type Banana = { + eat: (string) => boolean +}; + +type Hex = { n: 0x01 }; + +type T = { method: (a) => void }; + +type T = { method(a): void }; + +declare class X { method(a): void } + +declare function f(a): void; + +var f: (a) => void; + +interface F { m(string): number } + +interface F { m: (string) => number } + +function f(o: { f: (string) => void }) {} + +function f(o: { f(string): void }) {} + +type f = (...arg) => void; + +type f = (/* comment */ arg) => void; + +type f = (arg /* comment */) => void; + +type f = (?arg) => void; + +class X { + constructor( + ideConnectionFactory: (child_process$ChildProcess) => FlowIDEConnection = defaultIDEConnectionFactory + ) {} +} + +interface F { + ideConnectionFactoryLongLongLong: (child_process$ChildProcess) => FlowIDEConnection; +} + +type ExtractType = (B) => D; + +`; diff --git a/tests/flow_function_parentheses/jsfmt.spec.js b/tests/flow_function_parentheses/jsfmt.spec.js index 425bb9ff..d0170fda 100644 --- a/tests/flow_function_parentheses/jsfmt.spec.js +++ b/tests/flow_function_parentheses/jsfmt.spec.js @@ -1,2 +1,3 @@ run_spec(__dirname, ["flow", "babylon"]); run_spec(__dirname, ["flow", "babylon"], { trailingComma: "all" }); +run_spec(__dirname, ["flow", "babylon"], { arrowParens: "always" }); From 58e5536741f455f1ee2891b655063cf996e7015e Mon Sep 17 00:00:00 2001 From: Christopher Chedeau Date: Sun, 31 Dec 2017 16:45:06 +0100 Subject: [PATCH 002/277] Update GraphQL parser (#3605) * Update GraphQL parser Fixes #3601 This adds support for - description as strings - extending all the possible types - block strings - allow removing {} if there's no implementation for all graphql types This is a breaking change but shouldn't be a big issue. - Empty types are no longer allowed (there's an option to enable it but it hasn't been released yet). The fix is to remove `{}` Something that hasn't been changed because not released: - Doesn't support the new `&` separator for implementing multiple interfaces A bug has been fixed: - Now properly prints @directives for unions. * Properly handle triple quotes --- package.json | 2 +- src/language-graphql/printer-graphql.js | 184 +++++++----- .../__snapshots__/jsfmt.spec.js.snap | 24 +- .../directive_decl.graphql | 12 +- .../__snapshots__/jsfmt.spec.js.snap | 265 +++++++++++++++++- .../graphql_kitchen_sink/kitchen_sink.graphql | 13 +- .../schema_kitchen_sink.graphql | 120 ++++++++ .../__snapshots__/jsfmt.spec.js.snap | 4 +- tests/graphql_newline/directive_decl.graphql | 2 +- .../__snapshots__/jsfmt.spec.js.snap | 2 + .../implements.graphql | 1 + .../__snapshots__/jsfmt.spec.js.snap | 24 ++ tests/graphql_string/string.graphql | 12 + yarn.lock | 14 +- 14 files changed, 571 insertions(+), 108 deletions(-) create mode 100644 tests/graphql_kitchen_sink/schema_kitchen_sink.graphql diff --git a/package.json b/package.json index 15b8e4d7..312f286a 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,7 @@ "flow-parser": "0.59.0", "get-stream": "3.0.0", "globby": "6.1.0", - "graphql": "0.10.5", + "graphql": "0.12.3", "ignore": "3.3.7", "jest-docblock": "21.3.0-beta.11", "jest-validate": "21.1.0", diff --git a/src/language-graphql/printer-graphql.js b/src/language-graphql/printer-graphql.js index 94b953fb..63c2e752 100644 --- a/src/language-graphql/printer-graphql.js +++ b/src/language-graphql/printer-graphql.js @@ -31,9 +31,11 @@ function genericPrint(path, options, print) { ]); } case "OperationDefinition": { + const hasOperation = options.originalText[util.locStart(n)] !== "{"; + const hasName = !!n.name; return concat([ - n.name === null ? "" : n.operation, - n.name ? concat([" ", path.call(print, "name")]) : "", + hasOperation ? n.operation : "", + hasOperation && hasName ? concat([" ", path.call(print, "name")]) : "", n.variableDefinitions && n.variableDefinitions.length ? group( concat([ @@ -53,7 +55,7 @@ function genericPrint(path, options, print) { ) : "", printDirectives(path, print, n), - n.selectionSet ? (n.name === null ? "" : " ") : "", + n.selectionSet ? (!hasOperation && !hasName ? "" : " ") : "", path.call(print, "selectionSet") ]); } @@ -123,6 +125,11 @@ function genericPrint(path, options, print) { return n.value; } case "StringValue": { + if (n.block) { + // It is not possible to distinguish between """\nabc\n""" and """abc""" + // https://github.com/graphql/graphql-js/issues/1188 + return options.originalText.slice(util.locStart(n), util.locEnd(n)); + } return concat(['"', n.value.replace(/["\\]/g, "\\$&"), '"']); } case "IntValue": @@ -231,31 +238,37 @@ function genericPrint(path, options, print) { return concat(["extend ", path.call(print, "definition")]); } + case "ObjectTypeExtension": case "ObjectTypeDefinition": { return concat([ + path.call(print, "description"), + n.description ? hardline : "", + n.kind === "ObjectTypeExtension" ? "extend " : "", "type ", path.call(print, "name"), n.interfaces.length > 0 ? concat([" implements ", join(", ", path.map(print, "interfaces"))]) : "", printDirectives(path, print, n), - " {", n.fields.length > 0 - ? indent( - concat([ - hardline, - join( + ? concat([ + " {", + indent( + concat([ hardline, - path.call( - fieldsPath => printSequence(fieldsPath, options, print), - "fields" + join( + hardline, + path.call( + fieldsPath => printSequence(fieldsPath, options, print), + "fields" + ) ) - ) - ]) - ) - : "", - hardline, - "}" + ]) + ), + hardline, + "}" + ]) + : "" ]); } @@ -291,6 +304,8 @@ function genericPrint(path, options, print) { case "DirectiveDefinition": { return concat([ + path.call(print, "description"), + n.description ? hardline : "", "directive ", "@", path.call(print, "name"), @@ -319,28 +334,35 @@ function genericPrint(path, options, print) { ]); } + case "EnumTypeExtension": case "EnumTypeDefinition": { return concat([ + path.call(print, "description"), + n.description ? hardline : "", + n.kind === "EnumTypeExtension" ? "extend " : "", "enum ", path.call(print, "name"), printDirectives(path, print, n), - " {", + n.values.length > 0 - ? indent( - concat([ - hardline, - join( + ? concat([ + " {", + indent( + concat([ hardline, - path.call( - valuesPath => printSequence(valuesPath, options, print), - "values" + join( + hardline, + path.call( + valuesPath => printSequence(valuesPath, options, print), + "values" + ) ) - ) - ]) - ) - : "", - hardline, - "}" + ]) + ), + hardline, + "}" + ]) + : "" ]); } @@ -361,28 +383,34 @@ function genericPrint(path, options, print) { ]); } + case "InputObjectTypeExtension": case "InputObjectTypeDefinition": { return concat([ + path.call(print, "description"), + n.description ? hardline : "", + n.kind === "InputObjectTypeExtension" ? "extend " : "", "input ", path.call(print, "name"), printDirectives(path, print, n), - " {", n.fields.length > 0 - ? indent( - concat([ - hardline, - join( + ? concat([ + " {", + indent( + concat([ hardline, - path.call( - fieldsPath => printSequence(fieldsPath, options, print), - "fields" + join( + hardline, + path.call( + fieldsPath => printSequence(fieldsPath, options, print), + "fields" + ) ) - ) - ]) - ) - : "", - hardline, - "}" + ]) + ), + hardline, + "}" + ]) + : "" ]); } @@ -418,28 +446,35 @@ function genericPrint(path, options, print) { ]); } + case "InterfaceTypeExtension": case "InterfaceTypeDefinition": { return concat([ + path.call(print, "description"), + n.description ? hardline : "", + n.kind === "InterfaceTypeExtension" ? "extend " : "", "interface ", path.call(print, "name"), printDirectives(path, print, n), - " {", + n.fields.length > 0 - ? indent( - concat([ - hardline, - join( + ? concat([ + " {", + indent( + concat([ hardline, - path.call( - fieldsPath => printSequence(fieldsPath, options, print), - "fields" + join( + hardline, + path.call( + fieldsPath => printSequence(fieldsPath, options, print), + "fields" + ) ) - ) - ]) - ) - : "", - hardline, - "}" + ]) + ), + hardline, + "}" + ]) + : "" ]); } @@ -463,25 +498,42 @@ function genericPrint(path, options, print) { ]); } + case "UnionTypeExtension": case "UnionTypeDefinition": { return group( concat([ - "union ", - path.call(print, "name"), - " =", - ifBreak("", " "), - indent( + path.call(print, "description"), + n.description ? hardline : "", + group( concat([ - ifBreak(concat([line, " "])), - join(concat([line, "| "]), path.map(print, "types")) + n.kind === "UnionTypeExtension" ? "extend " : "", + "union ", + path.call(print, "name"), + printDirectives(path, print, n), + n.types.length > 0 + ? concat([ + " =", + ifBreak("", " "), + indent( + concat([ + ifBreak(concat([line, " "])), + join(concat([line, "| "]), path.map(print, "types")) + ]) + ) + ]) + : "" ]) ) ]) ); } + case "ScalarTypeExtension": case "ScalarTypeDefinition": { return concat([ + path.call(print, "description"), + n.description ? hardline : "", + n.kind === "ScalarTypeExtension" ? "extend " : "", "scalar ", path.call(print, "name"), printDirectives(path, print, n) diff --git a/tests/graphql_directive_decl/__snapshots__/jsfmt.spec.js.snap b/tests/graphql_directive_decl/__snapshots__/jsfmt.spec.js.snap index a9fb505d..5db608cf 100644 --- a/tests/graphql_directive_decl/__snapshots__/jsfmt.spec.js.snap +++ b/tests/graphql_directive_decl/__snapshots__/jsfmt.spec.js.snap @@ -1,23 +1,23 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`directive_decl.graphql 1`] = ` -directive @a on FIELD1 -directive @a(as: String) on FIELD1 -directive @a(as: String = 1) on FIELD1 -directive @a(as: String, b: Int!) on FIELD1 -directive @a(as: String! = 1 @deprecated) on FIELD1 -directive @a(as: String! = 1 @deprecated) on FIELD1 | FIELD2 +directive @a on QUERY +directive @a(as: String) on QUERY +directive @a(as: String = 1) on QUERY +directive @a(as: String, b: Int!) on QUERY +directive @a(as: String! = 1 @deprecated) on QUERY +directive @a(as: String! = 1 @deprecated) on QUERY | MUTATION ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -directive @a on FIELD1 +directive @a on QUERY -directive @a(as: String) on FIELD1 +directive @a(as: String) on QUERY -directive @a(as: String = 1) on FIELD1 +directive @a(as: String = 1) on QUERY -directive @a(as: String, b: Int!) on FIELD1 +directive @a(as: String, b: Int!) on QUERY -directive @a(as: String! = 1 @deprecated) on FIELD1 +directive @a(as: String! = 1 @deprecated) on QUERY -directive @a(as: String! = 1 @deprecated) on FIELD1 | FIELD2 +directive @a(as: String! = 1 @deprecated) on QUERY | MUTATION `; diff --git a/tests/graphql_directive_decl/directive_decl.graphql b/tests/graphql_directive_decl/directive_decl.graphql index 6f93dffe..4f60a34a 100644 --- a/tests/graphql_directive_decl/directive_decl.graphql +++ b/tests/graphql_directive_decl/directive_decl.graphql @@ -1,6 +1,6 @@ -directive @a on FIELD1 -directive @a(as: String) on FIELD1 -directive @a(as: String = 1) on FIELD1 -directive @a(as: String, b: Int!) on FIELD1 -directive @a(as: String! = 1 @deprecated) on FIELD1 -directive @a(as: String! = 1 @deprecated) on FIELD1 | FIELD2 +directive @a on QUERY +directive @a(as: String) on QUERY +directive @a(as: String = 1) on QUERY +directive @a(as: String, b: Int!) on QUERY +directive @a(as: String! = 1 @deprecated) on QUERY +directive @a(as: String! = 1 @deprecated) on QUERY | MUTATION diff --git a/tests/graphql_kitchen_sink/__snapshots__/jsfmt.spec.js.snap b/tests/graphql_kitchen_sink/__snapshots__/jsfmt.spec.js.snap index 1fe61eb7..f5683909 100644 --- a/tests/graphql_kitchen_sink/__snapshots__/jsfmt.spec.js.snap +++ b/tests/graphql_kitchen_sink/__snapshots__/jsfmt.spec.js.snap @@ -1,6 +1,11 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`kitchen_sink.graphql 1`] = ` +# Copyright (c) 2015-present, Facebook, Inc. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. + query queryName($foo: ComplexType, $site: Site = MOBILE) { whoever123is: node(id: [123, 456]) { id , @@ -44,18 +49,21 @@ subscription StoryLikeSubscription($input: StoryLikeSubscribeInput) { } fragment frag on Friend { - foo(size: $size, bar: $b, obj: {key: "value"}) + foo(size: $size, bar: $b, obj: {key: "value", block: """ + block string uses \\""" + """}) } { unnamed(truthy: true, falsey: false, nullish: null), query } - -query { - field -} ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# Copyright (c) 2015-present, Facebook, Inc. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. + query queryName($foo: ComplexType, $site: Site = MOBILE) { whoever123is: node(id: [123, 456]) { id @@ -99,7 +107,13 @@ subscription StoryLikeSubscription($input: StoryLikeSubscribeInput) { } fragment frag on Friend { - foo(size: $size, bar: $b, obj: { key: "value" }) + foo( + size: $size + bar: $b + obj: { key: "value", block: """ + block string uses \\""" + """ } + ) } { @@ -107,8 +121,243 @@ fragment frag on Friend { query } -query { - field +`; + +exports[`schema_kitchen_sink.graphql 1`] = ` +# Copyright (c) 2015-present, Facebook, Inc. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. + +schema { + query: QueryType + mutation: MutationType } +""" +This is a description +of the \`Foo\` type. +""" +type Foo implements Bar { + one: Type + two(argument: InputType!): Type + three(argument: InputType, other: String): Int + four(argument: String = "string"): String + five(argument: [String] = ["string", "string"]): String + six(argument: InputType = {key: "value"}): Type + seven(argument: Int = null): Type +} + +type AnnotatedObject @onObject(arg: "value") { + annotatedField(arg: Type = "default" @onArg): Type @onField +} + +type UndefinedType + +extend type Foo { + seven(argument: [String]): Type +} + +extend type Foo @onType + +""" +This is a description +""" +interface Bar { + one: Type + four(argument: String = "string"): String +} + +interface AnnotatedInterface @onInterface { + annotatedField(arg: Type @onArg): Type @onField +} + +interface UndefinedInterface + +extend interface Bar { + two(argument: InputType!): Type +} + +extend interface Bar @onInterface + +union Feed = Story | Article | Advert + +union AnnotatedUnion @onUnion = A | B + +union AnnotatedUnionTwo @onUnion = | A | B + +union UndefinedUnion + +extend union Feed = Photo | Video + +extend union Feed @onUnion + +scalar CustomScalar + +scalar AnnotatedScalar @onScalar + +extend scalar CustomScalar @onScalar + +enum Site { + DESKTOP + MOBILE +} + +enum AnnotatedEnum @onEnum { + ANNOTATED_VALUE @onEnumValue + OTHER_VALUE +} + +enum UndefinedEnum + +extend enum Site { + VR +} + +extend enum Site @onEnum + +input InputType { + key: String! + answer: Int = 42 +} + +input AnnotatedInput @onInputObject { + annotatedField: Type @onField +} + +input UndefinedInput + +extend input InputType { + other: Float = 1.23e4 +} + +extend input InputType @onInputObject + +directive @skip(if: Boolean!) on FIELD | FRAGMENT_SPREAD | INLINE_FRAGMENT + +directive @include(if: Boolean!) + on FIELD + | FRAGMENT_SPREAD + | INLINE_FRAGMENT + +directive @include2(if: Boolean!) on + | FIELD + | FRAGMENT_SPREAD + | INLINE_FRAGMENT +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# Copyright (c) 2015-present, Facebook, Inc. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. + +schema { + query: QueryType + mutation: MutationType +} + +""" +This is a description +of the \`Foo\` type. +""" +type Foo implements Bar { + one: Type + two(argument: InputType!): Type + three(argument: InputType, other: String): Int + four(argument: String = "string"): String + five(argument: [String] = ["string", "string"]): String + six(argument: InputType = { key: "value" }): Type + seven(argument: Int = null): Type +} + +type AnnotatedObject @onObject(arg: "value") { + annotatedField(arg: Type = "default" @onArg): Type @onField +} + +type UndefinedType + +extend type Foo { + seven(argument: [String]): Type +} + +extend type Foo @onType + +""" +This is a description +""" +interface Bar { + one: Type + four(argument: String = "string"): String +} + +interface AnnotatedInterface @onInterface { + annotatedField(arg: Type @onArg): Type @onField +} + +interface UndefinedInterface + +extend interface Bar { + two(argument: InputType!): Type +} + +extend interface Bar @onInterface + +union Feed = Story | Article | Advert + +union AnnotatedUnion @onUnion = A | B + +union AnnotatedUnionTwo @onUnion = A | B + +union UndefinedUnion + +extend union Feed = Photo | Video + +extend union Feed @onUnion + +scalar CustomScalar + +scalar AnnotatedScalar @onScalar + +extend scalar CustomScalar @onScalar + +enum Site { + DESKTOP + MOBILE +} + +enum AnnotatedEnum @onEnum { + ANNOTATED_VALUE @onEnumValue + OTHER_VALUE +} + +enum UndefinedEnum + +extend enum Site { + VR +} + +extend enum Site @onEnum + +input InputType { + key: String! + answer: Int = 42 +} + +input AnnotatedInput @onInputObject { + annotatedField: Type @onField +} + +input UndefinedInput + +extend input InputType { + other: Float = 1.23e4 +} + +extend input InputType @onInputObject + +directive @skip(if: Boolean!) on FIELD | FRAGMENT_SPREAD | INLINE_FRAGMENT + +directive @include(if: Boolean!) on FIELD | FRAGMENT_SPREAD | INLINE_FRAGMENT + +directive @include2(if: Boolean!) on FIELD | FRAGMENT_SPREAD | INLINE_FRAGMENT + `; diff --git a/tests/graphql_kitchen_sink/kitchen_sink.graphql b/tests/graphql_kitchen_sink/kitchen_sink.graphql index 5f0900e8..7b7908a4 100644 --- a/tests/graphql_kitchen_sink/kitchen_sink.graphql +++ b/tests/graphql_kitchen_sink/kitchen_sink.graphql @@ -1,3 +1,8 @@ +# Copyright (c) 2015-present, Facebook, Inc. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. + query queryName($foo: ComplexType, $site: Site = MOBILE) { whoever123is: node(id: [123, 456]) { id , @@ -41,14 +46,12 @@ subscription StoryLikeSubscription($input: StoryLikeSubscribeInput) { } fragment frag on Friend { - foo(size: $size, bar: $b, obj: {key: "value"}) + foo(size: $size, bar: $b, obj: {key: "value", block: """ + block string uses \""" + """}) } { unnamed(truthy: true, falsey: false, nullish: null), query } - -query { - field -} diff --git a/tests/graphql_kitchen_sink/schema_kitchen_sink.graphql b/tests/graphql_kitchen_sink/schema_kitchen_sink.graphql new file mode 100644 index 00000000..0c72dcca --- /dev/null +++ b/tests/graphql_kitchen_sink/schema_kitchen_sink.graphql @@ -0,0 +1,120 @@ +# Copyright (c) 2015-present, Facebook, Inc. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. + +schema { + query: QueryType + mutation: MutationType +} + +""" +This is a description +of the `Foo` type. +""" +type Foo implements Bar { + one: Type + two(argument: InputType!): Type + three(argument: InputType, other: String): Int + four(argument: String = "string"): String + five(argument: [String] = ["string", "string"]): String + six(argument: InputType = {key: "value"}): Type + seven(argument: Int = null): Type +} + +type AnnotatedObject @onObject(arg: "value") { + annotatedField(arg: Type = "default" @onArg): Type @onField +} + +type UndefinedType + +extend type Foo { + seven(argument: [String]): Type +} + +extend type Foo @onType + +""" +This is a description +""" +interface Bar { + one: Type + four(argument: String = "string"): String +} + +interface AnnotatedInterface @onInterface { + annotatedField(arg: Type @onArg): Type @onField +} + +interface UndefinedInterface + +extend interface Bar { + two(argument: InputType!): Type +} + +extend interface Bar @onInterface + +union Feed = Story | Article | Advert + +union AnnotatedUnion @onUnion = A | B + +union AnnotatedUnionTwo @onUnion = | A | B + +union UndefinedUnion + +extend union Feed = Photo | Video + +extend union Feed @onUnion + +scalar CustomScalar + +scalar AnnotatedScalar @onScalar + +extend scalar CustomScalar @onScalar + +enum Site { + DESKTOP + MOBILE +} + +enum AnnotatedEnum @onEnum { + ANNOTATED_VALUE @onEnumValue + OTHER_VALUE +} + +enum UndefinedEnum + +extend enum Site { + VR +} + +extend enum Site @onEnum + +input InputType { + key: String! + answer: Int = 42 +} + +input AnnotatedInput @onInputObject { + annotatedField: Type @onField +} + +input UndefinedInput + +extend input InputType { + other: Float = 1.23e4 +} + +extend input InputType @onInputObject + +directive @skip(if: Boolean!) on FIELD | FRAGMENT_SPREAD | INLINE_FRAGMENT + +directive @include(if: Boolean!) + on FIELD + | FRAGMENT_SPREAD + | INLINE_FRAGMENT + +directive @include2(if: Boolean!) on + | FIELD + | FRAGMENT_SPREAD + | INLINE_FRAGMENT diff --git a/tests/graphql_newline/__snapshots__/jsfmt.spec.js.snap b/tests/graphql_newline/__snapshots__/jsfmt.spec.js.snap index 7efb263d..c3c18861 100644 --- a/tests/graphql_newline/__snapshots__/jsfmt.spec.js.snap +++ b/tests/graphql_newline/__snapshots__/jsfmt.spec.js.snap @@ -10,7 +10,7 @@ directive @dir( arg2: String arg3: String -) on Field +) on QUERY ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ directive @dir( # comment @@ -19,7 +19,7 @@ directive @dir( # comment arg2: String arg3: String -) on Field +) on QUERY `; diff --git a/tests/graphql_newline/directive_decl.graphql b/tests/graphql_newline/directive_decl.graphql index cee08569..23fab7d4 100644 --- a/tests/graphql_newline/directive_decl.graphql +++ b/tests/graphql_newline/directive_decl.graphql @@ -7,4 +7,4 @@ directive @dir( arg2: String arg3: String -) on Field +) on QUERY diff --git a/tests/graphql_object_type_def/__snapshots__/jsfmt.spec.js.snap b/tests/graphql_object_type_def/__snapshots__/jsfmt.spec.js.snap index 6ca886fb..98e1ab0a 100644 --- a/tests/graphql_object_type_def/__snapshots__/jsfmt.spec.js.snap +++ b/tests/graphql_object_type_def/__snapshots__/jsfmt.spec.js.snap @@ -35,9 +35,11 @@ extend type Feedback { exports[`implements.graphql 1`] = ` type VRMConversation implements Node, Entity @foo { + a: Int } ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ type VRMConversation implements Node, Entity @foo { + a: Int } `; diff --git a/tests/graphql_object_type_def/implements.graphql b/tests/graphql_object_type_def/implements.graphql index 62e65f89..3f813586 100644 --- a/tests/graphql_object_type_def/implements.graphql +++ b/tests/graphql_object_type_def/implements.graphql @@ -1,2 +1,3 @@ type VRMConversation implements Node, Entity @foo { + a: Int } diff --git a/tests/graphql_string/__snapshots__/jsfmt.spec.js.snap b/tests/graphql_string/__snapshots__/jsfmt.spec.js.snap index 5b76c164..72c3b20e 100644 --- a/tests/graphql_string/__snapshots__/jsfmt.spec.js.snap +++ b/tests/graphql_string/__snapshots__/jsfmt.spec.js.snap @@ -2,9 +2,33 @@ exports[`string.graphql 1`] = ` query X($a: Int) @relay(meta: "{\\"lowPri\\": true}") { a } + +"""abc""" +type T { + a: Int +} + +""" +abc +""" +type T { + a: Int +} ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ query X($a: Int) @relay(meta: "{\\"lowPri\\": true}") { a } +"""abc""" +type T { + a: Int +} + +""" +abc +""" +type T { + a: Int +} + `; diff --git a/tests/graphql_string/string.graphql b/tests/graphql_string/string.graphql index b33cefef..6f1d2019 100644 --- a/tests/graphql_string/string.graphql +++ b/tests/graphql_string/string.graphql @@ -1 +1,13 @@ query X($a: Int) @relay(meta: "{\"lowPri\": true}") { a } + +"""abc""" +type T { + a: Int +} + +""" +abc +""" +type T { + a: Int +} diff --git a/yarn.lock b/yarn.lock index a52c7515..eff17b2e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2001,11 +2001,11 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.4: version "1.0.1" resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" -graphql@0.10.5: - version "0.10.5" - resolved "https://registry.yarnpkg.com/graphql/-/graphql-0.10.5.tgz#c9be17ca2bdfdbd134077ffd9bbaa48b8becd298" +graphql@0.12.3: + version "0.12.3" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-0.12.3.tgz#11668458bbe28261c0dcb6e265f515ba79f6ce07" dependencies: - iterall "^1.1.0" + iterall "1.1.3" growly@^1.3.0: version "1.3.0" @@ -2482,9 +2482,9 @@ istanbul-reports@^1.1.1: dependencies: handlebars "^4.0.3" -iterall@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.1.1.tgz#f7f0af11e9a04ec6426260f5019d9fcca4d50214" +iterall@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.1.3.tgz#1cbbff96204056dde6656e2ed2e2226d0e6d72c9" jest-changed-files@^21.2.0: version "21.2.0" From 2cb9498ab67615f67ba5b431198d0f434f4ab282 Mon Sep 17 00:00:00 2001 From: Lucas Duailibe Date: Sun, 31 Dec 2017 14:08:09 -0300 Subject: [PATCH 003/277] Output files as-is if ignored (#3618) * fix --stdin-filepath * output file as-is without --write * return early * use writeOutput --- src/cli/util.js | 35 ++++++++++++------- .../__snapshots__/ignore-path.js.snap | 9 +++++ .../__snapshots__/stdin-filepath.js.snap | 4 +-- tests_integration/__tests__/ignore-path.js | 6 ++++ tests_integration/__tests__/stdin-filepath.js | 6 ++-- 5 files changed, 42 insertions(+), 18 deletions(-) diff --git a/src/cli/util.js b/src/cli/util.js index 1ac7f526..5d7172fb 100644 --- a/src/cli/util.js +++ b/src/cli/util.js @@ -242,11 +242,12 @@ function formatStdin(argv) { const ignorer = createIgnorer(argv); const relativeFilepath = path.relative(process.cwd(), filepath); - if (relativeFilepath && ignorer.filter([relativeFilepath]).length === 0) { - return; - } - thirdParty.getStream(process.stdin).then(input => { + if (relativeFilepath && ignorer.filter([relativeFilepath]).length === 0) { + writeOutput({ formatted: input }, {}); + return; + } + const options = getOptionsForFile(argv, filepath); if (listDifferent(argv, input, options, "(stdin)")) { @@ -279,10 +280,6 @@ function createIgnorer(argv) { function eachFilename(argv, patterns, callback) { const ignoreNodeModules = argv["with-node-modules"] === false; - // The ignorer will be used to filter file paths after the glob is checked, - // before any files are actually read - const ignorer = createIgnorer(argv); - if (ignoreNodeModules) { patterns = patterns.concat(["!**/node_modules/**", "!./node_modules/**"]); } @@ -297,11 +294,9 @@ function eachFilename(argv, patterns, callback) { process.exitCode = 2; return; } - ignorer - .filter(filePaths) - .forEach(filePath => - callback(filePath, getOptionsForFile(argv, filePath)) - ); + filePaths.forEach(filePath => + callback(filePath, getOptionsForFile(argv, filePath)) + ); } catch (error) { logger.error( `Unable to expand glob patterns: ${patterns.join(" ")}\n${error.message}` @@ -312,7 +307,16 @@ function eachFilename(argv, patterns, callback) { } function formatFiles(argv) { + // The ignorer will be used to filter file paths after the glob is checked, + // before any files are actually written + const ignorer = createIgnorer(argv); + eachFilename(argv, argv.__filePatterns, (filename, options) => { + const fileIgnored = ignorer.filter([filename]).length === 0; + if (fileIgnored && (argv["write"] || argv["list-different"])) { + return; + } + if (argv["write"] && process.stdout.isTTY) { // Don't use `console.log` here since we need to replace this line. logger.log(filename, { newline: false }); @@ -331,6 +335,11 @@ function formatFiles(argv) { return; } + if (fileIgnored) { + writeOutput({ formatted: input }, options); + return; + } + listDifferent(argv, input, options, filename); const start = Date.now(); diff --git a/tests_integration/__tests__/__snapshots__/ignore-path.js.snap b/tests_integration/__tests__/__snapshots__/ignore-path.js.snap index 32cd5821..11e9966c 100644 --- a/tests_integration/__tests__/__snapshots__/ignore-path.js.snap +++ b/tests_integration/__tests__/__snapshots__/ignore-path.js.snap @@ -9,6 +9,15 @@ exports[`ignore path (stdout) 1`] = ` exports[`ignore path (write) 1`] = `Array []`; +exports[`outputs files as-is if no --write (stderr) 1`] = `""`; + +exports[`outputs files as-is if no --write (stdout) 1`] = ` +"'use strict'; +" +`; + +exports[`outputs files as-is if no --write (write) 1`] = `Array []`; + exports[`support .prettierignore (stderr) 1`] = `""`; exports[`support .prettierignore (stdout) 1`] = ` diff --git a/tests_integration/__tests__/__snapshots__/stdin-filepath.js.snap b/tests_integration/__tests__/__snapshots__/stdin-filepath.js.snap index fe293fe9..eded2d6a 100644 --- a/tests_integration/__tests__/__snapshots__/stdin-filepath.js.snap +++ b/tests_integration/__tests__/__snapshots__/stdin-filepath.js.snap @@ -11,9 +11,9 @@ exports[`format correctly if stdin content compatible with stdin-filepath (stdou exports[`format correctly if stdin content compatible with stdin-filepath (write) 1`] = `Array []`; -exports[`output nothing if stdin-filepath matched patterns in ignore-path (stderr) 1`] = `""`; +exports[`output file as-is if stdin-filepath matched patterns in ignore-path (stderr) 1`] = `""`; -exports[`output nothing if stdin-filepath matched patterns in ignore-path (write) 1`] = `Array []`; +exports[`output file as-is if stdin-filepath matched patterns in ignore-path (write) 1`] = `Array []`; exports[`throw error if stdin content incompatible with stdin-filepath (stderr) 1`] = ` "[error] stdin: SyntaxError: Unexpected token (1:1) diff --git a/tests_integration/__tests__/ignore-path.js b/tests_integration/__tests__/ignore-path.js index f6a49363..ce5d1aa2 100644 --- a/tests_integration/__tests__/ignore-path.js +++ b/tests_integration/__tests__/ignore-path.js @@ -18,3 +18,9 @@ describe("support .prettierignore", () => { status: 1 }); }); + +describe("outputs files as-is if no --write", () => { + runPrettier("cli/ignore-path", ["regular-module.js"]).test({ + status: 0 + }); +}); diff --git a/tests_integration/__tests__/stdin-filepath.js b/tests_integration/__tests__/stdin-filepath.js index 19037daa..bc01b90c 100644 --- a/tests_integration/__tests__/stdin-filepath.js +++ b/tests_integration/__tests__/stdin-filepath.js @@ -22,11 +22,11 @@ describe("throw error if stdin content incompatible with stdin-filepath", () => }); }); -describe("output nothing if stdin-filepath matched patterns in ignore-path", () => { +describe("output file as-is if stdin-filepath matched patterns in ignore-path", () => { runPrettier("cli/stdin-ignore", ["--stdin-filepath", "ignore/example.js"], { - input: "hello_world();" + input: "hello_world( );" }).test({ - stdout: "", + stdout: "hello_world( );", status: 0 }); }); From c6304fb426305b4c9380c29ea907e86a850eaddc Mon Sep 17 00:00:00 2001 From: Li Siyao Date: Mon, 1 Jan 2018 07:41:21 +0800 Subject: [PATCH 004/277] Happy new year 2018! (#3620) --- LICENSE | 2 +- docs/why-prettier.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/LICENSE b/LICENSE index adc9379a..3d50578e 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright 2017 James Long +Copyright 2017-2018 James Long Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: diff --git a/docs/why-prettier.md b/docs/why-prettier.md index 7bf1d4e2..99096f5d 100644 --- a/docs/why-prettier.md +++ b/docs/why-prettier.md @@ -30,7 +30,7 @@ What usually happens once people are using Prettier is that they realize that th * “I want to write code. Not spend cycles on formatting.” * “It removed 5% that sucks in our daily life - aka formatting” -* “We're in 2017 and it's still painful to break a call into multiple lines when you happen to add an argument that makes it go over the 80 columns limit :(“ +* “We're in 2018 and it's still painful to break a call into multiple lines when you happen to add an argument that makes it go over the 80 columns limit :(“ ## Easy to adopt From c00c1cb6e045b71ad3d4e0fb55af256e85042e13 Mon Sep 17 00:00:00 2001 From: Lucas Azzola Date: Mon, 1 Jan 2018 12:40:10 +1100 Subject: [PATCH 005/277] Change quoted date back to 2017 --- docs/why-prettier.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/why-prettier.md b/docs/why-prettier.md index 99096f5d..7bf1d4e2 100644 --- a/docs/why-prettier.md +++ b/docs/why-prettier.md @@ -30,7 +30,7 @@ What usually happens once people are using Prettier is that they realize that th * “I want to write code. Not spend cycles on formatting.” * “It removed 5% that sucks in our daily life - aka formatting” -* “We're in 2018 and it's still painful to break a call into multiple lines when you happen to add an argument that makes it go over the 80 columns limit :(“ +* “We're in 2017 and it's still painful to break a call into multiple lines when you happen to add an argument that makes it go over the 80 columns limit :(“ ## Easy to adopt From dcf04187dbe3c04c2819cc3a8d331eae16c1cd87 Mon Sep 17 00:00:00 2001 From: Christopher Chedeau Date: Mon, 1 Jan 2018 17:08:47 -0800 Subject: [PATCH 006/277] Tweak CSS of the blog section (#3625) * Tweak CSS of the blog section * light codeblocks ![image](https://user-images.githubusercontent.com/197597/34471012-52212fba-eef2-11e7-8f75-404a3693c87d.png) --- website/static/overrides.css | 98 ++++++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) diff --git a/website/static/overrides.css b/website/static/overrides.css index 5d7b2b9a..2a34cee3 100644 --- a/website/static/overrides.css +++ b/website/static/overrides.css @@ -41,3 +41,101 @@ pre { overflow-x: scroll; } + +@media only screen and (min-width: 736px) { + .mainContainer .wrapper .post .postHeader h1 { + font-size: 32px; + } +} + +h1 a { + color: #24292e; +} + +a { + color: #56b3b4; +} + +.post p a { + text-decoration: inherit !important; +} +.post p a:hover { + text-decoration: underline !important; +} +.post a { + font-weight: inherit; +} + +.post, .post-content { + font-size: 16px; +} + +.post-meta { + float: left; + margin-right: 10px; + font-size: 14px; +} + +.blogContainer .postHeader { + margin-bottom: 0; +} + +.read-more { + margin-top: 10px; +} + +.blogContainer .posts .post { + border-bottom: 1px solid #1b2b35; + border-radius: 0; +} + +.mainContainer .wrapper .post h2, +.mainContainer .wrapper .post h3 { + padding-bottom: 0.3em; + border-bottom: 1px solid #1b2b35; + margin-top: 14px; + margin-bottom: 16px; + font-weight: 600; + line-height: 1.25; +} + +.mainContainer .wrapper .post h4 { + font-size: 1.25em; + line-height: 24px; + font-weight: 500; + margin-bottom: 20px; + margin-top: 10px; +} + +.hljs { + padding: 16px; + overflow: auto; + font-size: 13.6px; + line-height: 1.45; + border-radius: 3px; + border-left-color: #eb5d5d; +} + +.hljs, .hljs-subst { + color: #1b2b35; +} + +.hljs-type, .hljs-string, .hljs-number, .hljs-selector-id, .hljs-selector-class, .hljs-quote, .hljs-template-tag, .hljs-deletion, +.hljs-title, .hljs-section { + color: #eb5d5d; +} + +.hljs-built_in, .hljs-bullet, .hljs-code, .hljs-addition, +.hljs-literal { + color: #56b3b4; +} + +.hljs-keyword, .hljs-attribute, .hljs-selector-tag, .hljs-meta-keyword, .hljs-doctag, .hljs-name, +.hljs-title, .hljs-section { + font-weight: normal; +} + +.hljs-regexp, .hljs-symbol, .hljs-variable, .hljs-template-variable, .hljs-link, .hljs-selector-attr, .hljs-selector-pseudo, +.hljs-comment { + color: #cda144; +} From a627ca7b5d90e6f52111c18c33274035e7c97c08 Mon Sep 17 00:00:00 2001 From: Ika Date: Wed, 3 Jan 2018 00:04:22 +0800 Subject: [PATCH 007/277] docs: minor tweaks (#3627) * docs(blog): replace `:emoji:` with `${emoji}` * docs(blog): move images to assets * docs(index): move images to assets * docs(index): fix typo --- ...rinter-by-james-long-on-react-conf-2017.png | Bin 0 -> 336086 bytes ...hristopher-chedeau-on-react-london-2017.png | Bin 0 -> 141055 bytes docs/index.md | 4 ++-- website/blog/2017-06-03-1.4.0.md | 2 +- website/blog/2017-08-29-1.6.0.md | 2 +- website/blog/2017-09-15-1.7.0.md | 2 +- website/blog/2017-11-07-1.8.0.md | 8 ++++---- ...nverted-to-use-jsx-mode-style-ternaries.png | Bin 0 -> 69332 bytes website/blog/assets/markdown-lists.gif | Bin 0 -> 18118 bytes website/blog/assets/markdown-tables.gif | Bin 0 -> 5622 bytes .../blog/assets/prettier-revolution-conf.png | Bin 0 -> 31025 bytes 11 files changed, 9 insertions(+), 9 deletions(-) create mode 100644 docs/assets/youtube-cover/a-prettier-printer-by-james-long-on-react-conf-2017.png create mode 100644 docs/assets/youtube-cover/javascript-code-formatting-by-christopher-chedeau-on-react-london-2017.png create mode 100644 website/blog/assets/github-diff-showing-a-ternary-containing-internationalization-strings-appearing-inside-a-jsx-element-being-converted-to-use-jsx-mode-style-ternaries.png create mode 100644 website/blog/assets/markdown-lists.gif create mode 100644 website/blog/assets/markdown-tables.gif create mode 100644 website/blog/assets/prettier-revolution-conf.png diff --git a/docs/assets/youtube-cover/a-prettier-printer-by-james-long-on-react-conf-2017.png b/docs/assets/youtube-cover/a-prettier-printer-by-james-long-on-react-conf-2017.png new file mode 100644 index 0000000000000000000000000000000000000000..c2d064ec3b4070d3cce02b905fea09484a1d2016 GIT binary patch literal 336086 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", - "", - "}" - ].join("\n") + content: "" }; window.onload = function() { @@ -138,8 +116,6 @@ window.onload = function() { document.getElementById("input-editor"), editorOptions ); - inputEditor.on("change", formatAsync); - docEditor = CodeMirror.fromTextArea(document.getElementById("doc-editor"), { readOnly: true, lineNumbers: false, @@ -173,7 +149,11 @@ window.onload = function() { } setEditorStyles(); + inputEditor.setValue(state.content); + inputEditor.on("change", formatAsync); + formatAsync(); + document.querySelector(".options-container").onchange = formatAsync; document.getElementById("button-clear").onclick = function() { @@ -310,7 +290,7 @@ function formatAsync() { ); replaceHash(value); worker.postMessage({ - text: inputEditor.getValue(), + text: inputEditor.getValue() || getExample(options.parser), options: options, ast: options.ast, doc: options.doc, @@ -321,6 +301,8 @@ function formatAsync() { function setEditorStyles() { var options = getOptions(); + inputEditor.setOption("placeholder", getExample(options.parser)); + var mode = getCodemirrorMode(options); inputEditor.setOption("mode", mode); outputEditor.setOption("mode", mode); @@ -343,10 +325,10 @@ function setEditorStyles() { } function createMarkdown(full) { - var input = inputEditor.getValue(); var output = outputEditor.getValue(); var output2 = output2Editor.getValue(); var options = getOptions(); + var input = inputEditor.getValue() || getExample(options.parser); var cliOptions = getCLIOptions(); var markdown = formatMarkdown( input, @@ -370,3 +352,56 @@ function showTooltip(elem, text) { elem.removeChild(tooltip); }, 2000); } + +function getExample(parser) { + switch (parser) { + case "babylon": + return [ + 'function HelloWorld({greeting = "hello", greeted = \'"World"\', silent = false, onMouseOver,}) {', + "", + " if(!greeting){return null};", + "", + " // TODO: Don't use random in render", + ' let num = Math.floor (Math.random() * 1E+7).toString().replace(/\\.\\d+/ig, "")', + "", + " return
", + "", + " { greeting.slice( 0, 1 ).toUpperCase() + greeting.slice(1).toLowerCase() }", + ' {greeting.endsWith(",") ? " " : ", " }', + " ", + "\t{ greeted }", + "\t", + " { (silent)", + ' ? "."', + ' : "!"}', + "", + "
;", + "", + "}" + ].join("\n"); + case "typescript": + return [ + "interface MyInterface {", + " foo(): string,", + " bar: Array,", + "}", + "", + "export abstract class Foo implements MyInterface {", + " foo() {", + " // TODO: return an actual value here", + " return 'hello'", + " }", + " get bar() {", + " return [ 1,", + "", + " 2, 3,", + " ]", + " }", + "}", + "", + "type RequestType = 'GET' | 'HEAD' | 'POST' | 'PUT' | 'OPTIONS' | 'CONNECT' | 'DELETE' | 'TRACE'" + ].join("\n"); + default: + return ""; + } +} diff --git a/website/static/separate-css/playground.css b/website/static/separate-css/playground.css index ed239bf5..566aef68 100644 --- a/website/static/separate-css/playground.css +++ b/website/static/separate-css/playground.css @@ -132,6 +132,10 @@ header h1 { line-height: 1.6; } +pre.CodeMirror-placeholder { + color: #888888; +} + .bottom-bar { position: relative; } diff --git a/website/static/service-worker.js b/website/static/service-worker.js index 9f53ed58..66bbe01a 100644 --- a/website/static/service-worker.js +++ b/website/static/service-worker.js @@ -27,6 +27,7 @@ toolbox.precache([ "https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.26.0/mode/jsx/jsx.js", "https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.26.0/mode/css/css.js", "https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.26.0/mode/markdown/markdown.js", + "https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.26.0/addon/display/placeholder.js", "https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.26.0/addon/display/rulers.js", "https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.26.0/addon/search/searchcursor.js", "https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.26.0/addon/edit/matchbrackets.js", diff --git a/website/static/worker.js b/website/static/worker.js index 06013285..ef6b6908 100644 --- a/website/static/worker.js +++ b/website/static/worker.js @@ -5,6 +5,12 @@ self.global = self; self.util = {}; self.path = {}; +self.path.resolve = self.path.join = self.path.dirname = function() { + return ""; +}; +self.path.parse = function() { + return { root: "" }; +}; self.Buffer = { isBuffer: function() { return false; @@ -12,13 +18,23 @@ self.Buffer = { }; self.constants = {}; // eslint-disable-next-line -module$1 = module = path = os = crypto = {}; +module$1 = module = os = crypto = {}; self.fs = { readFile: function() {} }; // eslint-disable-next-line no-undef os.homedir = function() { return "/home/prettier"; }; -self.process = { argv: [], env: { PRETTIER_DEBUG: true }, version: "v8.5.0" }; +self.process = { + argv: [], + env: { PRETTIER_DEBUG: true }, + version: "v8.5.0", + binding: function() { + return {}; + }, + cwd: function() { + return ""; + } +}; self.assert = { ok: function() {}, strictEqual: function() {} }; self.require = function require(path) { if (path === "stream") { @@ -111,6 +127,12 @@ function formatCode(text, options) { try { return prettier.format(text, options); } catch (e) { - return String(e); + if (e.constructor && e.constructor.name === "SyntaxError") { + // Likely something wrong with the user's code + return String(e); + } + // Likely a bug in Prettier + // Provide the whole stack for debugging + return e.stack || String(e); } } From eb1096d4afa345361b4df2f3fa91b12cb5c18f86 Mon Sep 17 00:00:00 2001 From: Lucas Azzola Date: Tue, 9 Jan 2018 02:19:53 +1100 Subject: [PATCH 022/277] Add pretty-quick pre-commit docs (#3675) --- docs/precommit.md | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/docs/precommit.md b/docs/precommit.md index 262e895b..8fce829e 100644 --- a/docs/precommit.md +++ b/docs/precommit.md @@ -30,29 +30,25 @@ and add this config to your `package.json`: See https://github.com/okonet/lint-staged#configuration for more details about how you can configure lint-staged. -## Option 2. [pre-commit](https://github.com/observing/pre-commit) (JS version) +## Option 2. [pretty-quick](https://github.com/azz/pretty-quick) -Install the package: +Install it along with [husky](https://github.com/typicode/husky): ```bash -yarn add pre-commit --dev +yarn add pretty-quick husky --dev ``` and add this config to your `package.json`: - ```json { "scripts": { - "prettier": "prettier \"*/**/*.js\" --ignore-path ./.prettierignore --write && git add . && git status" - }, - "pre-commit": [ - "prettier" - ] + "precommit": "pretty-quick --staged" + } } ``` -Find more info from [here](https://github.com/observing/pre-commit). +Find more info from [here](https://github.com/azz/pretty-quick). ## Option 3. [pre-commit](https://github.com/pre-commit/pre-commit) (Python version) From dc4e44968f430e54eaa72fb55752dc78fd8df755 Mon Sep 17 00:00:00 2001 From: Jed Fox Date: Mon, 8 Jan 2018 10:32:33 -0500 Subject: [PATCH 023/277] Follow redirects in the user URLs (#3672) (except the ones redirecting to `/en/` or similar) Also remove trailing slashes on domains --- website/data/users.yml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/website/data/users.yml b/website/data/users.yml index bdc6e063..597ad753 100644 --- a/website/data/users.yml +++ b/website/data/users.yml @@ -1,6 +1,6 @@ - caption: React image: "/images/users/react-200x100.png" - infoLink: https://facebook.github.io/react/ + infoLink: https://reactjs.org pinned: true - caption: Jest image: "/images/users/jest-200x100.png" @@ -16,7 +16,7 @@ pinned: true - caption: ZEIT image: "/images/users/zeit-200x100.png" - infoLink: https://zeit.co/ + infoLink: https://zeit.co pinned: true - caption: Webpack CLI image: "/images/users/webpack-200x100.png" @@ -24,28 +24,28 @@ pinned: true - caption: PayPal image: "/images/users/paypal-200x100.png" - infoLink: https://github.com/paypal + infoLink: https://github.com/paypal/ - caption: Hudl image: "/images/users/hudl-200x100.png" - infoLink: http://hudl.github.io/ + infoLink: http://hudl.github.io - caption: Transloadit image: "/images/users/transloadit-200x100.png" - infoLink: https://transloadit.com/ + infoLink: https://transloadit.com - caption: Tradeshift image: "/images/users/tradeshift-200x100.png" - infoLink: https://tradeshift.com/ + infoLink: https://tradeshift.com - caption: Algolia image: "/images/users/algolia-200x100.png" - infoLink: https://algolia.com + infoLink: https://www.algolia.com - caption: IRESS image: "/images/users/iress-200x100.png" - infoLink: https://iress.com + infoLink: https://www.iress.com - caption: Outreach image: "/images/users/outreach-200x100.png" - infoLink: https://www.outreach.io/ + infoLink: https://www.outreach.io - caption: Material-UI image: "/images/users/materialui-200x100.png" - infoLink: http://www.material-ui.com/ + infoLink: http://www.material-ui.com/#/ - caption: Wire image: "/images/users/wire-200x100.png" infoLink: https://wire.com @@ -57,7 +57,7 @@ infoLink: https://monei.net - caption: Talkable image: "/images/users/talkable-200x100.png" - infoLink: https://talkable.com + infoLink: https://www.talkable.com - caption: Smooth Code image: "/images/users/smooth-code-200x100.png" infoLink: https://www.smooth-code.com @@ -90,7 +90,7 @@ infoLink: https://7span.com - caption: IDEATI image: "/images/users/ideati-200x100.png" - infoLink: http://www.ideati.net + infoLink: https://www.ideati.net - caption: Mathrioshka image: "/images/users/mathrioshka-200x100.png" infoLink: https://mathrioshka.ru From 01a59eeee35b882017758b548df7f51fb7f80f1d Mon Sep 17 00:00:00 2001 From: Lucas Duailibe Date: Tue, 9 Jan 2018 01:45:51 -0200 Subject: [PATCH 024/277] Wrap conditionals and await in parens in spread property (#3681) --- src/common/fast-path.js | 2 ++ tests/spread/__snapshots__/jsfmt.spec.js.snap | 6 ++++++ tests/spread/spread.js | 3 +++ 3 files changed, 11 insertions(+) diff --git a/src/common/fast-path.js b/src/common/fast-path.js index 4c149001..6e047acd 100644 --- a/src/common/fast-path.js +++ b/src/common/fast-path.js @@ -435,6 +435,7 @@ FastPath.prototype.needsParens = function(options) { case "LogicalExpression": case "SpreadElement": case "SpreadProperty": + case "ExperimentalSpreadProperty": case "TSAsExpression": case "TSNonNullExpression": return true; @@ -546,6 +547,7 @@ FastPath.prototype.needsParens = function(options) { case "UnaryExpression": case "SpreadElement": case "SpreadProperty": + case "ExperimentalSpreadProperty": case "BinaryExpression": case "LogicalExpression": case "ExportDefaultDeclaration": diff --git a/tests/spread/__snapshots__/jsfmt.spec.js.snap b/tests/spread/__snapshots__/jsfmt.spec.js.snap index e4351cc5..bf3cdf37 100644 --- a/tests/spread/__snapshots__/jsfmt.spec.js.snap +++ b/tests/spread/__snapshots__/jsfmt.spec.js.snap @@ -3,8 +3,14 @@ exports[`spread.js 1`] = ` const foo = { ...(a || b) }; const foo2 = { ...a || b }; +const foo3 = { ...(a ? b : c) }; + +async () => ({ ...(await foo) }); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ const foo = { ...(a || b) }; const foo2 = { ...(a || b) }; +const foo3 = { ...(a ? b : c) }; + +async () => ({ ...(await foo) }); `; diff --git a/tests/spread/spread.js b/tests/spread/spread.js index 7cd0a237..516467c6 100644 --- a/tests/spread/spread.js +++ b/tests/spread/spread.js @@ -1,2 +1,5 @@ const foo = { ...(a || b) }; const foo2 = { ...a || b }; +const foo3 = { ...(a ? b : c) }; + +async () => ({ ...(await foo) }); From a27d19b2c1c21786ce7adca3b73d832fbdd55924 Mon Sep 17 00:00:00 2001 From: Marcel Jackwerth Date: Tue, 9 Jan 2018 14:27:26 +0100 Subject: [PATCH 025/277] Allow Plugins to preprocess text (#3664) * Allow Plugins to preprocess text * Actually pull up text * Always expect the preprocessor to set the text * Add tests for preprocessing * Remove unused variable --- index.js | 8 +++++-- src/cli/util.js | 10 ++++++-- src/main/multiparser.js | 5 +++- src/main/parser.js | 9 ++++++- tests_config/run_spec.js | 2 +- .../__tests__/plugin-preprocess.js | 12 ++++++++++ tests_integration/plugins/preprocess/file.foo | 1 + .../plugins/preprocess/plugin.js | 24 +++++++++++++++++++ website/static/worker.js | 2 +- 9 files changed, 65 insertions(+), 8 deletions(-) create mode 100644 tests_integration/__tests__/plugin-preprocess.js create mode 100644 tests_integration/plugins/preprocess/file.foo create mode 100644 tests_integration/plugins/preprocess/plugin.js diff --git a/index.js b/index.js index 677e1c21..e3dc5630 100644 --- a/index.js +++ b/index.js @@ -97,7 +97,9 @@ function formatWithCursor(text, opts, addAlignmentSize) { addAlignmentSize = addAlignmentSize || 0; - const ast = parser.parse(text, opts); + const result = parser.parse(text, opts); + const ast = result.ast; + text = result.text; const formattedRangeOnly = formatRange(text, opts, ast); if (formattedRangeOnly) { @@ -432,7 +434,9 @@ module.exports = { }, printToDoc: function(text, opts) { opts = normalizeOptions(opts); - const ast = parser.parse(text, opts); + const result = parser.parse(text, opts); + const ast = result.ast; + text = result.text; attachComments(text, ast, opts); const doc = printAstToDoc(ast, opts); return doc; diff --git a/src/cli/util.js b/src/cli/util.js index 5d7172fb..31cd27a3 100644 --- a/src/cli/util.js +++ b/src/cli/util.js @@ -131,8 +131,14 @@ function format(argv, input, opt) { ); } else { const normalizedOpts = normalizeOptions(opt); - const ast = cleanAST(prettier.__debug.parse(input, opt), normalizedOpts); - const past = cleanAST(prettier.__debug.parse(pp, opt), normalizedOpts); + const ast = cleanAST( + prettier.__debug.parse(input, opt).ast, + normalizedOpts + ); + const past = cleanAST( + prettier.__debug.parse(pp, opt).ast, + normalizedOpts + ); if (ast !== past) { const MAX_AST_SIZE = 2097152; // 2MB diff --git a/src/main/multiparser.js b/src/main/multiparser.js index 3704e658..7390d551 100644 --- a/src/main/multiparser.js +++ b/src/main/multiparser.js @@ -23,7 +23,10 @@ function textToDoc(text, partialNextOptions, parentOptions) { }) ); - const ast = require("./parser").parse(text, nextOptions); + const result = require("./parser").parse(text, nextOptions); + const ast = result.ast; + text = result.text; + const astComments = ast.comments; delete ast.comments; comments.attach(astComments, ast, text, nextOptions); diff --git a/src/main/parser.js b/src/main/parser.js index 6e04267a..80e01eff 100644 --- a/src/main/parser.js +++ b/src/main/parser.js @@ -58,7 +58,14 @@ function parse(text, opts) { const parser = resolveParser(opts, parsers); try { - return parser.parse(text, parsersForCustomParserApi, opts); + if (parser.preprocess) { + text = parser.preprocess(text, opts); + } + + return { + text, + ast: parser.parse(text, parsersForCustomParserApi, opts) + }; } catch (error) { const loc = error.loc; diff --git a/tests_config/run_spec.js b/tests_config/run_spec.js index d79c9e4b..2951f9ee 100644 --- a/tests_config/run_spec.js +++ b/tests_config/run_spec.js @@ -112,7 +112,7 @@ function stripLocation(ast) { } function parse(string, opts) { - return stripLocation(prettier.__debug.parse(string, opts)); + return stripLocation(prettier.__debug.parse(string, opts).ast); } function prettyprint(src, filename, options) { diff --git a/tests_integration/__tests__/plugin-preprocess.js b/tests_integration/__tests__/plugin-preprocess.js new file mode 100644 index 00000000..a2efd02d --- /dev/null +++ b/tests_integration/__tests__/plugin-preprocess.js @@ -0,0 +1,12 @@ +"use strict"; + +const runPrettier = require("../runPrettier"); + +describe("parser preprocess function is used to reshape input text", () => { + runPrettier("plugins/preprocess", ["*.foo", "--plugin=./plugin"]).test({ + stdout: "preprocessed:contents\n", + stderr: "", + status: 0, + write: [] + }); +}); diff --git a/tests_integration/plugins/preprocess/file.foo b/tests_integration/plugins/preprocess/file.foo new file mode 100644 index 00000000..12f00e90 --- /dev/null +++ b/tests_integration/plugins/preprocess/file.foo @@ -0,0 +1 @@ +contents diff --git a/tests_integration/plugins/preprocess/plugin.js b/tests_integration/plugins/preprocess/plugin.js new file mode 100644 index 00000000..2405c6c1 --- /dev/null +++ b/tests_integration/plugins/preprocess/plugin.js @@ -0,0 +1,24 @@ +"use strict"; + +module.exports = { + languages: [ + { + name: "foo", + parsers: ["foo-parser"], + extensions: [".foo"], + since: "1.0.0" + } + ], + parsers: { + "foo-parser": { + preprocess: text => `preprocessed:${text}`, + parse: text => ({ text }), + astFormat: "foo-ast" + } + }, + printers: { + "foo-ast": { + print: path => path.getValue().text + } + } +}; diff --git a/website/static/worker.js b/website/static/worker.js index ef6b6908..3262ae13 100644 --- a/website/static/worker.js +++ b/website/static/worker.js @@ -84,7 +84,7 @@ self.onmessage = function(message) { var actualAst; var errored = false; try { - actualAst = prettier.__debug.parse(message.data.text, options); + actualAst = prettier.__debug.parse(message.data.text, options).ast; ast = JSON.stringify(actualAst); } catch (e) { errored = true; From 2891db1a3c44f4ccee482ddd2921c81ba2d3ae41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rory=20O=E2=80=99Kane?= Date: Tue, 9 Jan 2018 14:16:15 -0800 Subject: [PATCH 026/277] Make `--ignore-path` link more specific in docs (#3690) --- docs/ignore.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ignore.md b/docs/ignore.md index b69c4cc0..3974a822 100644 --- a/docs/ignore.md +++ b/docs/ignore.md @@ -7,7 +7,7 @@ Prettier offers an escape hatch to ignore a block of code or prevent entire file ## Ignoring Files -To exclude files from formatting, add entries to a `.prettierignore` file in the project root or set the `--ignore-path` [CLI](cli.md) option. +To exclude files from formatting, add entries to a `.prettierignore` file in the project root or set the [`--ignore-path` CLI option](cli.md#ignore-path). ## JavaScript From 7e24d3ff79ebf8869f967f3c5178b5121a0fc771 Mon Sep 17 00:00:00 2001 From: Ika Date: Wed, 10 Jan 2018 15:02:49 +0800 Subject: [PATCH 027/277] fix(playground): avoid `assign to readonly` error on Safari (#3668) * fix(playground): suppress`assign to readonly` error * fix(playground): avoid `assign to readonly` error --- scripts/build/build-docs.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/scripts/build/build-docs.js b/scripts/build/build-docs.js index bee13cfa..07497fff 100644 --- a/scripts/build/build-docs.js +++ b/scripts/build/build-docs.js @@ -2,6 +2,7 @@ "use strict"; +const fs = require("fs"); const path = require("path"); const shell = require("shelljs"); const parsers = require("./parsers"); @@ -39,6 +40,13 @@ shell.exec( `node_modules/babel-cli/bin/babel.js ${docs}/index.js --out-file ${docs}/index.js --presets=es2015` ); +// wrap content with IIFE to avoid `assign to readonly` error on Safari +(function(filename) { + const content = fs.readFileSync(filename, "utf8"); + const wrapped = `"use strict";(function(){${content}}());`; + fs.writeFileSync(filename, wrapped); +})(`${docs}/index.js`); + shell.exec( `rollup -c scripts/build/rollup.docs.config.js --environment filepath:parser-babylon.js -i ${prettierPath}/parser-babylon.js` ); From b1a7787e8781a7a663225b8cbec4ff6d35332544 Mon Sep 17 00:00:00 2001 From: Lucas Azzola Date: Wed, 10 Jan 2018 18:44:18 +1100 Subject: [PATCH 028/277] Fix vue self-closing tags (#3693) --- src/language-vue/printer-vue.js | 18 +- .../__snapshots__/jsfmt.spec.js.snap | 3 + .../__snapshots__/jsfmt.spec.js.snap | 353 ++++++++++++++++++ tests/vue_examples/board_card.vue | 73 ++++ tests/vue_examples/jsfmt.spec.js | 2 + tests/vue_examples/test.vue | 10 + website/pages/playground/index.html | 1 + 7 files changed, 458 insertions(+), 2 deletions(-) create mode 100644 tests/vue_examples/__snapshots__/jsfmt.spec.js.snap create mode 100644 tests/vue_examples/board_card.vue create mode 100644 tests/vue_examples/jsfmt.spec.js create mode 100644 tests/vue_examples/test.vue diff --git a/src/language-vue/printer-vue.js b/src/language-vue/printer-vue.js index ca2075ef..8d63e26d 100644 --- a/src/language-vue/printer-vue.js +++ b/src/language-vue/printer-vue.js @@ -3,19 +3,33 @@ const embed = require("./embed"); const docBuilders = require("../doc").builders; const concat = docBuilders.concat; +const hardline = docBuilders.hardline; function genericPrint(path, options, print) { const n = path.getValue(); const res = []; let index = n.start; + let printParent = typeof n.end === "number"; path.each(childPath => { const child = childPath.getValue(); res.push(options.originalText.slice(index, child.start)); res.push(childPath.call(print)); - index = child.end; + if (typeof child.end === "number") { + index = child.end; + } else { + printParent = false; + } }, "children"); - res.push(options.originalText.slice(index, n.end)); + + if (printParent) { + res.push(options.originalText.slice(index, n.end)); + } + + // Only force a trailing newline if there were any contents. + if (n.tag === "root" && n.children.length) { + res.push(hardline); + } return concat(res); } diff --git a/tests/multiparser_vue/__snapshots__/jsfmt.spec.js.snap b/tests/multiparser_vue/__snapshots__/jsfmt.spec.js.snap index 938d84cc..dedc3bcf 100644 --- a/tests/multiparser_vue/__snapshots__/jsfmt.spec.js.snap +++ b/tests/multiparser_vue/__snapshots__/jsfmt.spec.js.snap @@ -15,6 +15,7 @@ exports[`template-bind.vue 1`] = `
+ `; exports[`template-class.vue 1`] = ` @@ -37,6 +38,7 @@ exports[`template-class.vue 1`] = ` > + `; exports[`vue-component.vue 1`] = ` @@ -79,4 +81,5 @@ p { text-align: center; } + `; diff --git a/tests/vue_examples/__snapshots__/jsfmt.spec.js.snap b/tests/vue_examples/__snapshots__/jsfmt.spec.js.snap new file mode 100644 index 00000000..93bc6e13 --- /dev/null +++ b/tests/vue_examples/__snapshots__/jsfmt.spec.js.snap @@ -0,0 +1,353 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`board_card.vue 1`] = ` + + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + + + +`; + +exports[`board_card.vue 2`] = ` + + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + + + +`; + +exports[`test.vue 1`] = ` + + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + + + +`; + +exports[`test.vue 2`] = ` + + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + + + +`; diff --git a/tests/vue_examples/board_card.vue b/tests/vue_examples/board_card.vue new file mode 100644 index 00000000..c1c34e51 --- /dev/null +++ b/tests/vue_examples/board_card.vue @@ -0,0 +1,73 @@ + + + diff --git a/tests/vue_examples/jsfmt.spec.js b/tests/vue_examples/jsfmt.spec.js new file mode 100644 index 00000000..89a7dccf --- /dev/null +++ b/tests/vue_examples/jsfmt.spec.js @@ -0,0 +1,2 @@ +run_spec(__dirname, ["vue"]); +run_spec(__dirname, ["vue"], { trailingComma: "es5" }); diff --git a/tests/vue_examples/test.vue b/tests/vue_examples/test.vue new file mode 100644 index 00000000..9aab7e1c --- /dev/null +++ b/tests/vue_examples/test.vue @@ -0,0 +1,10 @@ + + + diff --git a/website/pages/playground/index.html b/website/pages/playground/index.html index 9401985d..ec53d75a 100644 --- a/website/pages/playground/index.html +++ b/website/pages/playground/index.html @@ -89,6 +89,7 @@ + From 3df7d60a7f8ff37c1d79b420dab8942b996dec02 Mon Sep 17 00:00:00 2001 From: Ika Date: Wed, 10 Jan 2018 15:45:22 +0800 Subject: [PATCH 029/277] feat(markdown): respect `tabWidth` for list indentation (#3694) * test: add test case * feat(markdown): respect `tabWidth` for list indentation * test: add extreme `tabWidth` test case --- src/language-markdown/printer-markdown.js | 43 +- .../__snapshots__/jsfmt.spec.js.snap | 1358 +++++++++++++++++ tests/markdown_list/indent.md | 85 ++ tests/markdown_list/jsfmt.spec.js | 3 + 4 files changed, 1475 insertions(+), 14 deletions(-) create mode 100644 tests/markdown_list/indent.md diff --git a/src/language-markdown/printer-markdown.js b/src/language-markdown/printer-markdown.js index 9a0fb218..e01387fa 100644 --- a/src/language-markdown/printer-markdown.js +++ b/src/language-markdown/printer-markdown.js @@ -243,24 +243,14 @@ function genericPrint(path, options, print) { : nthSiblingIndex % 2 === 0 ? "* " : "- "; return concat([ prefix, - align(" ".repeat(prefix.length), childPath.call(print)) + align( + " ".repeat(prefix.length), + printListItem(childPath, options, print, prefix) + ) ]); } }); } - case "listItem": { - const prefix = - node.checked === null ? "" : node.checked ? "[x] " : "[ ] "; - return concat([ - prefix, - printChildren(path, options, print, { - processor: (childPath, index) => - index === 0 && childPath.getValue().type !== "list" - ? align(" ".repeat(prefix.length), childPath.call(print)) - : childPath.call(print) - }) - ]); - } case "thematicBreak": { const counter = getAncestorCounter(path, "list"); if (counter === -1) { @@ -324,11 +314,32 @@ function genericPrint(path, options, print) { hardline ]); case "tableRow": // handled in "table" + case "listItem": // handled in "list" default: throw new Error(`Unknown markdown type ${JSON.stringify(node.type)}`); } } +function printListItem(path, options, print, listPrefix) { + const node = path.getValue(); + const prefix = node.checked === null ? "" : node.checked ? "[x] " : "[ ] "; + return concat([ + prefix, + printChildren(path, options, print, { + processor: (childPath, index) => { + if (index === 0 && childPath.getValue().type !== "list") { + return align(" ".repeat(prefix.length), childPath.call(print)); + } + + const alignment = " ".repeat( + clamp(options.tabWidth - listPrefix.length, 0, 3) // 4 will cause indented codeblock + ); + return concat([alignment, align(alignment, childPath.call(print))]); + } + }) + ]); +} + function getNthListSiblingIndex(node, parentNode) { return getNthSiblingIndex( node, @@ -659,6 +670,10 @@ function normalizeParts(parts) { }, []); } +function clamp(value, min, max) { + return value < min ? min : value > max ? max : value; +} + function clean(ast, newObj) { // for markdown codeblock if (ast.type === "code") { diff --git a/tests/markdown_list/__snapshots__/jsfmt.spec.js.snap b/tests/markdown_list/__snapshots__/jsfmt.spec.js.snap index 5d48d30a..9c1c5156 100644 --- a/tests/markdown_list/__snapshots__/jsfmt.spec.js.snap +++ b/tests/markdown_list/__snapshots__/jsfmt.spec.js.snap @@ -11,6 +11,39 @@ exports[`checkbox.md 1`] = ` `; +exports[`checkbox.md 2`] = ` +- [ ] this is a long long long long long long long long long long long long long long paragraph. +- [x] this is a long long long long long long long long long long long long long long paragraph. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +* [ ] this is a long long long long long long long long long long long long long + long paragraph. +* [x] this is a long long long long long long long long long long long long long + long paragraph. + +`; + +exports[`checkbox.md 3`] = ` +- [ ] this is a long long long long long long long long long long long long long long paragraph. +- [x] this is a long long long long long long long long long long long long long long paragraph. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +* [ ] this is a long long long long long long long long long long long long long + long paragraph. +* [x] this is a long long long long long long long long long long long long long + long paragraph. + +`; + +exports[`checkbox.md 4`] = ` +- [ ] this is a long long long long long long long long long long long long long long paragraph. +- [x] this is a long long long long long long long long long long long long long long paragraph. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +* [ ] this is a long long long long long long long long long long long long long + long paragraph. +* [x] this is a long long long long long long long long long long long long long + long paragraph. + +`; + exports[`git-diff-friendly.md 1`] = ` 5. abc 1. def @@ -22,6 +55,911 @@ exports[`git-diff-friendly.md 1`] = ` `; +exports[`git-diff-friendly.md 2`] = ` +5. abc +1. def +999. ghi +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +5. abc +1. def +1. ghi + +`; + +exports[`git-diff-friendly.md 3`] = ` +5. abc +1. def +999. ghi +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +5. abc +1. def +1. ghi + +`; + +exports[`git-diff-friendly.md 4`] = ` +5. abc +1. def +999. ghi +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +5. abc +1. def +1. ghi + +`; + +exports[`indent.md 1`] = ` +- [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + - a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + - [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + 1. a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + 1. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + 12345678) a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + 12345678. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + +1. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + - a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + - [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + 1. a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + 1. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + 12345678) a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + 12345678. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + +12345678) [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + - a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + - [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + 1. a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + 1. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + 12345678) a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + 12345678. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +* [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a + + * a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b + + * [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b + + 1. a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b + + 1. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b + + 12345678) a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b + + 12345678. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b + + a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a + +1. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a + + * a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b + + * [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b + + 1. a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b b + + 1. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b b + + 12345678) a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b + + 12345678. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b + + a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a + +12345678) [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b b + + * a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b b + + * [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b b + + 1. a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b b + + 1. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b b + + 12345678) a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b b b + + 12345678. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b b b + + a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a + +`; + +exports[`indent.md 2`] = ` +- [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + - a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + - [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + 1. a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + 1. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + 12345678) a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + 12345678. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + +1. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + - a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + - [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + 1. a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + 1. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + 12345678) a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + 12345678. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + +12345678) [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + - a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + - [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + 1. a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + 1. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + 12345678) a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + 12345678. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +* [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a + + * a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b b b + + * [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b b b + + 1. a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b b b + + 1. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b b b + + 12345678) a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b b + + 12345678. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b b + + a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a + +1. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a + + * a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b b b + + * [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b b b + + 1. a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b b b + + 1. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b b b + + 12345678) a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b b + + 12345678. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b b + + a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a + +12345678) [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b b + + * a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b b b + + * [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b b b + + 1. a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b b b + + 1. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b b b + + 12345678) a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b b b + + 12345678. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b b b + + a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a + +`; + +exports[`indent.md 3`] = ` +- [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + - a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + - [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + 1. a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + 1. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + 12345678) a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + 12345678. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + +1. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + - a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + - [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + 1. a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + 1. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + 12345678) a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + 12345678. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + +12345678) [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + - a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + - [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + 1. a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + 1. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + 12345678) a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + 12345678. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +* [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a + + * a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b b b b + + * [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b b b b + + 1. a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b b b b + + 1. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b b b b + + 12345678) a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b b b b + + 12345678. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b b b b + + a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a + +1. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a + + * a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b b b b + + * [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b b b b + + 1. a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b b b b b + + 1. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b b b b b + + 12345678) a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b b b b + + 12345678. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b b b b + + a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a a + +12345678) [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b b b + + * a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b b b b b + + * [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b b b b b + + 1. a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b b b b b + + 1. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b b b b b + + 12345678) a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b b b b b b + + 12345678. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b b b b b b + + a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a a + +`; + +exports[`indent.md 4`] = ` +- [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + - a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + - [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + 1. a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + 1. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + 12345678) a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + 12345678. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + +1. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + - a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + - [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + 1. a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + 1. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + 12345678) a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + 12345678. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + +12345678) [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + - a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + - [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + 1. a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + 1. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + 12345678) a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + 12345678. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +* [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a + + * a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b + + * [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b + + 1. a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b + + 1. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b + + 12345678) a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b + + 12345678. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b + + a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a + +1. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a + + * a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b + + * [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b + + 1. a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b b + + 1. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b b + + 12345678) a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b + + 12345678. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b + + a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a + +12345678) [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b b + + * a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b b + + * [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b b + + 1. a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b b + + 1. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b b + + 12345678) a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b b b + + 12345678. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + b b b b b b b b b b b b b b b b + + a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + a a a a a a a a a a a a a a a + +`; + exports[`long-paragraph.md 1`] = ` - This is a long long long long long long long long long long long long long long paragraph. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -30,6 +968,30 @@ exports[`long-paragraph.md 1`] = ` `; +exports[`long-paragraph.md 2`] = ` +- This is a long long long long long long long long long long long long long long paragraph. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +* This is a long long long long long long long long long long long long long + long paragraph. + +`; + +exports[`long-paragraph.md 3`] = ` +- This is a long long long long long long long long long long long long long long paragraph. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +* This is a long long long long long long long long long long long long long + long paragraph. + +`; + +exports[`long-paragraph.md 4`] = ` +- This is a long long long long long long long long long long long long long long paragraph. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +* This is a long long long long long long long long long long long long long + long paragraph. + +`; + exports[`loose.md 1`] = ` - 123 @@ -57,6 +1019,87 @@ exports[`loose.md 1`] = ` `; +exports[`loose.md 2`] = ` +- 123 + + - abc + +- 456 + + - def + +- 789 + + - ghi +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +* 123 + + * abc + +* 456 + + * def + +* 789 + + * ghi + +`; + +exports[`loose.md 3`] = ` +- 123 + + - abc + +- 456 + + - def + +- 789 + + - ghi +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +* 123 + + * abc + +* 456 + + * def + +* 789 + + * ghi + +`; + +exports[`loose.md 4`] = ` +- 123 + + - abc + +- 456 + + - def + +- 789 + + - ghi +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +* 123 + + * abc + +* 456 + + * def + +* 789 + + * ghi + +`; + exports[`multiline.md 1`] = ` - 123 456 @@ -66,6 +1109,33 @@ exports[`multiline.md 1`] = ` `; +exports[`multiline.md 2`] = ` +- 123 + 456 + 789 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +* 123 456 789 + +`; + +exports[`multiline.md 3`] = ` +- 123 + 456 + 789 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +* 123 456 789 + +`; + +exports[`multiline.md 4`] = ` +- 123 + 456 + 789 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +* 123 456 789 + +`; + exports[`nested.md 1`] = ` - Level 1 - Level 2 @@ -77,6 +1147,39 @@ exports[`nested.md 1`] = ` `; +exports[`nested.md 2`] = ` +- Level 1 + - Level 2 + - Level 3 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +* Level 1 + * Level 2 + * Level 3 + +`; + +exports[`nested.md 3`] = ` +- Level 1 + - Level 2 + - Level 3 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +* Level 1 + * Level 2 + * Level 3 + +`; + +exports[`nested.md 4`] = ` +- Level 1 + - Level 2 + - Level 3 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +* Level 1 + * Level 2 + * Level 3 + +`; + exports[`nested-checkbox.md 1`] = ` * parent list item parent list item parent list item parent list item parent list item parent list item @@ -110,6 +1213,105 @@ exports[`nested-checkbox.md 1`] = ` `; +exports[`nested-checkbox.md 2`] = ` +* parent list item parent list item parent list item parent list item parent list item parent list item + + * child list item child list item child list item child list item child list item child list item + + paragraph paragraph paragraph paragraph paragraph paragraph paragraph paragraph paragraph + +* [x] parent task list item parent task list item parent task list item parent task list item + + * [x] child task list item child task list item child task list item child task list item + + paragraph paragraph paragraph paragraph paragraph paragraph paragraph paragraph paragraph +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +* parent list item parent list item parent list item parent list item parent + list item parent list item + + * child list item child list item child list item child list item child list + item child list item + + paragraph paragraph paragraph paragraph paragraph paragraph paragraph + paragraph paragraph + +* [x] parent task list item parent task list item parent task list item parent + task list item + + * [x] child task list item child task list item child task list item child + task list item + + paragraph paragraph paragraph paragraph paragraph paragraph paragraph + paragraph paragraph + +`; + +exports[`nested-checkbox.md 3`] = ` +* parent list item parent list item parent list item parent list item parent list item parent list item + + * child list item child list item child list item child list item child list item child list item + + paragraph paragraph paragraph paragraph paragraph paragraph paragraph paragraph paragraph + +* [x] parent task list item parent task list item parent task list item parent task list item + + * [x] child task list item child task list item child task list item child task list item + + paragraph paragraph paragraph paragraph paragraph paragraph paragraph paragraph paragraph +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +* parent list item parent list item parent list item parent list item parent + list item parent list item + + * child list item child list item child list item child list item child + list item child list item + + paragraph paragraph paragraph paragraph paragraph paragraph paragraph + paragraph paragraph + +* [x] parent task list item parent task list item parent task list item parent + task list item + + * [x] child task list item child task list item child task list item child + task list item + + paragraph paragraph paragraph paragraph paragraph paragraph paragraph + paragraph paragraph + +`; + +exports[`nested-checkbox.md 4`] = ` +* parent list item parent list item parent list item parent list item parent list item parent list item + + * child list item child list item child list item child list item child list item child list item + + paragraph paragraph paragraph paragraph paragraph paragraph paragraph paragraph paragraph + +* [x] parent task list item parent task list item parent task list item parent task list item + + * [x] child task list item child task list item child task list item child task list item + + paragraph paragraph paragraph paragraph paragraph paragraph paragraph paragraph paragraph +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +* parent list item parent list item parent list item parent list item parent + list item parent list item + + * child list item child list item child list item child list item child list + item child list item + + paragraph paragraph paragraph paragraph paragraph paragraph paragraph + paragraph paragraph + +* [x] parent task list item parent task list item parent task list item parent + task list item + + * [x] child task list item child task list item child task list item child + task list item + + paragraph paragraph paragraph paragraph paragraph paragraph paragraph + paragraph paragraph + +`; + exports[`ordered.md 1`] = ` 1. 123 1. 456 @@ -121,6 +1323,39 @@ exports[`ordered.md 1`] = ` `; +exports[`ordered.md 2`] = ` +1. 123 +1. 456 +1. 789 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +1. 123 +1. 456 +1. 789 + +`; + +exports[`ordered.md 3`] = ` +1. 123 +1. 456 +1. 789 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +1. 123 +1. 456 +1. 789 + +`; + +exports[`ordered.md 4`] = ` +1. 123 +1. 456 +1. 789 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +1. 123 +1. 456 +1. 789 + +`; + exports[`separate.md 1`] = ` - 123 - 123 @@ -140,6 +1375,63 @@ exports[`separate.md 1`] = ` `; +exports[`separate.md 2`] = ` +- 123 +- 123 +- 123 + +* 123 +* 123 +* 123 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +* 123 +* 123 +* 123 + +- 123 +- 123 +- 123 + +`; + +exports[`separate.md 3`] = ` +- 123 +- 123 +- 123 + +* 123 +* 123 +* 123 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +* 123 +* 123 +* 123 + +- 123 +- 123 +- 123 + +`; + +exports[`separate.md 4`] = ` +- 123 +- 123 +- 123 + +* 123 +* 123 +* 123 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +* 123 +* 123 +* 123 + +- 123 +- 123 +- 123 + +`; + exports[`simple.md 1`] = ` - 123 - 456 @@ -151,6 +1443,39 @@ exports[`simple.md 1`] = ` `; +exports[`simple.md 2`] = ` +- 123 +- 456 +- 789 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +* 123 +* 456 +* 789 + +`; + +exports[`simple.md 3`] = ` +- 123 +- 456 +- 789 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +* 123 +* 456 +* 789 + +`; + +exports[`simple.md 4`] = ` +- 123 +- 456 +- 789 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +* 123 +* 456 +* 789 + +`; + exports[`start.md 1`] = ` 5. abc 6. def @@ -161,3 +1486,36 @@ exports[`start.md 1`] = ` 7. ghi `; + +exports[`start.md 2`] = ` +5. abc +6. def +7. ghi +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +5. abc +6. def +7. ghi + +`; + +exports[`start.md 3`] = ` +5. abc +6. def +7. ghi +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +5. abc +6. def +7. ghi + +`; + +exports[`start.md 4`] = ` +5. abc +6. def +7. ghi +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +5. abc +6. def +7. ghi + +`; diff --git a/tests/markdown_list/indent.md b/tests/markdown_list/indent.md new file mode 100644 index 00000000..caef8c1a --- /dev/null +++ b/tests/markdown_list/indent.md @@ -0,0 +1,85 @@ +- [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + - a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + - [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + 1. a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + 1. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + 12345678) a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + 12345678. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + +1. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + - a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + - [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + 1. a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + 1. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + 12345678) a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + 12345678. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + +12345678) [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + - a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + - [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + 1. a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + 1. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + 12345678) a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + 12345678. [ ] a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a + + b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b + + a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a diff --git a/tests/markdown_list/jsfmt.spec.js b/tests/markdown_list/jsfmt.spec.js index b62fc584..26ddb7f7 100644 --- a/tests/markdown_list/jsfmt.spec.js +++ b/tests/markdown_list/jsfmt.spec.js @@ -1 +1,4 @@ run_spec(__dirname, ["markdown"], { proseWrap: "always" }); +run_spec(__dirname, ["markdown"], { proseWrap: "always", tabWidth: 4 }); +run_spec(__dirname, ["markdown"], { proseWrap: "always", tabWidth: 999 }); +run_spec(__dirname, ["markdown"], { proseWrap: "always", tabWidth: 0 }); From 9a1b57587d3fc220bd142eea7e4fd8a54bca13fc Mon Sep 17 00:00:00 2001 From: Jed Fox Date: Wed, 10 Jan 2018 07:03:39 -0500 Subject: [PATCH 030/277] Add 1.10 blog post (#3659) * Add 1.10 blog post Copied from releases page * Change a few things * Add overview of changes * Lint docs * Scaffold out release notes * Add prettier-ignores * docs: add missing references * docs: fix heading level * docs: fix example * Document plugin API * Use shellsession * docs: fix example * docs: fix links * Fix heading level * change: ts upgrade -> numeric separator support Instead of mentioning we updated the typescript version, we should emphasize on what value we added to users * Fix repeated phrase * add comment type annotation explanation * Add note on no more wrapping () JSX elements * Grammar * Add more release notes * Fill out remaining release notes * Fix lint * Add verb * Fix heading level * Update 2018-01-10-1.10.0.md * Update 2018-01-10-1.10.0.md * Add twitter buttons * docs: add note for #3694 * Fix cake --- docs/plugins.md | 6 +- website/blog/2018-01-10-1.10.0.md | 460 ++++++++++++++++++++++++++++++ website/siteConfig.js | 3 +- 3 files changed, 465 insertions(+), 4 deletions(-) create mode 100644 website/blog/2018-01-10-1.10.0.md diff --git a/docs/plugins.md b/docs/plugins.md index 803d3fe8..ba34e13f 100644 --- a/docs/plugins.md +++ b/docs/plugins.md @@ -1,11 +1,11 @@ --- id: plugins -title: Plugins +title: Plugins (Beta) --- -# IN DEVELOPMENT +## IN BETA -> The plugin API is unreleased and the API may change! +> The plugin API is in a **beta** state as of Prettier 1.10 and the API may change in the next release! Plugins are ways of adding new languages to Prettier. Prettier's own implementations of all languages are expressed using the plugin API. The core `prettier` package contains JavaScript and other web-focussed languages built in. For additional languages you'll need to install a plugin. diff --git a/website/blog/2018-01-10-1.10.0.md b/website/blog/2018-01-10-1.10.0.md new file mode 100644 index 00000000..4e76f965 --- /dev/null +++ b/website/blog/2018-01-10-1.10.0.md @@ -0,0 +1,460 @@ +--- +author: Christopher Chedeau (@vjeux) +authorURL: https://twitter.com/vjeux +title: "Prettier 1.10: One Year of Prettier 🎂" +--- + +Happy Prettier-versary! It's pretty incredible that Prettier was only released a year ago and has already seen such a massive adoption and great number of contributors. For this special release, we're going to do a small retrospective around the project. + +It's also an exciting release in itself because Prettier now has partial support for `.vue` files and the internals have been refactored such that there's a proper plugin API in order to support different languages! + + + +## Retrospective + +Ever since gofmt came out in 2013, I ([@vjeux]) became obsessed with the idea of automatic formatting. I started seeing problems that would be solved by an automatic formatter all the time: arguing about coding style, having to manually format the code manually, difficulty to write codemod tools… + +When last December there were not one but two people independently working on a JavaScript pretty printer, it was a sign! Pieter Vanderwerff built one in Reason based on Flow infrastructure and James Long in JavaScript. I played the role of a cheerleader by setting up the same test suite for the two projects as well as running their pretty printer on existing codebases and extracting lists of [things that](https://github.com/prettier/prettier/issues/2) were [not printed well](https://github.com/prettier/prettier/issues/6). + +Sadly, after the holidays were over, both of them had to go back to work on their real job :( I decided to step in and convince my manager to work on it full time. James had open sourced his project (Prettier) and I was more familiar with JavaScript so I decided that this was the one I would work on! + +Here's a list of some of the things that worked well during this project. + +### Spend time on release notes + +Release notes have an interesting property that they are very often shared, even if the content is terrible. Everyone seems to want to know that version 1.5.8 of some software has been released. This is a very good opportunity to also sell your project. + +For Prettier releases, I spent a lot of time explaining the rationale behind all the changes and talked about some things that would likely have been written as a separate blog post (like this!). Plus, you're likely going to be lazy and find all the excuses in the world not to write that blog post, but you really want to publish that new version, so it's a good forcing function. + +### Clear decision-making process + +Style rules are one of the most controversial subjects and at the same time a lot of decisions needed to be made. I tried to design a decision-making process that would let us make progress. + +People find all sort of emotional arguments in order to convince you that their opinion on style is the best. We needed to have something purely rational so that even though it's not what people would prefer, they couldn’t argue against the methodology. + +The best I could find was to count how many times each variant was used in the Facebook codebase. It’s easy for me to run and provide relative numbers (style A is used 5x more than style B) to convince people. If such a big codebase that has been written by thousands of people over the years has a winner, it may not be the best but is likely not going to be hugely controversial. + +Not everything could be solved this way, some things didn't have a clear winner or it was not obvious how to come up with an algorithm to print it well. In those cases, it was important to have an escalation process with a single person making the decision at the end (me). This way we could make progress without needing to find a consensus which would have likely been very hard. + +### Open source as guinea pigs + +A total pretty printer is one of those projects where you need it to be close to perfect to bring it to a big codebase like Facebook. The first impression is extremely important and it's very hard to get something that will be correct (it won't introduce invalid JavaScript or code that would behave differently) for all the edge cases. + +My initial plan was to work on it alone in a cave hidden from the outside world for 6 months until I got everything just right and then get people to adopt it. What I didn't expect is that people in open source didn't have that same quality bar and started using it way earlier than that. The risks of using it on a side project are vastly different than on millions of lines of code at Facebook. + +It ended up being very beneficial for the project to get feedback along the way until it was finally ready to be used at Facebook. + +### Open source as contributors + +For the first 6 months of the project, I was working full time on it and ended up writing only half of the commits. This is pretty mind-blowing in itself! Not only was the throughput two times better on the project itself, but people ended up working on things that I wouldn't have spent time on like integrations with all the editors on earth, a fuzzer to find bugs, TypeScript support, infrastructure to support parsing multiple languages in the same file, and more. + +Even though we don't use all those things at Facebook, many of them ended up being useful. CSS-in-JS support made it easy to get GraphQL fragments in template literals formatted. The large number of users was also a great way to surface obscure bugs that we would eventually hit and many different people chimed in to fix them. + +The best thing is that I stopped working on the project full time 6 months ago and the project kept going under the leadership of [@azz]. I'd like to thank all the people that helped in various ways, this is so exciting to make history together! + +Open source has been doing wonders for the project, delivering a ton of value for Facebook (almost all our JavaScript files are now pretty printed) and for the industry at large as seen by the huge adoption. + +### Tooling: Jest Snapshot Tests & Playground + +All those contributions were possible because it was easy to report errors, contribute and review code. The two tools that were most impactful in this project were jest snapshot tests and the playground. + +Snapshot tests are a wonder for a pretty printer. Adding new tests is dead easy, just create a file in the test folder with the code you want to format and run jest, voila! Anytime you change something, you can see how a bunch of examples would be printed differently, then it's up to you to decide if it's better or not. For a reviewer, it's also really nice, you can look at the before/after of all the things it changed. I've come to pay more attention to the snapshots than the actual implementation. + +[The playground](https://prettier.io/playground) is a really nice way to get to a repro or play with Prettier without having to install the development environment, being on the right branch... This has proven to be extremely valuable to get people to provide really good bug reports that are actionable. + +## Highlights + +### Support for Vue Single File Components ([#3563]) by [@vjeux] + +There's a lot of demand for Vue SFC ([#2097]). We've introduced partial support for them: All the HTML is printed as is, but now the ` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + + + +`; + +exports[`self_closing.vue 2`] = ` + + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + + + +`; + exports[`test.vue 1`] = ` diff --git a/tests/vue_examples/self_closing.vue b/tests/vue_examples/self_closing.vue new file mode 100644 index 00000000..f6c519de --- /dev/null +++ b/tests/vue_examples/self_closing.vue @@ -0,0 +1,7 @@ + + + From 63a95618078104acd2bb29891e23e2bd4529c49d Mon Sep 17 00:00:00 2001 From: Lucas Duailibe Date: Wed, 10 Jan 2018 23:54:01 -0200 Subject: [PATCH 037/277] 1.10.2 --- .github/ISSUE_TEMPLATE.md | 2 +- CHANGELOG.md | 6 ++++++ package.json | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index 502b87e2..52ae9f93 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -8,7 +8,7 @@ Tip! Don't write this stuff manually. --> -**Prettier 1.10.1** +**Prettier 1.10.2** [Playground link](https://prettier.io/playground/#.....) ```sh # Options (if any): diff --git a/CHANGELOG.md b/CHANGELOG.md index 0342872f..e31666a7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +# 1.10.2 + +[link](https://github.com/prettier/prettier/compare/1.10.1...1.10.2) + +* Fixed an issue printing .vue files with self-closing tags. (#3705 by duailibe) + # 1.10.1 [link](https://github.com/prettier/prettier/compare/1.10.0...1.10.1) diff --git a/package.json b/package.json index d715fe7f..8593c07c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "prettier", - "version": "1.10.1", + "version": "1.10.2", "description": "Prettier is an opinionated code formatter", "bin": { "prettier": "./bin/prettier.js" From d0d5845af140fed30309a1966b05692dcae37f40 Mon Sep 17 00:00:00 2001 From: Lucas Duailibe Date: Thu, 11 Jan 2018 00:04:30 -0200 Subject: [PATCH 038/277] Bump prettier's prettier to 1.10.2 --- package.json | 2 +- yarn.lock | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 8593c07c..8d866377 100644 --- a/package.json +++ b/package.json @@ -71,7 +71,7 @@ "eslint-plugin-react": "7.1.0", "jest": "21.1.0", "mkdirp": "0.5.1", - "prettier": "1.10.1", + "prettier": "1.10.2", "prettylint": "1.0.0", "rimraf": "2.6.2", "rollup": "0.47.6", diff --git a/yarn.lock b/yarn.lock index 41247a2f..43924bec 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3579,9 +3579,9 @@ preserve@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" -prettier@1.10.1: - version "1.10.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.10.1.tgz#01423fea6957ea23618d37d339ef0e7f7c967fc6" +prettier@1.10.2: + version "1.10.2" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.10.2.tgz#1af8356d1842276a99a5b5529c82dd9e9ad3cc93" pretty-format@21.3.0-beta.15: version "21.3.0-beta.15" From bef646d4a4d2df9a7e1e06ea5dd28380475f624c Mon Sep 17 00:00:00 2001 From: Lucas Azzola Date: Thu, 11 Jan 2018 18:46:56 +1100 Subject: [PATCH 039/277] Add pretty-quick to related projects (#3708) --- docs/related-projects.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/related-projects.md b/docs/related-projects.md index 24404417..38d0977f 100644 --- a/docs/related-projects.md +++ b/docs/related-projects.md @@ -34,3 +34,4 @@ title: Related Projects * [`prettier-github`](https://github.com/jgierer12/prettier-github) formats code in GitHub comments * [`rollup-plugin-prettier`](https://github.com/mjeanroy/rollup-plugin-prettier) allows you to use Prettier with Rollup * [`markdown-magic-prettier`](https://github.com/camacho/markdown-magic-prettier) allows you to use Prettier to format JS [codeblocks](https://help.github.com/articles/creating-and-highlighting-code-blocks/) in Markdown files via [Markdown Magic](https://github.com/DavidWells/markdown-magic) +* [`pretty-quick`](https://github.com/azz/pretty-quick) formats your changed files with Prettier From b67fd8e1554b77774abd1184f84824707a2d18c9 Mon Sep 17 00:00:00 2001 From: Aleks Hudochenkov Date: Fri, 12 Jan 2018 00:05:57 +0300 Subject: [PATCH 040/277] Don't add end of line to empty CSS (#3723) Fixes #3440. --- src/language-css/printer-postcss.js | 8 +++++++- tests/css_empty_file/__snapshots__/jsfmt.spec.js.snap | 11 +++++++++++ tests/css_empty_file/empty-file.css | 0 tests/css_empty_file/jsfmt.spec.js | 1 + tests/css_empty_file/single-space.css | 1 + tests/empty/__snapshots__/jsfmt.spec.js.snap | 10 ++++++++++ tests/empty/empty-file.js | 0 tests/empty/single-space.js | 1 + 8 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 tests/css_empty_file/__snapshots__/jsfmt.spec.js.snap create mode 100644 tests/css_empty_file/empty-file.css create mode 100644 tests/css_empty_file/jsfmt.spec.js create mode 100644 tests/css_empty_file/single-space.css create mode 100644 tests/empty/empty-file.js create mode 100644 tests/empty/single-space.js diff --git a/src/language-css/printer-postcss.js b/src/language-css/printer-postcss.js index 794ae803..b2d4afdb 100644 --- a/src/language-css/printer-postcss.js +++ b/src/language-css/printer-postcss.js @@ -30,7 +30,13 @@ function genericPrint(path, options, print) { switch (n.type) { case "css-root": { - return concat([printNodeSequence(path, options, print), hardline]); + const nodes = printNodeSequence(path, options, print); + + if (nodes.parts.length) { + return concat([nodes, hardline]); + } + + return nodes; } case "css-comment": { if (n.raws.content) { diff --git a/tests/css_empty_file/__snapshots__/jsfmt.spec.js.snap b/tests/css_empty_file/__snapshots__/jsfmt.spec.js.snap new file mode 100644 index 00000000..11ebcf01 --- /dev/null +++ b/tests/css_empty_file/__snapshots__/jsfmt.spec.js.snap @@ -0,0 +1,11 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`empty-file.css 1`] = ` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +`; + +exports[`single-space.css 1`] = ` + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +`; diff --git a/tests/css_empty_file/empty-file.css b/tests/css_empty_file/empty-file.css new file mode 100644 index 00000000..e69de29b diff --git a/tests/css_empty_file/jsfmt.spec.js b/tests/css_empty_file/jsfmt.spec.js new file mode 100644 index 00000000..7d3726c8 --- /dev/null +++ b/tests/css_empty_file/jsfmt.spec.js @@ -0,0 +1 @@ +run_spec(__dirname, ["css"]); diff --git a/tests/css_empty_file/single-space.css b/tests/css_empty_file/single-space.css new file mode 100644 index 00000000..0519ecba --- /dev/null +++ b/tests/css_empty_file/single-space.css @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/tests/empty/__snapshots__/jsfmt.spec.js.snap b/tests/empty/__snapshots__/jsfmt.spec.js.snap index 874fa35e..9bfbb43e 100644 --- a/tests/empty/__snapshots__/jsfmt.spec.js.snap +++ b/tests/empty/__snapshots__/jsfmt.spec.js.snap @@ -6,3 +6,13 @@ exports[`empty.js 1`] = ` `; + +exports[`empty-file.js 1`] = ` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +`; + +exports[`single-space.js 1`] = ` + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +`; diff --git a/tests/empty/empty-file.js b/tests/empty/empty-file.js new file mode 100644 index 00000000..e69de29b diff --git a/tests/empty/single-space.js b/tests/empty/single-space.js new file mode 100644 index 00000000..0519ecba --- /dev/null +++ b/tests/empty/single-space.js @@ -0,0 +1 @@ + \ No newline at end of file From 2155465c88479847bb28b8cac652cfe9ffde0482 Mon Sep 17 00:00:00 2001 From: Daniel Heckrath Date: Fri, 12 Jan 2018 07:05:22 +0100 Subject: [PATCH 041/277] Enable PostCSS in VUE SFC (#3715) * Enable PostCSS in VUE SFC * Add test that verifies that postcss style blocks are parsed * Move postcss check to same condition as the css check --- src/language-vue/embed.js | 2 +- .../multiparser_vue/__snapshots__/jsfmt.spec.js.snap | 12 ++++++++++++ tests/multiparser_vue/vue-component.vue | 5 +++++ 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/language-vue/embed.js b/src/language-vue/embed.js index 805b338e..f1c48fa2 100644 --- a/src/language-vue/embed.js +++ b/src/language-vue/embed.js @@ -15,7 +15,7 @@ function embed(path, print, textToDoc, options) { if (node.tag === "style") { const langAttr = node.attrs.find(attr => attr.name === "lang"); - if (!langAttr) { + if (!langAttr || langAttr.value === "postcss") { parser = "css"; } else if (langAttr.value === "scss") { parser = "scss"; diff --git a/tests/multiparser_vue/__snapshots__/jsfmt.spec.js.snap b/tests/multiparser_vue/__snapshots__/jsfmt.spec.js.snap index dedc3bcf..8a428a27 100644 --- a/tests/multiparser_vue/__snapshots__/jsfmt.spec.js.snap +++ b/tests/multiparser_vue/__snapshots__/jsfmt.spec.js.snap @@ -56,6 +56,11 @@ module . exports = + + @@ -82,4 +87,11 @@ p { } + + `; diff --git a/tests/multiparser_vue/vue-component.vue b/tests/multiparser_vue/vue-component.vue index 1f876584..a404d5be 100644 --- a/tests/multiparser_vue/vue-component.vue +++ b/tests/multiparser_vue/vue-component.vue @@ -15,3 +15,8 @@ module . exports = p { font-size : 2em ; text-align : center ; } + + From 934f679705bbb39664a085dc71db76073497ed5c Mon Sep 17 00:00:00 2001 From: Evilebot Tnawi Date: Fri, 12 Jan 2018 14:12:02 +0300 Subject: [PATCH 042/277] fix(scss): `!default` directive (#3724) --- src/language-css/parser-postcss.js | 7 +++++ src/language-css/printer-postcss.js | 1 + .../css_scss/__snapshots__/jsfmt.spec.js.snap | 26 +++++++++++++++++++ tests/css_scss/scss.css | 14 ++++++++++ 4 files changed, 48 insertions(+) diff --git a/src/language-css/parser-postcss.js b/src/language-css/parser-postcss.js index 6827d39f..634b11b3 100644 --- a/src/language-css/parser-postcss.js +++ b/src/language-css/parser-postcss.js @@ -161,6 +161,8 @@ function parseMediaQuery(value) { return addTypePrefix(result, "media-"); } +const DEFAULT_SCSS_DIRECTIVE = "!default"; + function parseNestedCSS(node) { if (node && typeof node === "object") { delete node.parent; @@ -189,6 +191,11 @@ function parseNestedCSS(node) { } if (node.type && typeof node.value === "string") { try { + if (node.value.endsWith(DEFAULT_SCSS_DIRECTIVE)) { + node.default = true; + node.value = node.value.slice(0, -DEFAULT_SCSS_DIRECTIVE.length); + } + node.value = parseValue(node.value); } catch (e) { throw createError( diff --git a/src/language-css/printer-postcss.js b/src/language-css/printer-postcss.js index b2d4afdb..59919d5b 100644 --- a/src/language-css/printer-postcss.js +++ b/src/language-css/printer-postcss.js @@ -96,6 +96,7 @@ function genericPrint(path, options, print) { ? removeLines(path.call(print, "value")) : path.call(print, "value"), n.important ? " !important" : "", + n.default ? " !default" : "", n.nodes ? concat([ " {", diff --git a/tests/css_scss/__snapshots__/jsfmt.spec.js.snap b/tests/css_scss/__snapshots__/jsfmt.spec.js.snap index f0175c57..1b4591de 100644 --- a/tests/css_scss/__snapshots__/jsfmt.spec.js.snap +++ b/tests/css_scss/__snapshots__/jsfmt.spec.js.snap @@ -19,6 +19,20 @@ div { } a { margin: 0 { left: 10px; } } $map: (color: #111111, text-shadow: 1px 1px 0 salmon); +$theme-checkbox-colors: ( + default: $theme-color-border, + checked: $theme-color-checked, + disabled: $theme-color-disabled, + disabled-font: $theme-color-font-secondary, +) !default; +$default: #111111 !default; +$default: #111111 !default; +$default: #111111 +!default; +$default: "very-long-long-long-long-long-long-long-long-long-long-long-value" !default; +$default: "very-long-long-long-long-long-long-long-long-long-long-long-value" !default; +$default: "very-long-long-long-long-long-long-long-long-long-long-long-value" +!default; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @media #{$g-breakpoint-tiny} { } @@ -43,5 +57,17 @@ $map: ( color: #111111, text-shadow: 1px 1px 0 salmon ); +$theme-checkbox-colors: ( + default: $theme-color-border, + checked: $theme-color-checked, + disabled: $theme-color-disabled, + disabled-font: $theme-color-font-secondary +) !default; +$default: #111111 !default; +$default: #111111 !default; +$default: #111111 !default; +$default: "very-long-long-long-long-long-long-long-long-long-long-long-value" !default; +$default: "very-long-long-long-long-long-long-long-long-long-long-long-value" !default; +$default: "very-long-long-long-long-long-long-long-long-long-long-long-value" !default; `; diff --git a/tests/css_scss/scss.css b/tests/css_scss/scss.css index f55a7f72..6a65789c 100644 --- a/tests/css_scss/scss.css +++ b/tests/css_scss/scss.css @@ -9,3 +9,17 @@ div { } a { margin: 0 { left: 10px; } } $map: (color: #111111, text-shadow: 1px 1px 0 salmon); +$theme-checkbox-colors: ( + default: $theme-color-border, + checked: $theme-color-checked, + disabled: $theme-color-disabled, + disabled-font: $theme-color-font-secondary, +) !default; +$default: #111111 !default; +$default: #111111 !default; +$default: #111111 +!default; +$default: "very-long-long-long-long-long-long-long-long-long-long-long-value" !default; +$default: "very-long-long-long-long-long-long-long-long-long-long-long-value" !default; +$default: "very-long-long-long-long-long-long-long-long-long-long-long-value" +!default; From dd78f31aaf5b4522b780f13194d57308e5fdf53b Mon Sep 17 00:00:00 2001 From: Lucas Azzola Date: Sat, 13 Jan 2018 03:19:20 +1100 Subject: [PATCH 043/277] Run production tests on npm package (#3730) * Run production tests on npm package * Put back fast finish --- .travis.yml | 8 ++++++-- package.json | 3 ++- scripts/test-dist.js | 33 ++++++++++++++++++++++++++++++++ tests_config/require_prettier.js | 4 +++- tests_integration/runPrettier.js | 9 ++++++--- yarn.lock | 21 ++++++++++++++++++++ 6 files changed, 71 insertions(+), 7 deletions(-) create mode 100644 scripts/test-dist.js diff --git a/.travis.yml b/.travis.yml index fab2daf3..67cab0b8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,7 +6,7 @@ node_js: cache: yarn: true directories: - - node_modules + - node_modules env: - NODE_ENV=development - NODE_ENV=production @@ -20,5 +20,9 @@ before_script: script: - yarn lint - yarn lint-docs - - AST_COMPARE=1 yarn test -- --runInBand + - if [ "${NODE_ENV}" = "production" ]; then yarn test:dist; fi + - if [ "${NODE_ENV}" = "development" ]; then AST_COMPARE=1 yarn test -- --runInBand; fi - if [ "${NODE_ENV}" = "development" ]; then yarn codecov; fi +branches: + only: + - master diff --git a/package.json b/package.json index 8d866377..a1142a16 100644 --- a/package.json +++ b/package.json @@ -85,6 +85,7 @@ "snapshot-diff": "0.2.2", "strip-ansi": "4.0.0", "sw-toolbox": "3.6.0", + "tempy": "0.2.1", "uglify-es": "3.0.28", "webpack": "2.6.1" }, @@ -92,7 +93,7 @@ "prepublishOnly": "echo \"Error: must publish from dist/\" && exit 1", "prepare-release": "yarn && yarn build && yarn test:dist", "test": "jest", - "test:dist": "cross-env NODE_ENV=production yarn test", + "test:dist": "node ./scripts/test-dist.js", "test-integration": "jest tests_integration", "lint": "cross-env EFF_NO_LINK_RULES=true eslint . --format node_modules/eslint-friendly-formatter", "lint-docs": "prettylint {.,docs,website,website/blog}/*.md", diff --git a/scripts/test-dist.js b/scripts/test-dist.js new file mode 100644 index 00000000..78e03c7d --- /dev/null +++ b/scripts/test-dist.js @@ -0,0 +1,33 @@ +#!/usr/bin/env node + +"use strict"; + +const path = require("path"); +const shell = require("shelljs"); +const tempy = require("tempy"); + +shell.config.fatal = true; + +const rootDir = path.join(__dirname, ".."); +const distDir = path.join(rootDir, "dist"); + +const file = shell.exec("npm pack", { cwd: distDir }).stdout.trim(); +const tarPath = path.join(distDir, file); +const tmpDir = tempy.directory(); + +shell.config.silent = true; +shell.exec("npm init -y", { cwd: tmpDir }); +shell.exec(`npm install "${tarPath}"`, { cwd: tmpDir }); +shell.config.silent = false; + +const code = shell.exec("yarn test --color --runInBand", { + cwd: rootDir, + env: Object.assign({}, process.env, { + NODE_ENV: "production", + AST_COMPARE: "1", + PRETTIER_DIR: path.join(tmpDir, "node_modules/prettier") + }), + shell: true +}).code; + +process.exit(code); diff --git a/tests_config/require_prettier.js b/tests_config/require_prettier.js index 87a7b1b2..3d042999 100644 --- a/tests_config/require_prettier.js +++ b/tests_config/require_prettier.js @@ -1,6 +1,8 @@ "use strict"; const isProduction = process.env.NODE_ENV === "production"; -const prettier = require(isProduction ? "../dist/" : "../"); +const prettierRootDir = isProduction ? process.env.PRETTIER_DIR : "../"; + +const prettier = require(prettierRootDir); module.exports = prettier; diff --git a/tests_integration/runPrettier.js b/tests_integration/runPrettier.js index 9886d1f5..a52e5f84 100644 --- a/tests_integration/runPrettier.js +++ b/tests_integration/runPrettier.js @@ -6,10 +6,13 @@ const stripAnsi = require("strip-ansi"); const ENV_LOG_LEVEL = require("../src/cli/logger").ENV_LOG_LEVEL; const isProduction = process.env.NODE_ENV === "production"; -const prettierCli = isProduction ? "../dist/bin-prettier" : "../bin/prettier"; +const prettierRootDir = isProduction ? process.env.PRETTIER_DIR : "../"; +const prettierPkg = require(path.join(prettierRootDir, "package.json")); +const prettierCli = path.join(prettierRootDir, prettierPkg.bin.prettier); + const thirdParty = isProduction - ? "../dist/third-party" - : "../src/common/third-party"; + ? path.join(prettierRootDir, "./third-party") + : path.join(prettierRootDir, "./src/common/third-party"); function runPrettier(dir, args, options) { args = args || []; diff --git a/yarn.lock b/yarn.lock index 43924bec..56cd2f6c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1297,6 +1297,10 @@ crypto-browserify@^3.11.0: public-encrypt "^4.0.0" randombytes "^2.0.0" +crypto-random-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" + cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0": version "0.3.2" resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.2.tgz#b8036170c79f07a90ff2f16e22284027a243848b" @@ -4434,6 +4438,17 @@ tar@^2.2.1: fstream "^1.0.2" inherits "2" +temp-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" + +tempy@0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/tempy/-/tempy-0.2.1.tgz#9038e4dbd1c201b74472214179bc2c6f7776e54c" + dependencies: + temp-dir "^1.0.0" + unique-string "^1.0.0" + test-exclude@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.1.1.tgz#4d84964b0966b0087ecc334a2ce002d3d9341e26" @@ -4608,6 +4623,12 @@ uniq@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" +unique-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" + dependencies: + crypto-random-string "^1.0.0" + unist-util-remove-position@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-1.1.1.tgz#5a85c1555fc1ba0c101b86707d15e50fa4c871bb" From d0044074b16719adf03dffbee84d55c9dbdd5edf Mon Sep 17 00:00:00 2001 From: Harry Wolff Date: Fri, 12 Jan 2018 17:10:58 -0500 Subject: [PATCH 044/277] Add MongoDB (#3733) --- website/data/users.yml | 3 +++ website/static/images/users/mongodb-200x100.png | Bin 0 -> 9956 bytes 2 files changed, 3 insertions(+) create mode 100644 website/static/images/users/mongodb-200x100.png diff --git a/website/data/users.yml b/website/data/users.yml index 22fcf237..8f354305 100644 --- a/website/data/users.yml +++ b/website/data/users.yml @@ -121,3 +121,6 @@ - caption: National Hockey League (NHL) image: "/images/users/nhl-200x100.png" infoLink: https://www.nhl.com +- caption: MongoDB + image: "/images/users/mongodb-200x100.png" + infoLink: https://www.mongodb.com/ diff --git a/website/static/images/users/mongodb-200x100.png b/website/static/images/users/mongodb-200x100.png new file mode 100644 index 0000000000000000000000000000000000000000..0a98cbc4c33f9f6a7e851849fb2e678b1fcd7bdc GIT binary patch literal 9956 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
6H<(_}Lr$<~J4N3LPqUy0OoHagO!NMAz; zXZSz7O-c@-mwryQQ+C$j-5k+iuS(;>crKmsE^~Q$Fc`Rr&X5z)!@e^Fw|z$X*K5kN zwf$}P?cej^?8S38vvBJ-{TMj%F>p`@xdCNHL-F6kn;X{$_J`Dty`eW*m=^wd?%%c^ z`RM6y;b$EKy)p>Xp?ZBy;r$#-&6P)-WCJnS6;axE2NXB&=@DNU2)13`Kbw5kN$ALK ze@X_KU0GP{a;ZzqFk6hVMXvyc0x-xfb~9tCT&SU-p7KABU%UQ?M>d-JTlZPTKoWz@ ztuDNq=fQ6aGh5h}iO*Li;scXj+5?i#ViWl8Q)QFDr zxO92N$5I(h1=k;TWMBX_*k5F3W`4V?t4r|*0zBnqggFot3c*q}l;P!)nRu+9X#I#9 zRftcHa6O}g%T8NSllnWFK+pO^p=z{ndOcrT-O_SjdRp2|9UYdcH}9UQme!DzMZRt* z(AJD3aCmIb+ZOV5x`}yt zCzx*cL%M6arMkDD-I9th}_%34;goQtx`{iwI8KGdVpS$`zIpkS7b zG;|kTyd(eLX!hR1&5%olA%Rz5$PR9ROv%g3YqDVvW^3HS`YI1T9+Wu_mQg}H8liCU z#R*~ko+BCq9f5#c$J!yxAu|R_w*h7MZhMrEw_UWDbBc?%fvC@c$Koc^EN~!zuUl+;r!y_=ef~&8B^BTFkd?}mcmSu zf&S_I#>&d0yP*&4(zuvDj>Nrk>w%M}j+N|GT|1>j?Q-1!<}+!j&jX0{Uf zYrm42nRr&wGm*pZlFLbwu1`kbSw(cX3)KM;DB{h-09zhx}W&1&{sMRz@BIct@msYRo zB`=-p44DuLcObPdVHZ=MJnm9XCe15+I@9q2QQW8Q@rZ73Z^&NNAyr=bq_%`WdCAucMR{B`9N5R#u-C67xz* z-eT6cnkU;Usf#LN5zO-A#_H;-!itLbo#j!_Zi>Z8!Q6UCZH6Cn%uTx6eVQ;HHx%js zyo4DhVa7?FG8)Qr?*&V^@GwP?wL+*O*4Z$J!NVlan(oD=W*K3sHR;n9%|kGab}t2jK%D=%xH# zqrQWvx7;QDZ&^&n+VZmB-;vLCm883$a%CSp{DFMHQ{<&^SSw$)Y{`3e0bI)ghvpNM zY27sFKL^ci}YBD-4_= z^!_GupQ*u_MsAr?KrQ|5j^WQwzw7}<#4hfFN940)gP4UfM6@EW=Xn(4&JQ~}8o+15 zU0i3rsod)9XA6tnUZsxr;tnbf#Ti7HshfwB@)Z@7P%wP`pXY3RFex%c02kOMG5XaK zC8H2mlB-HnfXNfc6+D6b9E3$*Xz%gyuya9boLKBM+?)Cmqj)oLSs)O68zsw@)vmPT zZJTo0Y11Ez`JbR%{HYDF=SdyOGYw)DY2rz4wO7v?wBak88BV+a|3n_3V0L4=gX{y-oTF!LF|Vx4fn0ho_!;s>ZIG z+TPyoKK9sSk8_!3F_oW9k~3LPZ9~EBpE(exQWi)Mkf-EPVZR39 z{ezB`5!wa8jz|E&Q(Sx@7erh?A`dGHctn)m4INm?2mVg(34{2VNmGxD*3pFFlo35)#818W^n|=>BY4rb zz#K`Vq}Q8yl`seG6r615;^vxEdD&rsK>IBWEHdLski1It9kK2BgW1%_N_a3hXFRt& z2gA7|q>h4T7-fsPfBz;YOi#DekKL*ui~leW%>?D@Gj=;WRj-fF&wofZ0`~0NcNB~B zmj%iGV9?9!K#%a~{(U|3O69jYGZ@z9Fgv_MUme&;x5o%7B_Q$g9dO3fn-|~s!tRtX z2MtX8q=gflQ3WDMO>j;)+%nb1?ug6H+r$S21lHs6%UWlU5T78K5%pLJKag>`%;$l( z2_D*3HpKYgu0Oe61xwO=)kr@avZKL2Oh9e(k9eB5s%33ChQ}vBE-Z&UVC6w=R zxxPsovttY*U#tD5^F1;f*bIeOs&w-orFMI4Acs9=%9Iaz1@JpClJ%5GY*rlGxL|>- zR}W|`vFdl{FW))$FGU4vy1E8*94DewDkI?s;tzR|gAw4iC+2LBtK5AyQ0i~K*zgWJWhW#1KfrAFq}OZw zglb+0{9mR_IUk0Wy+<>!ZQG7F7&I2}XwsKiP+O;Hjy&T|X6BU)>N03}X|t?}uEG7i zI6w*q`5z_0tpE6LJUxH@{3JZalXZ5ww2TbC!3^!tK{Q4``Q(%P%pkmYbr1FWwk*zB zd+ZMx#w50B*T?gBI4A+>DLO-8%M@y@UmYMxPAw7{&dDWDGDO#rh-c3he*Noy8*o)) z<2dSmB6#hj1G~sI1G#cVya5khykbkRO*>W7&9%CmOZG5Al(LZTjes=|j{q6w)lbaY z@UtFC59+0@?8fj45r%SfcBYamKpbl?AB^O-Gh`%4$sj|A4h0daAkhNFPTIxUv`L;_ zGuZhuw+RrSpXXV$^+iQfj<@r7+VUP9%=!J;$n_f60VcytaRl42)Zas%RvpFmdJ|vF zvf*NOw1QE7^7M#{d-;wsk4!0EM)WKKn_@4HX>y&F>#Jw*AjvNe#2k_l>y7o~af_^< zL_`FSx3WukZ@iEm4jv$x1`a1mdl|a!WPNmh50C^eFRiArQfzbEXpyI-sp)2Ruevy7{0^PIj|KKMe5-CCB2r4`kSv73`B?*%l;`qz&gqeLf|nEj zud|c&u)NQd=JRzzNEdUb{O2~1eC^&JiM)+JlT3%RZG3Kr-`@nHu1raYb7~9cFihXi z?l3WVxR45?K%dN z^MGUV9X+I_Y?CtiW}mhiN%DRc_RI{{`-E&YYfmA1oG%?L2I8>VPrJk`oe{vfR3HgsHrT4|HYmK$utF?1BK- zkbc2iTekdp#*7)g&VX`o$RhhX9dLTzY!C z%iq=Y0sh5pU0uImd;2ZB{0%IGRSJzbuq3NhALFCewb6NK_I5cNJG7}R)FiP(_angzYyh=`aX^18Nf zAGm$<=ESp$l9I`1z}%G#Nqz`=1$lN+P6o`t+Cn{^8DS)8k0#8jA)PG~Y&kQ>vRknTbapuP)i`7ErlqB+oP$_D^s+<;OP=nwe&9rf z5mfrm3AC28BjegPO{KdoGHw>fmwwB@!g^c}- zMl`Vi))emzuDyYsYSq?<-wl|N znU7twx>w}e>HF=Ej{#w(_V&*2F$3L6hqr9q`cCQQ&6|_NMP~^t;(rPAe2bsLImbOP z$akIb{qB#30U5ClXck{$b;zxMTk-clg!KJ?&-NX^@%J-VBJ%XU+jPJT`y=~|fsT$Y zK2WIL$c!Otq^g54hh)sCZha`0nPfYf1i$KYVf}z9F%Vy4q>Ob0RyRNUCbGiwOrOYb z{mkJ&%^`Fe4?^-E#1_@RV0LKW>?P%blud*aINbXKqRmsl-@~)tpOf|5A*|eIBI|>S zSWYagUA5{jbbxa1xN#Rd!~5Nb76a&U@$j?jb{5T}5uMn{i!RcoR9U1l!@Nh_Uu1F5 i8th+(wl<%w-2WG%u1(6Il3%$10000 Date: Fri, 12 Jan 2018 16:14:04 -0800 Subject: [PATCH 045/277] Add Discord to users.yml (#3736) --- website/data/users.yml | 3 +++ website/static/images/users/discord-200x100.png | Bin 0 -> 3261 bytes 2 files changed, 3 insertions(+) create mode 100644 website/static/images/users/discord-200x100.png diff --git a/website/data/users.yml b/website/data/users.yml index 8f354305..2719c300 100644 --- a/website/data/users.yml +++ b/website/data/users.yml @@ -124,3 +124,6 @@ - caption: MongoDB image: "/images/users/mongodb-200x100.png" infoLink: https://www.mongodb.com/ +- caption: Discord + image: "/images/users/discord-200x100.png" + infoLink: https://discordapp.com diff --git a/website/static/images/users/discord-200x100.png b/website/static/images/users/discord-200x100.png new file mode 100644 index 0000000000000000000000000000000000000000..c0eadf5784c94e4cdf230a69cf85401fef180c52 GIT binary patch literal 3261 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 a7hC7W*=O%ZFNN*=P?#E7U@8pVqyGovE_u=b literal 0 HcmV?d00001 From aa0437cc60e944542f0c0bcfdb3134426364ddb8 Mon Sep 17 00:00:00 2001 From: Quinn Hoyer Date: Fri, 12 Jan 2018 18:02:31 -0800 Subject: [PATCH 046/277] Add support for skip() (#3706) (#3735) * Add support for skip() (#3706) * Fix regex & add tests --- src/language-js/printer-estree.js | 2 +- .../__snapshots__/jsfmt.spec.js.snap | 30 +++++++++++++++++++ tests/test_declarations/test_declarations.js | 6 ++++ 3 files changed, 37 insertions(+), 1 deletion(-) diff --git a/src/language-js/printer-estree.js b/src/language-js/printer-estree.js index f65735d1..9dffed46 100644 --- a/src/language-js/printer-estree.js +++ b/src/language-js/printer-estree.js @@ -5121,7 +5121,7 @@ function isObjectType(n) { // eg; `describe("some string", (done) => {})` function isTestCall(n) { - const unitTestRe = /^(f|x)?(it|describe|test)$/; + const unitTestRe = /^(skip|(f|x)?(it|describe|test))$/; return ( ((n.callee.type === "Identifier" && unitTestRe.test(n.callee.name)) || (n.callee.type === "MemberExpression" && diff --git a/tests/test_declarations/__snapshots__/jsfmt.spec.js.snap b/tests/test_declarations/__snapshots__/jsfmt.spec.js.snap index 46af9f6b..519d0066 100644 --- a/tests/test_declarations/__snapshots__/jsfmt.spec.js.snap +++ b/tests/test_declarations/__snapshots__/jsfmt.spec.js.snap @@ -88,6 +88,10 @@ ftest("does something really long and complicated so I have to write a very long xtest("does something really long and complicated so I have to write a very long name for the describe block", () => {}); +skip(\`does something really long and complicated so I have to write a very long name for the test\`, () => {}); + +skip("does something really long and complicated so I have to write a very long name for the test", () => {}); + // Should break it.only("does something really long and complicated so I have to write a very long name for the test", 10, () => { @@ -101,6 +105,8 @@ it.only.only("does something really long and complicated so I have to write a ve it.only.only("does something really long and complicated so I have to write a very long name for the test", (a, b, c) => { console.log("hello!"); }); + +xskip("does something really long and complicated so I have to write a very long name for the test", () => {}); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Shouldn't break @@ -189,6 +195,10 @@ ftest("does something really long and complicated so I have to write a very long xtest("does something really long and complicated so I have to write a very long name for the describe block", () => {}); +skip(\`does something really long and complicated so I have to write a very long name for the test\`, () => {}); + +skip("does something really long and complicated so I have to write a very long name for the test", () => {}); + // Should break it.only( @@ -213,6 +223,11 @@ it.only.only( } ); +xskip( + "does something really long and complicated so I have to write a very long name for the test", + () => {} +); + `; exports[`test_declarations.js 2`] = ` @@ -303,6 +318,10 @@ ftest("does something really long and complicated so I have to write a very long xtest("does something really long and complicated so I have to write a very long name for the describe block", () => {}); +skip(\`does something really long and complicated so I have to write a very long name for the test\`, () => {}); + +skip("does something really long and complicated so I have to write a very long name for the test", () => {}); + // Should break it.only("does something really long and complicated so I have to write a very long name for the test", 10, () => { @@ -316,6 +335,8 @@ it.only.only("does something really long and complicated so I have to write a ve it.only.only("does something really long and complicated so I have to write a very long name for the test", (a, b, c) => { console.log("hello!"); }); + +xskip("does something really long and complicated so I have to write a very long name for the test", () => {}); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Shouldn't break @@ -404,6 +425,10 @@ ftest("does something really long and complicated so I have to write a very long xtest("does something really long and complicated so I have to write a very long name for the describe block", () => {}); +skip(\`does something really long and complicated so I have to write a very long name for the test\`, () => {}); + +skip("does something really long and complicated so I have to write a very long name for the test", () => {}); + // Should break it.only( @@ -428,4 +453,9 @@ it.only.only( } ); +xskip( + "does something really long and complicated so I have to write a very long name for the test", + () => {} +); + `; diff --git a/tests/test_declarations/test_declarations.js b/tests/test_declarations/test_declarations.js index e7b33130..f4978419 100644 --- a/tests/test_declarations/test_declarations.js +++ b/tests/test_declarations/test_declarations.js @@ -85,6 +85,10 @@ ftest("does something really long and complicated so I have to write a very long xtest("does something really long and complicated so I have to write a very long name for the describe block", () => {}); +skip(`does something really long and complicated so I have to write a very long name for the test`, () => {}); + +skip("does something really long and complicated so I have to write a very long name for the test", () => {}); + // Should break it.only("does something really long and complicated so I have to write a very long name for the test", 10, () => { @@ -98,3 +102,5 @@ it.only.only("does something really long and complicated so I have to write a ve it.only.only("does something really long and complicated so I have to write a very long name for the test", (a, b, c) => { console.log("hello!"); }); + +xskip("does something really long and complicated so I have to write a very long name for the test", () => {}); From 1a1de60491333eb299de66f6d1727c7dca966191 Mon Sep 17 00:00:00 2001 From: Thorben von Hacht Date: Fri, 12 Jan 2018 21:31:51 -0800 Subject: [PATCH 047/277] Prettier extends and implements when not fitting in same line (#3689) * Added prettier layout for class extends and implements * Added prettier layout for class extends and implements, fix with keeping it in online if it fits * Added prettier layout for class extends and implements, fixed tests as a side change * Extends implements comments in same line fix * Extends implements comments in same line without ugly workaround * added empty line to test typescript_class/extends_implements.ts * If only one extends keep old behaviour * Removed console logs --- src/language-js/printer-estree.js | 54 ++++++++--- src/main/comments.js | 13 ++- .../__snapshots__/jsfmt.spec.js.snap | 8 +- .../classes/__snapshots__/jsfmt.spec.js.snap | 14 +-- .../union/__snapshots__/jsfmt.spec.js.snap | 16 +++- tests/flow/union/blowup.js | 8 +- .../__snapshots__/jsfmt.spec.js.snap | 10 +- tests/interface/break.js | 4 + .../__snapshots__/jsfmt.spec.js.snap | 5 +- tests/typescript_as/as.js | 2 +- .../__snapshots__/jsfmt.spec.js.snap | 91 +++++++++++++++++++ tests/typescript_class/extends_implements.ts | 35 +++++++ 12 files changed, 222 insertions(+), 38 deletions(-) create mode 100644 tests/typescript_class/extends_implements.ts diff --git a/src/language-js/printer-estree.js b/src/language-js/printer-estree.js index 9dffed46..85b74ed5 100644 --- a/src/language-js/printer-estree.js +++ b/src/language-js/printer-estree.js @@ -3636,24 +3636,41 @@ function printClass(path, options, print) { const partsGroup = []; if (n.superClass) { - if (hasLeadingOwnLineComment(options.originalText, n.superClass)) { - parts.push(hardline); - } else { - parts.push(" "); - } - const printed = concat([ "extends ", path.call(print, "superClass"), path.call(print, "superTypeParameters") ]); - parts.push( - path.call( - superClass => - comments.printComments(superClass, () => printed, options), - "superClass" - ) - ); + // Keep old behaviour of extends in same line + // If there is only on extends and there are not comments + if ( + (!n.implements || n.implements.length === 0) && + (!n.superClass.comments || n.superClass.comments.length === 0) + ) { + parts.push( + concat([ + " ", + path.call( + superClass => + comments.printComments(superClass, () => printed, options), + "superClass" + ) + ]) + ); + } else { + partsGroup.push( + group( + concat([ + line, + path.call( + superClass => + comments.printComments(superClass, () => printed, options), + "superClass" + ) + ]) + ) + ); + } } else if (n.extends && n.extends.length > 0) { parts.push(" extends ", join(", ", path.map(print, "extends"))); } @@ -3661,8 +3678,15 @@ function printClass(path, options, print) { if (n["implements"] && n["implements"].length > 0) { partsGroup.push( line, - "implements ", - group(indent(join(concat([",", line]), path.map(print, "implements")))) + "implements", + group( + indent( + concat([ + line, + join(concat([",", line]), path.map(print, "implements")) + ]) + ) + ) ); } diff --git a/src/main/comments.js b/src/main/comments.js index 1c4787e5..5273a46a 100644 --- a/src/main/comments.js +++ b/src/main/comments.js @@ -976,6 +976,17 @@ function printTrailingComment(commentPath, print, options) { } const isBlock = util.isBlockComment(comment); + // We don't want the line to break + // when the parentParentNode is a ClassDeclaration/-Expression + // And the parentNode is in the superClass property + const parentNode = commentPath.getNode(1); + const parentParentNode = commentPath.getNode(2); + const isParentSuperClass = + parentParentNode && + (parentParentNode.type === "ClassDeclaration" || + parentParentNode.type === "ClassExpression") && + parentParentNode.superClass === parentNode; + if ( util.hasNewline(options.originalText, locStart(comment), { backwards: true @@ -1001,7 +1012,7 @@ function printTrailingComment(commentPath, print, options) { return lineSuffix( concat([hardline, isLineBeforeEmpty ? hardline : "", contents]) ); - } else if (isBlock) { + } else if (isBlock || isParentSuperClass) { // Trailing block comments never need a newline return concat([" ", contents]); } diff --git a/tests/class_comment/__snapshots__/jsfmt.spec.js.snap b/tests/class_comment/__snapshots__/jsfmt.spec.js.snap index 3216c3ee..f23ec50f 100644 --- a/tests/class_comment/__snapshots__/jsfmt.spec.js.snap +++ b/tests/class_comment/__snapshots__/jsfmt.spec.js.snap @@ -51,8 +51,8 @@ export class SnapshotLogger { } ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ class A // comment 1 -// comment 2 -extends B {} + // comment 2 + extends B {} class A extends B // comment1 // comment2 @@ -66,8 +66,8 @@ class A extends B /* a */ { class A /* a */ extends B {} (class A // comment 1 -// comment 2 -extends B {}); + // comment 2 + extends B {}); (class A extends B // comment1 // comment2 diff --git a/tests/classes/__snapshots__/jsfmt.spec.js.snap b/tests/classes/__snapshots__/jsfmt.spec.js.snap index 6c76fff6..30f3eff6 100644 --- a/tests/classes/__snapshots__/jsfmt.spec.js.snap +++ b/tests/classes/__snapshots__/jsfmt.spec.js.snap @@ -50,11 +50,9 @@ export class VisTimelineComponent2 implements AfterViewInit, OnChanges, OnDestroy, AndSomethingReallyReallyLong { } ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -class MyContractSelectionWidget extends React.Component< - void, - MyContractSelectionWidgetPropsType, - void -> implements SomethingLarge { +class MyContractSelectionWidget + extends React.Component + implements SomethingLarge { method() {} } @@ -65,7 +63,8 @@ class DisplayObject extends utils.EventEmitter implements interaction_InteractiveTarget {} class DisplayObject extends utils.EventEmitter - implements interaction_InteractiveTarget, + implements + interaction_InteractiveTarget, somethingElse_SomeOtherThing, somethingElseAgain_RunningOutOfNames {} @@ -84,7 +83,8 @@ class Foo extends Immutable.Record({ export class VisTimelineComponent implements AfterViewInit, OnChanges, OnDestroy {} export class VisTimelineComponent2 - implements AfterViewInit, + implements + AfterViewInit, OnChanges, OnDestroy, AndSomethingReallyReallyLong {} diff --git a/tests/flow/union/__snapshots__/jsfmt.spec.js.snap b/tests/flow/union/__snapshots__/jsfmt.spec.js.snap index 51587ffb..056241c2 100644 --- a/tests/flow/union/__snapshots__/jsfmt.spec.js.snap +++ b/tests/flow/union/__snapshots__/jsfmt.spec.js.snap @@ -29,19 +29,19 @@ export class PlusOp extends BinaryExpression { +export class MinusOp extends BinaryExpression { } -export class MulOp extends BinaryExpression { +export class MulOp extends BinaryExpression { } -export class DivOp extends BinaryExpression { +export class DivOp extends BinaryExpression { } -export class ModOp extends BinaryExpression { +export class ModOp extends BinaryExpression { } ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -77,21 +77,29 @@ export class PlusOp extends BinaryExpression< > {} export class MinusOp extends BinaryExpression< + ArithmeticExpression, + ArithmeticExpression, ArithmeticExpression, ArithmeticExpression > {} export class MulOp extends BinaryExpression< + ArithmeticExpression, + ArithmeticExpression, ArithmeticExpression, ArithmeticExpression > {} export class DivOp extends BinaryExpression< + ArithmeticExpression, + ArithmeticExpression, ArithmeticExpression, ArithmeticExpression > {} export class ModOp extends BinaryExpression< + ArithmeticExpression, + ArithmeticExpression, ArithmeticExpression, ArithmeticExpression > {} diff --git a/tests/flow/union/blowup.js b/tests/flow/union/blowup.js index a480219d..96fdd9cb 100644 --- a/tests/flow/union/blowup.js +++ b/tests/flow/union/blowup.js @@ -26,18 +26,18 @@ export class PlusOp extends BinaryExpression { +export class MinusOp extends BinaryExpression { } -export class MulOp extends BinaryExpression { +export class MulOp extends BinaryExpression { } -export class DivOp extends BinaryExpression { +export class DivOp extends BinaryExpression { } -export class ModOp extends BinaryExpression { +export class ModOp extends BinaryExpression { } diff --git a/tests/interface/__snapshots__/jsfmt.spec.js.snap b/tests/interface/__snapshots__/jsfmt.spec.js.snap index c9b5219d..29530783 100644 --- a/tests/interface/__snapshots__/jsfmt.spec.js.snap +++ b/tests/interface/__snapshots__/jsfmt.spec.js.snap @@ -12,6 +12,10 @@ export class Environment2 extends GenericEnvironment< SomeType, AnotherType, YetAnotherType, + DifferentType1, + DifferentType2, + DifferentType3, + DifferentType4, > { m() {}; }; @@ -23,7 +27,11 @@ export interface Environment1 export class Environment2 extends GenericEnvironment< SomeType, AnotherType, - YetAnotherType + YetAnotherType, + DifferentType1, + DifferentType2, + DifferentType3, + DifferentType4 > { m() {} } diff --git a/tests/interface/break.js b/tests/interface/break.js index f6b33dfb..02e9e1e1 100644 --- a/tests/interface/break.js +++ b/tests/interface/break.js @@ -9,6 +9,10 @@ export class Environment2 extends GenericEnvironment< SomeType, AnotherType, YetAnotherType, + DifferentType1, + DifferentType2, + DifferentType3, + DifferentType4, > { m() {}; }; diff --git a/tests/typescript_as/__snapshots__/jsfmt.spec.js.snap b/tests/typescript_as/__snapshots__/jsfmt.spec.js.snap index 25d5bea9..73a1f83f 100644 --- a/tests/typescript_as/__snapshots__/jsfmt.spec.js.snap +++ b/tests/typescript_as/__snapshots__/jsfmt.spec.js.snap @@ -7,7 +7,7 @@ this.isTabActionBar((e.target || e.srcElement) as HTMLElement); 'current' in (props.pagination as Object) start + (yearSelectTotal as number) scrollTop > (visibilityHeight as number) -export default class Column extends (RcTable.Column as React.ComponentClass>) {} +export default class Column extends (RcTable.Column as React.ComponentClass,ColumnProps,ColumnProps,ColumnProps>) {} export abstract class MobxTypedForm extends (Form as { new (): any }) {} ({}) as {}; function*g() { @@ -38,6 +38,9 @@ this.isTabActionBar((e.target || e.srcElement) as HTMLElement); start + (yearSelectTotal as number); scrollTop > (visibilityHeight as number); export default class Column extends (RcTable.Column as React.ComponentClass< + ColumnProps, + ColumnProps, + ColumnProps, ColumnProps >) {} export abstract class MobxTypedForm extends (Form as { new (): any }) {} diff --git a/tests/typescript_as/as.js b/tests/typescript_as/as.js index b74f5f8a..1bedea90 100644 --- a/tests/typescript_as/as.js +++ b/tests/typescript_as/as.js @@ -4,7 +4,7 @@ this.isTabActionBar((e.target || e.srcElement) as HTMLElement); 'current' in (props.pagination as Object) start + (yearSelectTotal as number) scrollTop > (visibilityHeight as number) -export default class Column extends (RcTable.Column as React.ComponentClass>) {} +export default class Column extends (RcTable.Column as React.ComponentClass,ColumnProps,ColumnProps,ColumnProps>) {} export abstract class MobxTypedForm extends (Form as { new (): any }) {} ({}) as {}; function*g() { diff --git a/tests/typescript_class/__snapshots__/jsfmt.spec.js.snap b/tests/typescript_class/__snapshots__/jsfmt.spec.js.snap index adf74216..861224dd 100644 --- a/tests/typescript_class/__snapshots__/jsfmt.spec.js.snap +++ b/tests/typescript_class/__snapshots__/jsfmt.spec.js.snap @@ -28,6 +28,97 @@ class F<__T> {} `; +exports[`extends_implements.ts 1`] = ` +class Class extends AbstractClass implements Interface1, Interface2, Interface3, Interface4 {} + +class ExtendsAbstractClassAndImplementsInterfaces extends AbstractClass + implements Interface1, Interface2, Interface3, Interface4 {} + +class ExtendsAbstractClassAndImplementsInterfaces + extends AAAAAAAAAAAAAAbstractClass + implements Interface1, Interface2, Interface3, Interface4 {} + +class ExtendsAbstractClassAndImplementsInterfaces + extends AAAAAAAAAAAAAAbstractClass + implements + Interface1, + Interface2, + Interface3, + Interface4, + Interface5, + Interface6, + Interface7, + Interface8 {} + +class ExtendsAbstractClassAndImplementsInterfaces + extends AAAAAAAAAAAAAAbstractClass {} + +class ExtendsAbstractClassAndImplementsInterfaces + extends AAAAAAAAAAAAAAbstractClass + implements + Interface1, + Interface2, + Interface3, + Interface4, + Interface5, + Interface6, + Interface7, + Interface8 {} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +class Class extends AbstractClass + implements Interface1, Interface2, Interface3, Interface4 {} + +class ExtendsAbstractClassAndImplementsInterfaces extends AbstractClass + implements Interface1, Interface2, Interface3, Interface4 {} + +class ExtendsAbstractClassAndImplementsInterfaces + extends AAAAAAAAAAAAAAbstractClass + implements Interface1, Interface2, Interface3, Interface4 {} + +class ExtendsAbstractClassAndImplementsInterfaces + extends AAAAAAAAAAAAAAbstractClass + implements + Interface1, + Interface2, + Interface3, + Interface4, + Interface5, + Interface6, + Interface7, + Interface8 {} + +class ExtendsAbstractClassAndImplementsInterfaces extends AAAAAAAAAAAAAAbstractClass< + Type1, + Type2, + Type3, + Type4, + Type5, + Type6, + Type7 +> {} + +class ExtendsAbstractClassAndImplementsInterfaces + extends AAAAAAAAAAAAAAbstractClass< + Type1, + Type2, + Type3, + Type4, + Type5, + Type6, + Type7 + > + implements + Interface1, + Interface2, + Interface3, + Interface4, + Interface5, + Interface6, + Interface7, + Interface8 {} + +`; + exports[`generics.ts 1`] = ` class implements Map {} diff --git a/tests/typescript_class/extends_implements.ts b/tests/typescript_class/extends_implements.ts new file mode 100644 index 00000000..0daed035 --- /dev/null +++ b/tests/typescript_class/extends_implements.ts @@ -0,0 +1,35 @@ +class Class extends AbstractClass implements Interface1, Interface2, Interface3, Interface4 {} + +class ExtendsAbstractClassAndImplementsInterfaces extends AbstractClass + implements Interface1, Interface2, Interface3, Interface4 {} + +class ExtendsAbstractClassAndImplementsInterfaces + extends AAAAAAAAAAAAAAbstractClass + implements Interface1, Interface2, Interface3, Interface4 {} + +class ExtendsAbstractClassAndImplementsInterfaces + extends AAAAAAAAAAAAAAbstractClass + implements + Interface1, + Interface2, + Interface3, + Interface4, + Interface5, + Interface6, + Interface7, + Interface8 {} + +class ExtendsAbstractClassAndImplementsInterfaces + extends AAAAAAAAAAAAAAbstractClass {} + +class ExtendsAbstractClassAndImplementsInterfaces + extends AAAAAAAAAAAAAAbstractClass + implements + Interface1, + Interface2, + Interface3, + Interface4, + Interface5, + Interface6, + Interface7, + Interface8 {} From 64f1c06727cae5a8ebdd1236b4d51005db034723 Mon Sep 17 00:00:00 2001 From: Evilebot Tnawi Date: Sat, 13 Jan 2018 18:17:29 +0300 Subject: [PATCH 048/277] fix(scss/less): space after combinator operator (#3738) --- src/language-css/printer-postcss.js | 3 +- .../__snapshots__/jsfmt.spec.js.snap | 167 +++++++++++++++++- tests/css_selector_list/selectors.css | 66 ++++++- 3 files changed, 233 insertions(+), 3 deletions(-) diff --git a/src/language-css/printer-postcss.js b/src/language-css/printer-postcss.js index 59919d5b..97105062 100644 --- a/src/language-css/printer-postcss.js +++ b/src/language-css/printer-postcss.js @@ -258,7 +258,8 @@ function genericPrint(path, options, print) { parent.type === "selector-selector" && parent.nodes[0] === n ? "" : line; - return concat([leading, n.value, " "]); + const isLastNode = parent.nodes.length - 1 === parent.nodes.indexOf(n); + return concat([leading, n.value, isLastNode ? "" : " "]); } const leading = n.value.trim().startsWith("(") ? line : ""; const value = diff --git a/tests/css_selector_list/__snapshots__/jsfmt.spec.js.snap b/tests/css_selector_list/__snapshots__/jsfmt.spec.js.snap index f71441bd..b22297ff 100644 --- a/tests/css_selector_list/__snapshots__/jsfmt.spec.js.snap +++ b/tests/css_selector_list/__snapshots__/jsfmt.spec.js.snap @@ -9,7 +9,72 @@ exports[`selectors.css 1`] = ` } .asdasldaskdhjkashdahsdkjahskdjhakjsdkjahsdhkas .asdasldaskdhjkashdahsdkjahskdjhakjsdkjahsdhkas, -.asdasldaskdhjkashdahsdkjahskdjhakjsdkjahsdhkas .asdasldaskdhjkashdahsdkjahskdjhakjsdkjahsdhkas {}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.asdasldaskdhjkashdahsdkjahskdjhakjsdkjahsdhkas .asdasldaskdhjkashdahsdkjahskdjhakjsdkjahsdhkas {} + +.parent.child {} +.parent .child {} +.parent .child {} +.parent { + .child-one {} + .child-two {} +} +.parent{ +.child-one {} +.child-two {} +} +.parent { + .child-one {} + .child-two {} +} + +.parent>.child {} +.parent > .child {} +.parent > .child {} +.parent>{ + .child-one {} + .child-two {} +} +.parent > { + .child-one {} + .child-two {} +} +.parent > { + .child-one {} + .child-two {} +} + +.parent+.child {} +.parent + .child {} +.parent + .child {} +.parent+{ + .child-one {} + .child-two {} +} +.parent + { + .child-one {} + .child-two {} +} +.parent + { + .child-one {} + .child-two {} +} + +.parent~.child {} +.parent ~ .child {} +.parent ~ .child {} +.parent~{ + .child-one {} + .child-two {} +} +.parent ~ { + .child-one {} + .child-two {} +} +.parent ~ { + .child-one {} + .child-two {} +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .a, .b, .c { @@ -34,4 +99,104 @@ exports[`selectors.css 1`] = ` .asdasldaskdhjkashdahsdkjahskdjhakjsdkjahsdhkas { } +.parent.child { +} +.parent .child { +} +.parent .child { +} +.parent { + .child-one { + } + .child-two { + } +} +.parent { + .child-one { + } + .child-two { + } +} +.parent { + .child-one { + } + .child-two { + } +} + +.parent > .child { +} +.parent > .child { +} +.parent > .child { +} +.parent > { + .child-one { + } + .child-two { + } +} +.parent > { + .child-one { + } + .child-two { + } +} +.parent > { + .child-one { + } + .child-two { + } +} + +.parent + .child { +} +.parent + .child { +} +.parent + .child { +} +.parent + { + .child-one { + } + .child-two { + } +} +.parent + { + .child-one { + } + .child-two { + } +} +.parent + { + .child-one { + } + .child-two { + } +} + +.parent ~ .child { +} +.parent ~ .child { +} +.parent ~ .child { +} +.parent ~ { + .child-one { + } + .child-two { + } +} +.parent ~ { + .child-one { + } + .child-two { + } +} +.parent ~ { + .child-one { + } + .child-two { + } +} + `; diff --git a/tests/css_selector_list/selectors.css b/tests/css_selector_list/selectors.css index 2a8c2ca7..d03ee1a8 100644 --- a/tests/css_selector_list/selectors.css +++ b/tests/css_selector_list/selectors.css @@ -6,4 +6,68 @@ } .asdasldaskdhjkashdahsdkjahskdjhakjsdkjahsdhkas .asdasldaskdhjkashdahsdkjahskdjhakjsdkjahsdhkas, -.asdasldaskdhjkashdahsdkjahskdjhakjsdkjahsdhkas .asdasldaskdhjkashdahsdkjahskdjhakjsdkjahsdhkas {} \ No newline at end of file +.asdasldaskdhjkashdahsdkjahskdjhakjsdkjahsdhkas .asdasldaskdhjkashdahsdkjahskdjhakjsdkjahsdhkas {} + +.parent.child {} +.parent .child {} +.parent .child {} +.parent { + .child-one {} + .child-two {} +} +.parent{ +.child-one {} +.child-two {} +} +.parent { + .child-one {} + .child-two {} +} + +.parent>.child {} +.parent > .child {} +.parent > .child {} +.parent>{ + .child-one {} + .child-two {} +} +.parent > { + .child-one {} + .child-two {} +} +.parent > { + .child-one {} + .child-two {} +} + +.parent+.child {} +.parent + .child {} +.parent + .child {} +.parent+{ + .child-one {} + .child-two {} +} +.parent + { + .child-one {} + .child-two {} +} +.parent + { + .child-one {} + .child-two {} +} + +.parent~.child {} +.parent ~ .child {} +.parent ~ .child {} +.parent~{ + .child-one {} + .child-two {} +} +.parent ~ { + .child-one {} + .child-two {} +} +.parent ~ { + .child-one {} + .child-two {} +} From b92f1cd0aeec0e7fca5fb74ad5f60e145f02a75b Mon Sep 17 00:00:00 2001 From: Jed Fox Date: Mon, 15 Jan 2018 09:02:30 -0500 Subject: [PATCH 049/277] Use an SVG tag to allow the Twitter button to be interactive (#3739) * Use an SVG tag to allow the Twitter button to be interactive The interactive button links you to a page to follow the user directly, so I also added a direct link to the profile. * Lint --- website/core/Footer.js | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/website/core/Footer.js b/website/core/Footer.js index 46e609e3..66fd598e 100644 --- a/website/core/Footer.js +++ b/website/core/Footer.js @@ -57,11 +57,19 @@ class Footer extends React.Component { Chat on Gitter - Follow Prettier on Twitter + @PrettierCode on Twitter + + + Follow Prettier on Twitter + +
More
From 2dd311d554596478a252a7b8019543c86d509fad Mon Sep 17 00:00:00 2001 From: Ika Date: Tue, 16 Jan 2018 11:32:25 +0800 Subject: [PATCH 050/277] fix(javascript): indentation for sub-ternaries (#3747) * test: add test cases * test: add test cases * fix(javascript): indentation for sub-ternaries * test: update test cases * fix: no extra tab for `tabWidth: 4` --- src/language-js/printer-estree.js | 8 +- .../__snapshots__/jsfmt.spec.js.snap | 229 +++++++++++++++++- tests/ternaries/indent.js | 14 ++ tests/ternaries/jsfmt.spec.js | 1 + 4 files changed, 249 insertions(+), 3 deletions(-) diff --git a/src/language-js/printer-estree.js b/src/language-js/printer-estree.js index 85b74ed5..38a5215b 100644 --- a/src/language-js/printer-estree.js +++ b/src/language-js/printer-estree.js @@ -1259,7 +1259,7 @@ function printPathNoParens(path, options, print, args) { ); } else { // normal mode - parts.push( + const part = concat([ line, "? ", n.consequent.type === "ConditionalExpression" ? ifBreak("", "(") : "", @@ -1268,6 +1268,12 @@ function printPathNoParens(path, options, print, args) { line, ": ", align(2, path.call(print, "alternate")) + ]); + parts.push( + // TODO: remove `!options.useTabs` condition if #3745 merged + parent.type === "ConditionalExpression" && !options.useTabs + ? align(Math.max(0, options.tabWidth - 2), part) + : part ); } diff --git a/tests/ternaries/__snapshots__/jsfmt.spec.js.snap b/tests/ternaries/__snapshots__/jsfmt.spec.js.snap index 5eff19d9..34781507 100644 --- a/tests/ternaries/__snapshots__/jsfmt.spec.js.snap +++ b/tests/ternaries/__snapshots__/jsfmt.spec.js.snap @@ -105,8 +105,57 @@ room = room.map((row, rowIndex) => `; +exports[`binary.js 4`] = ` +const funnelSnapshotCard = (report === MY_OVERVIEW && + !ReportGK.xar_metrics_active_capitol_v2) || + (report === COMPANY_OVERVIEW && + !ReportGK.xar_metrics_active_capitol_v2_company_metrics) + ? + : null; + +room = room.map((row, rowIndex) => ( + row.map((col, colIndex) => ( + (rowIndex === 0 || colIndex === 0 || rowIndex === height || colIndex === width) ? 1 : 0 + )) +)) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +const funnelSnapshotCard = + (report === MY_OVERVIEW && !ReportGK.xar_metrics_active_capitol_v2) || + (report === COMPANY_OVERVIEW && + !ReportGK.xar_metrics_active_capitol_v2_company_metrics) ? ( + + ) : null; + +room = room.map((row, rowIndex) => + row.map( + (col, colIndex) => + rowIndex === 0 || + colIndex === 0 || + rowIndex === height || + colIndex === width + ? 1 + : 0 + ) +); + +`; + exports[`indent.js 1`] = ` aaaaaaaaaaaaaaa ? bbbbbbbbbbbbbbbbbb : ccccccccccccccc ? ddddddddddddddd : eeeeeeeeeeeeeee ? fffffffffffffff : gggggggggggggggg + +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +? +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +? +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +? +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +: +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +: +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +: +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ aaaaaaaaaaaaaaa ? bbbbbbbbbbbbbbbbbb @@ -114,21 +163,65 @@ aaaaaaaaaaaaaaa ? ddddddddddddddd : eeeeeeeeeeeeeee ? fffffffffffffff : gggggggggggggggg; +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + ? aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + ? aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + ? aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + : aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + : aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + : aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa; + `; exports[`indent.js 2`] = ` aaaaaaaaaaaaaaa ? bbbbbbbbbbbbbbbbbb : ccccccccccccccc ? ddddddddddddddd : eeeeeeeeeeeeeee ? fffffffffffffff : gggggggggggggggg + +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +? +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +? +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +? +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +: +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +: +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +: +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ aaaaaaaaaaaaaaa ? bbbbbbbbbbbbbbbbbb : ccccccccccccccc - ? ddddddddddddddd - : eeeeeeeeeeeeeee ? fffffffffffffff : gggggggggggggggg; + ? ddddddddddddddd + : eeeeeeeeeeeeeee ? fffffffffffffff : gggggggggggggggg; + +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + ? aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + ? aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + ? aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + : aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + : aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + : aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa; `; exports[`indent.js 3`] = ` aaaaaaaaaaaaaaa ? bbbbbbbbbbbbbbbbbb : ccccccccccccccc ? ddddddddddddddd : eeeeeeeeeeeeeee ? fffffffffffffff : gggggggggggggggg + +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +? +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +? +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +? +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +: +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +: +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +: +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ aaaaaaaaaaaaaaa ? bbbbbbbbbbbbbbbbbb @@ -136,6 +229,47 @@ aaaaaaaaaaaaaaa ? ddddddddddddddd : eeeeeeeeeeeeeee ? fffffffffffffff : gggggggggggggggg; +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + ? aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + ? aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + ? aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + : aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + : aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + : aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa; + +`; + +exports[`indent.js 4`] = ` +aaaaaaaaaaaaaaa ? bbbbbbbbbbbbbbbbbb : ccccccccccccccc ? ddddddddddddddd : eeeeeeeeeeeeeee ? fffffffffffffff : gggggggggggggggg + +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +? +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +? +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +? +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +: +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +: +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +: +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +aaaaaaaaaaaaaaa + ? bbbbbbbbbbbbbbbbbb + : ccccccccccccccc + ? ddddddddddddddd + : eeeeeeeeeeeeeee ? fffffffffffffff : gggggggggggggggg; + +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + ? aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + ? aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + ? aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + : aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + : aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + : aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa; + `; exports[`nested.js 1`] = ` @@ -174,6 +308,18 @@ let icecream = `; +exports[`nested.js 4`] = ` +let icecream = what == "cone" + ? p => !!p ? \`here's your \${p} cone\` : \`just the empty cone for you\` + : p => \`here's your \${p} \${what}\`; +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +let icecream = + what == "cone" + ? p => (!!p ? \`here's your \${p} cone\` : \`just the empty cone for you\`) + : p => \`here's your \${p} \${what}\`; + +`; + exports[`parenthesis.js 1`] = ` debug ? this.state.isVisible ? "partially visible" : "hidden" : null; debug ? this.state.isVisible && somethingComplex ? "partially visible" : "hidden" : null; @@ -255,6 +401,33 @@ a => `; +exports[`parenthesis.js 4`] = ` +debug ? this.state.isVisible ? "partially visible" : "hidden" : null; +debug ? this.state.isVisible && somethingComplex ? "partially visible" : "hidden" : null; + +a => a ? () => {a} : () => {a} +a => a ? a : a +a => a ? aasdasdasdasdasdasdaaasdasdasdasdasdasdasdasdasdasdasdasdasdaaaaaa : a +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +debug ? (this.state.isVisible ? "partially visible" : "hidden") : null; +debug + ? this.state.isVisible && somethingComplex ? "partially visible" : "hidden" + : null; + +a => + a + ? () => { + a; + } + : () => { + a; + }; +a => (a ? a : a); +a => + a ? aasdasdasdasdasdasdaaasdasdasdasdasdasdasdasdasdasdasdasdasdaaaaaa : a; + +`; + exports[`test.js 1`] = ` const obj0 = conditionIsTruthy ? shortThing : otherShortThing @@ -410,3 +583,55 @@ const obj5 = conditionIsTruthy }; `; + +exports[`test.js 4`] = ` +const obj0 = conditionIsTruthy ? shortThing : otherShortThing + +const obj1 = conditionIsTruthy ? { some: 'long', object: 'with', lots: 'of', stuff } : shortThing + +const obj2 = conditionIsTruthy ? shortThing : { some: 'long', object: 'with', lots: 'of', stuff } + +const obj3 = conditionIsTruthy ? { some: 'eeeeeeeeeeeeven looooooooooooooooooooooooooooooonger', object: 'with', lots: 'of', stuff } : shortThing + +const obj4 = conditionIsTruthy ? shortThing : { some: 'eeeeeeeeeeeeven looooooooooooooooooooooooooooooonger', object: 'with', lots: 'of', stuff } + +const obj5 = conditionIsTruthy ? { some: 'long', object: 'with', lots: 'of', stuff } : { some: 'eeeeeeeeeeeeven looooooooooooooooooooooooooooooonger', object: 'with', lots: 'of', stuff } +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +const obj0 = conditionIsTruthy ? shortThing : otherShortThing; + +const obj1 = conditionIsTruthy + ? { some: "long", object: "with", lots: "of", stuff } + : shortThing; + +const obj2 = conditionIsTruthy + ? shortThing + : { some: "long", object: "with", lots: "of", stuff }; + +const obj3 = conditionIsTruthy + ? { + some: "eeeeeeeeeeeeven looooooooooooooooooooooooooooooonger", + object: "with", + lots: "of", + stuff + } + : shortThing; + +const obj4 = conditionIsTruthy + ? shortThing + : { + some: "eeeeeeeeeeeeven looooooooooooooooooooooooooooooonger", + object: "with", + lots: "of", + stuff + }; + +const obj5 = conditionIsTruthy + ? { some: "long", object: "with", lots: "of", stuff } + : { + some: "eeeeeeeeeeeeven looooooooooooooooooooooooooooooonger", + object: "with", + lots: "of", + stuff + }; + +`; diff --git a/tests/ternaries/indent.js b/tests/ternaries/indent.js index b6b2380b..8481f285 100644 --- a/tests/ternaries/indent.js +++ b/tests/ternaries/indent.js @@ -1 +1,15 @@ aaaaaaaaaaaaaaa ? bbbbbbbbbbbbbbbbbb : ccccccccccccccc ? ddddddddddddddd : eeeeeeeeeeeeeee ? fffffffffffffff : gggggggggggggggg + +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +? +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +? +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +? +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +: +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +: +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +: +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/tests/ternaries/jsfmt.spec.js b/tests/ternaries/jsfmt.spec.js index db53feeb..3f4ea6ad 100644 --- a/tests/ternaries/jsfmt.spec.js +++ b/tests/ternaries/jsfmt.spec.js @@ -1,3 +1,4 @@ run_spec(__dirname, ["flow", "typescript"]); run_spec(__dirname, ["flow", "typescript"], { tabWidth: 4 }); run_spec(__dirname, ["flow", "typescript"], { useTabs: true }); +run_spec(__dirname, ["flow", "typescript"], { useTabs: true, tabWidth: 4 }); From de6bc4448f59c6fc1df396692b0ee43e3c62e1c0 Mon Sep 17 00:00:00 2001 From: Ika Date: Wed, 17 Jan 2018 12:52:42 +0800 Subject: [PATCH 051/277] fix(multiparser): respect 0-indent markdown-in-js (#3676) * fix(multiparser): respect 0-indent markdown-in-js * fix: use literalline for 0-indent * test: add unexpected case * fix: 0-indent * test: add failing test * refactor: simplify * fix(doc): literallines respect `ind.root` * docs: update commands * fix: what a magic... --- commands.md | 16 +++++ src/doc/doc-builders.js | 12 +++- src/doc/doc-debug.js | 10 +++- src/doc/doc-printer.js | 40 ++++++++----- src/language-js/embed.js | 41 +++++++------ src/language-markdown/embed.js | 17 +++--- tests/markdown_code/0-indent-js.md | 20 +++++++ .../__snapshots__/jsfmt.spec.js.snap | 48 +++++++++++++++ tests/multiparser_js_markdown/0-indent.js | 19 ++++++ .../__snapshots__/jsfmt.spec.js.snap | 58 +++++++++++++++++-- 10 files changed, 235 insertions(+), 46 deletions(-) create mode 100644 tests/markdown_code/0-indent-js.md create mode 100644 tests/multiparser_js_markdown/0-indent.js diff --git a/commands.md b/commands.md index e54ceb55..c7fa6912 100644 --- a/commands.md +++ b/commands.md @@ -201,6 +201,22 @@ declare function align(n: number, doc: Doc): Doc; This is similar to indent but it increases the level of indentation by a fixed number. When using tabs, it's going to print spaces. You should prefer using `indent` whenever possible. +### markAsRoot + +```ts +declare function markAsRoot(doc: Doc): Doc; +``` + +This marks the current indentation as root for `dedentToRoot` and `literalline`s. + +#### dedentToRoot + +```ts +declare function dedentToRoot(doc: Doc): Doc; +``` + +This will dedent the current indentation to the root marked by `markAsRoot`. + ### cursor ```ts diff --git a/src/doc/doc-builders.js b/src/doc/doc-builders.js index d99c6f47..efcc1d1c 100644 --- a/src/doc/doc-builders.js +++ b/src/doc/doc-builders.js @@ -56,6 +56,14 @@ function group(contents, opts) { }; } +function dedentToRoot(contents) { + return align(-Infinity, contents); +} + +function markAsRoot(contents) { + return align(Infinity, contents); +} + function conditionalGroup(states, opts) { return group( states[0], @@ -149,5 +157,7 @@ module.exports = { ifBreak, indent, align, - addAlignmentToDoc + addAlignmentToDoc, + markAsRoot, + dedentToRoot }; diff --git a/src/doc/doc-debug.js b/src/doc/doc-debug.js index 80e117a8..7252c8ea 100644 --- a/src/doc/doc-debug.js +++ b/src/doc/doc-debug.js @@ -68,7 +68,15 @@ function printDoc(doc) { } if (doc.type === "align") { - return "align(" + doc.n + ", " + printDoc(doc.contents) + ")"; + return doc.n === -Infinity + ? "dedentToRoot(" + printDoc(doc.contents) + ")" + : doc.n === Infinity + ? "markAsRoot(" + printDoc(doc.contents) + ")" + : "align(" + + JSON.stringify(doc.n) + + ", " + + printDoc(doc.contents) + + ")"; } if (doc.type === "if-break") { diff --git a/src/doc/doc-printer.js b/src/doc/doc-printer.js index 813f3269..a8bb691a 100644 --- a/src/doc/doc-printer.js +++ b/src/doc/doc-printer.js @@ -19,24 +19,33 @@ function rootIndent() { function makeIndent(ind, options) { return { length: ind.length + options.tabWidth, - value: ind.value + (options.useTabs ? "\t" : " ".repeat(options.tabWidth)) + value: ind.value + (options.useTabs ? "\t" : " ".repeat(options.tabWidth)), + root: ind.root }; } function makeAlign(ind, n, options) { return n === -Infinity - ? rootIndent() - : typeof n === "string" + ? ind.root ? ind.root : rootIndent() + : n === Infinity ? { - length: ind.length + n.length, - value: ind.value + n + length: ind.length, + value: ind.value, + root: ind } - : options.useTabs && n > 0 - ? makeIndent(ind, options) - : { - length: ind.length + n, - value: ind.value + " ".repeat(n) - }; + : typeof n === "string" + ? { + length: ind.length + n.length, + value: ind.value + n, + root: ind.root + } + : options.useTabs && n > 0 + ? makeIndent(ind, options) + : { + length: ind.length + n, + value: ind.value + " ".repeat(n), + root: ind.root + }; } function fits(next, restCommands, width, options, mustBeFlat) { @@ -380,8 +389,13 @@ function printDocToString(doc, options) { } if (doc.literal) { - out.push(newLine); - pos = 0; + if (ind.root) { + out.push(newLine, ind.root.value); + pos = ind.root.length; + } else { + out.push(newLine); + pos = 0; + } } else { if (out.length > 0) { // Trim whitespace at the end of line diff --git a/src/language-js/embed.js b/src/language-js/embed.js index 08d47768..7bddab22 100644 --- a/src/language-js/embed.js +++ b/src/language-js/embed.js @@ -8,7 +8,9 @@ const indent = docBuilders.indent; const join = docBuilders.join; const hardline = docBuilders.hardline; const softline = docBuilders.softline; +const literalline = docBuilders.literalline; const concat = docBuilders.concat; +const dedentToRoot = docBuilders.dedentToRoot; function embed(path, print, textToDoc /*, options */) { const node = path.getValue(); @@ -143,21 +145,20 @@ function embed(path, print, textToDoc /*, options */) { (parentParent.tag.name === "md" || parentParent.tag.name === "markdown"))) ) { - const doc = textToDoc( - // leading whitespaces matter in markdown - dedent(parent.quasis[0].value.cooked), - { - parser: "markdown", - __inJsTemplate: true - } - ); + const text = parent.quasis[0].value.cooked; + const indentation = getIndentation(text); + const hasIndent = indentation !== ""; return concat([ - indent( - concat([ - softline, - docUtils.stripTrailingHardline(escapeBackticks(doc)) - ]) - ), + hasIndent + ? indent( + concat([ + softline, + printMarkdown( + text.replace(new RegExp(`^${indentation}`, "gm"), "") + ) + ]) + ) + : concat([literalline, dedentToRoot(printMarkdown(text))]), softline ]); } @@ -165,12 +166,16 @@ function embed(path, print, textToDoc /*, options */) { break; } } + + function printMarkdown(text) { + const doc = textToDoc(text, { parser: "markdown", __inJsTemplate: true }); + return docUtils.stripTrailingHardline(escapeBackticks(doc)); + } } -function dedent(str) { - const firstMatchedIndent = str.match(/\n^( *)/m); - const spaces = firstMatchedIndent === null ? 0 : firstMatchedIndent[1].length; - return str.replace(new RegExp(`^ {${spaces}}`, "gm"), "").trim(); +function getIndentation(str) { + const firstMatchedIndent = str.match(/^([^\S\n]*)\S/m); + return firstMatchedIndent === null ? "" : firstMatchedIndent[1]; } function escapeBackticks(doc) { diff --git a/src/language-markdown/embed.js b/src/language-markdown/embed.js index 6cd10123..226d4296 100644 --- a/src/language-markdown/embed.js +++ b/src/language-markdown/embed.js @@ -6,6 +6,7 @@ const doc = require("../doc"); const docBuilders = doc.builders; const hardline = docBuilders.hardline; const concat = docBuilders.concat; +const markAsRoot = docBuilders.markAsRoot; function embed(path, print, textToDoc, options) { const node = path.getValue(); @@ -18,13 +19,15 @@ function embed(path, print, textToDoc, options) { Math.max(3, util.getMaxContinuousCount(node.value, styleUnit) + 1) ); const doc = textToDoc(node.value, { parser }); - return concat([ - style, - node.lang, - hardline, - replaceNewlinesWithHardlines(doc), - style - ]); + return markAsRoot( + concat([ + style, + node.lang, + hardline, + replaceNewlinesWithHardlines(doc), + style + ]) + ); } } diff --git a/tests/markdown_code/0-indent-js.md b/tests/markdown_code/0-indent-js.md new file mode 100644 index 00000000..1e8f10dc --- /dev/null +++ b/tests/markdown_code/0-indent-js.md @@ -0,0 +1,20 @@ +- 1 + - 2 + - 3 + ```js + md` + # this is the root indent + + # this is the root indent + + # this is the root indent + ` + + something` + asd + + asd + + asd + ` + ``` diff --git a/tests/markdown_code/__snapshots__/jsfmt.spec.js.snap b/tests/markdown_code/__snapshots__/jsfmt.spec.js.snap index 64974b2f..d4342152 100644 --- a/tests/markdown_code/__snapshots__/jsfmt.spec.js.snap +++ b/tests/markdown_code/__snapshots__/jsfmt.spec.js.snap @@ -1,5 +1,53 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP +exports[`0-indent-js.md 1`] = ` +- 1 + - 2 + - 3 + \`\`\`js + md\` + # this is the root indent + + # this is the root indent + + # this is the root indent + \` + + something\` + asd + + asd + + asd + \` + \`\`\` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +* 1 + + * 2 + + * 3 + + \`\`\`js + md\` + # this is the root indent + + # this is the root indent + + # this is the root indent + \`; + + something\` + asd + + asd + + asd + \`; + \`\`\` + +`; + exports[`additional-space.md 1`] = ` 1. Fork the repo and create your branch from \`master\`. diff --git a/tests/multiparser_js_markdown/0-indent.js b/tests/multiparser_js_markdown/0-indent.js new file mode 100644 index 00000000..6968d9ec --- /dev/null +++ b/tests/multiparser_js_markdown/0-indent.js @@ -0,0 +1,19 @@ +md` +This line shouldn't be indented at all in the resulting output. +` + +if (true) { + md` +text1 +- 123 + - 456 + +text2 +- 123 + - 456 + +text3 +- 123 + - 456 +`; +} diff --git a/tests/multiparser_js_markdown/__snapshots__/jsfmt.spec.js.snap b/tests/multiparser_js_markdown/__snapshots__/jsfmt.spec.js.snap index 53246b1c..490cbda4 100644 --- a/tests/multiparser_js_markdown/__snapshots__/jsfmt.spec.js.snap +++ b/tests/multiparser_js_markdown/__snapshots__/jsfmt.spec.js.snap @@ -1,5 +1,51 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP +exports[`0-indent.js 1`] = ` +md\` +This line shouldn't be indented at all in the resulting output. +\` + +if (true) { + md\` +text1 +- 123 + - 456 + +text2 +- 123 + - 456 + +text3 +- 123 + - 456 +\`; +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +md\` +This line shouldn't be indented at all in the resulting output. +\`; + +if (true) { + md\` +text1 + +* 123 + * 456 + +text2 + +* 123 + * 456 + +text3 + +* 123 + * 456 + \`; +} + +`; + exports[`codeblock.js 1`] = ` md\` \\\`\\\`\\\`js @@ -12,13 +58,13 @@ markdown\\\` \`; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ md\` +~~~js +markdown\\\` ~~~js - markdown\\\` - ~~~js - console.log("hi"); - ~~~ - \\\`; + console.log("hi"); ~~~ +\\\`; +~~~ \`; `; @@ -80,7 +126,7 @@ exports[`single-line.js 1`] = ` markdown\`# hello\` ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ markdown\` - # hello +# hello \`; `; From 114895a8a20d35770124f06719869f4b8089a758 Mon Sep 17 00:00:00 2001 From: Jed Fox Date: Wed, 17 Jan 2018 16:54:36 -0500 Subject: [PATCH 052/277] Link to the plugin docs in the README (#3762) --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index a73964db..05b70bbf 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,9 @@ · GraphQL · JSON · Markdown + · + Your favorite language? +

From 3f788d4fb678a1c31fe8cd277b1411083038402e Mon Sep 17 00:00:00 2001 From: wonderful-panda Date: Thu, 18 Jan 2018 11:20:55 +0900 Subject: [PATCH 053/277] fix: *.vue with `lang='tsx'` is not formatted (#3763) --- src/language-vue/embed.js | 2 +- .../__snapshots__/jsfmt.spec.js.snap | 53 +++++++++++++++++++ tests/multiparser_vue/lang-ts.vue | 10 ++++ tests/multiparser_vue/lang-tsx.vue | 7 +++ 4 files changed, 71 insertions(+), 1 deletion(-) create mode 100644 tests/multiparser_vue/lang-ts.vue create mode 100644 tests/multiparser_vue/lang-tsx.vue diff --git a/src/language-vue/embed.js b/src/language-vue/embed.js index f1c48fa2..2f73eb75 100644 --- a/src/language-vue/embed.js +++ b/src/language-vue/embed.js @@ -28,7 +28,7 @@ function embed(path, print, textToDoc, options) { const langAttr = node.attrs.find(attr => attr.name === "lang"); if (!langAttr) { parser = "babylon"; - } else if (langAttr.value === "ts") { + } else if (langAttr.value === "ts" || langAttr.value === "tsx") { parser = "typescript"; } } diff --git a/tests/multiparser_vue/__snapshots__/jsfmt.spec.js.snap b/tests/multiparser_vue/__snapshots__/jsfmt.spec.js.snap index 8a428a27..bdb5d7c0 100644 --- a/tests/multiparser_vue/__snapshots__/jsfmt.spec.js.snap +++ b/tests/multiparser_vue/__snapshots__/jsfmt.spec.js.snap @@ -1,5 +1,58 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP +exports[`lang-ts.vue 1`] = ` + + + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + + + +`; + +exports[`lang-tsx.vue 1`] = ` + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + +`; + exports[`template-bind.vue 1`] = `

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 n&dRhRR+Z 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�+h4U;pMSo!ugTH1L6YhRYpC0gO1}0UD8oTs*H@f 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�ryq79m4zUOiZi?-GIQ(xqx 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 N002ovPDHLkV1kH?Joo?r literal 0 HcmV?d00001 diff --git a/docs/assets/youtube-cover/javascript-code-formatting-by-christopher-chedeau-on-react-london-2017.png b/docs/assets/youtube-cover/javascript-code-formatting-by-christopher-chedeau-on-react-london-2017.png new file mode 100644 index 0000000000000000000000000000000000000000..3aa1576f08cb277c8410b0489ba7474d093bea07 GIT binary patch literal 141055 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 z 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 literal 0 HcmV?d00001 diff --git a/docs/index.md b/docs/index.md index d98adb32..60e89952 100644 --- a/docs/index.md +++ b/docs/index.md @@ -46,9 +46,9 @@ Prettier enforces a consistent code **style** (i.e. code formatting that won't a If you want to learn more, these two conference talks are great introductions: -[![](https://cloud.githubusercontent.com/assets/197597/24886367/dda8a6f0-1e08-11e7-865b-22492450f10f.png)](https://www.youtube.com/watch?v=hkfBvpEfWdA) +[![A Prettier Printer by James Long on React Conf 2017](/docs/assets/youtube-cover/a-prettier-printer-by-james-long-on-react-conf-2017.png)](https://www.youtube.com/watch?v=hkfBvpEfWdA) -[![](https://cloud.githubusercontent.com/assets/197597/24886368/ddacd6f8-1e08-11e7-806a-9febd23cbf47.png)](https://www.youtube.com/watch?v=0Q4kUNx85_4") +[![Javascript Code Formatting by Christopher Chedeau on React London 2017](/docs/assets/youtube-cover/javascript-code-formatting-by-christopher-chedeau-on-react-london-2017.png)](https://www.youtube.com/watch?v=0Q4kUNx85_4) #### Footnotes diff --git a/website/blog/2017-06-03-1.4.0.md b/website/blog/2017-06-03-1.4.0.md index 117c9350..fbfe1e13 100644 --- a/website/blog/2017-06-03-1.4.0.md +++ b/website/blog/2017-06-03-1.4.0.md @@ -8,7 +8,7 @@ This release introduces support for TypeScript, CSS, Less, and SCSS languages to -[![prettier-revolution-conf](https://cloud.githubusercontent.com/assets/197597/26732495/9f1101b6-476c-11e7-8d19-56a17e2080c5.png)](https://revolutionconf.com/talk/a-prettier-printer) +[![prettier-revolution-conf](/blog/assets/prettier-revolution-conf.png)](https://revolutionconf.com/talk/a-prettier-printer) ## TypeScript Support diff --git a/website/blog/2017-08-29-1.6.0.md b/website/blog/2017-08-29-1.6.0.md index 82c218b2..463658de 100644 --- a/website/blog/2017-08-29-1.6.0.md +++ b/website/blog/2017-08-29-1.6.0.md @@ -479,7 +479,7 @@ const actionArray: (() => void)[] = []; #### Support TypeScript 2.5 RC ([#2672](https://github.com/prettier/prettier/pull/2672)) by [@azz](https://github.com/azz) -[TypeScript 2.5 RC](https://blogs.msdn.microsoft.com/typescript/2017/08/17/announcing-typescript-2-5-rc/) was recently announced, allowing you to use the upcoming "optional catch binding" syntax in TypeScript, too. :tada: +[TypeScript 2.5 RC](https://blogs.msdn.microsoft.com/typescript/2017/08/17/announcing-typescript-2-5-rc/) was recently announced, allowing you to use the upcoming "optional catch binding" syntax in TypeScript, too. 🎉 #### Don't add namespace keyword to global declaration ([#2329](https://github.com/prettier/prettier/pull/2329)) by [@azz](https://github.com/azz) diff --git a/website/blog/2017-09-15-1.7.0.md b/website/blog/2017-09-15-1.7.0.md index 66744585..ca196eff 100644 --- a/website/blog/2017-09-15-1.7.0.md +++ b/website/blog/2017-09-15-1.7.0.md @@ -55,7 +55,7 @@ We should print a ternary using JSX mode if: ``` However, this heuristic caused some [unexpected formatting](https://github.com/prettier/prettier/issues/2729): -![Github Diff showing a ternary containing internationalization strings appearing inside a JSX element being converted to use JSX-mode style ternaries](https://user-images.githubusercontent.com/254562/29985901-08597db0-8f2f-11e7-8c6e-0e922fc394bf.png) +![Github Diff showing a ternary containing internationalization strings appearing inside a JSX element being converted to use JSX-mode style ternaries](/blog/assets/github-diff-showing-a-ternary-containing-internationalization-strings-appearing-inside-a-jsx-element-being-converted-to-use-jsx-mode-style-ternaries.png) So, in 1.7.0, we have revised our heuristic to just be: diff --git a/website/blog/2017-11-07-1.8.0.md b/website/blog/2017-11-07-1.8.0.md index 8c79c567..6be76d30 100644 --- a/website/blog/2017-11-07-1.8.0.md +++ b/website/blog/2017-11-07-1.8.0.md @@ -14,7 +14,7 @@ This release adds Markdown support, a new `--insert-pragma` flag, fixes a number #### Support markdown ([#2943](https://github.com/prettier/prettier/pull/2943)) by [@ikatyang](https://github.com/ikatyang) -You can now run Prettier on Markdown files! :tada: +You can now run Prettier on Markdown files! 🎉 The implementation is highly compliant with the [CommonMark spec](http://commonmark.org/), and backed by the excellent [`remark-parse`](https://github.com/wooorm/remark/tree/master/packages/remark-parse) package. @@ -108,7 +108,7 @@ reallyUgly(javascript); When rearranging list items, after running Prettier all the numbers will be fixed! -![Markdown Lists](https://camo.githubusercontent.com/50f76500c503763c50019ad61ff531716ff7f3c9/687474703a2f2f672e7265636f726469742e636f2f4d4174616e5a4d5a526f2e676966) +![Markdown Lists](/blog/assets/markdown-lists.gif) > Note: you can actually opt out of this by using `1.` for all list items if you want to optimize for cleaner diffs. @@ -116,7 +116,7 @@ When rearranging list items, after running Prettier all the numbers will be fixe Tables will also automatically be adjusted to fit their contents. This could be completely unmaintainable without an automated tool. -![Markdown Tables](https://camo.githubusercontent.com/7f33126347f155262873500e5068016d2e71a773/687474703a2f2f672e7265636f726469742e636f2f33356a61383836636b542e676966) +![Markdown Tables](/blog/assets/markdown-tables.gif) **Markdown-in-JS** @@ -661,6 +661,6 @@ This fixes an issue in editors that support range formatting, where formatting a --- -## Thanks! :heart: +## Thanks! ❤️ Thanks to everyone who contributed to this release, as well as those who raised issues! Prettier has become a highly stable piece of software that a large amount of people trust with their code. We take that trust seriously, and fix rare issues that break code with the highest priority. We can't fix these issues if we don't know about them, so never be afraid to [create an issue](https://github.com/prettier/prettier/issues/new)! diff --git a/website/blog/assets/github-diff-showing-a-ternary-containing-internationalization-strings-appearing-inside-a-jsx-element-being-converted-to-use-jsx-mode-style-ternaries.png b/website/blog/assets/github-diff-showing-a-ternary-containing-internationalization-strings-appearing-inside-a-jsx-element-being-converted-to-use-jsx-mode-style-ternaries.png new file mode 100644 index 0000000000000000000000000000000000000000..778819467d3747d9bb68c7279ea2c94005cf329a GIT binary patch literal 69332 zcmdqJV|b*^_AeaUwr$(CZQFJxlZov~GO<0eI-1zFZQJiWd;hV|_2B(_uG62Y>#oIG zRrjjjs_qCS1xa`q92g)VAb4phF%=*n@C_g!U^6I)-#r2t)W17mx~)Y;m83;QiIiL% zEv)U#fqC1knTX0E~?`=ls)1)STewx2*O0cFQi;i`Fi`*2~Y%%YzNq58y9+ zBYU^1M%q9s-Xy|5<9PX5Xfk36LAbsEffK>veWxSdq^F_+%4O#Kmx0s-NRB&CR z`xL0BU|Ry+j{`y)k}LiK3WObeaEwidP%gS4y!>PE;6@2Sd^tU3$gDswx=z~0W`)f& z-wx?fk>^L3^?)>6x?JoxOW$-BAW zY=O|XJE`Ck%xV1f0imef`dDIOwHUDFb6sNkyv@IbW*UXN4F}e z;8J(H*eJ1>J|SbyAd8vIgUbarPK(yVS&zaE?_UMK8@U=t@=iXQ=I?vfQ7P5~6+ z%>sp}q`*wNLG6$b!H5tFgV2aT+_s=wgrJ^|C@F;E!l(pf+19^F;snNg8I?wxUZ2uM zQ?$I&vY>F2b%oUhD!$x1Q~XHfa9t!?nSa*vp#*w(wn}8pF|`48I-v%dd%Wd7=R9&= zhVDK#NY#pG&dd~O0)mwig6KFO5yH0u1vP@93xan7tL}z<3KD8aqWTH*b1Fb(T7jj9 z=O^@D5Xeu|Ghp*v6g)8ZEhsJs9brf=NQNNWT+B6K#BL%iV8(7PFGLDrs9&OJ;V{&q zIPnZ-aM~gs@vM8`;6go0XlSs`LRoY?)a9D*i$7Pok>h~7Z5g@8yx zrjX?O&}v2b;)Td?q=mqSAjk-*h07Bt3h|F69EgL5WcN@Z!tzXxuvDW-2QX1Xjg4oR zahX<`&A;==!5)AdU|2x0#y*D@8L8I}XhG6};zsNnvDSJoq1eGckUfw*Ab5bi5`^_m zJH2q}{$ON)N&BW7wHmt`XFK4&^WxOo0?kKI6U{lmyA66R2Y|{6+YA$o7L4kOAnXYw zlR{>LN(FNiVGEL6lA|JKLz+NxK*>g?h^Q0O&j)3WAEKxx#y~+tUX9=kC+(9?#FNh1 z6N4cqPvA(9k(MuvDhw-ZR#8#WQF%}qEoxEWRw+`EEMky_m-Z(aO^O*J*u$#(4hYth zy&&5p?J82D@SDRwRQsuSV)({fas6B_{= zzeazX!+C@9**X3Bq`9d1$a&`vmD)wi z1>9vtHR#2S+7;TT2^`X^3cSMYTJ5sFdXl1+WfMGE5?QZpV*0%6V(T4k>urR0clRWB zO(%^fF(Cu%1Ic@W#I+L-jq^|M=S+UxXf^>SLV+sIq-J$&~aE*P8yk3V{P zdrUhdODK1achfJIcgZi&57ZCtmvl!nch`^jFHFzt7fNO^Pfst~M?Jsf4Hz+>VDAPr z1)RP!JSDx0zKy=+fMJ0{fvlwcl6_CTFnDoFzhK#@TM$ATf?C6WqLLD%;y+5;Z`l_f z9ZeI2Z-O$wT*DWE*T$bgx)GS;Z(zC;{x1BTtCCiaf{y|q@Fx1rQcSteXfJ>0K4CFm zEx$$Ce){R?>L}wV0^NZ2p%N>iHg-7b*s!dN#dbeMou)!XBg=rkKBM);i;jbXq>1=L$3Ro$~f)$SRm z996hFmrb2Epbf+hqKgveF|D|gE`Ba290?rcjxX-@&jsyW3VzXopzS?T`$4?h(&^O=Tb}4s#dCA zMwAYej+UPcY5MNsF5=7Lz3pii4%Ee%hnQWf^*)m+iT&g$zS6$^zL2t@GOG{AXREE3 zvf3ugSuT$^2Qc%I_UMEU^^co;TRypEDphs4H@9(XgqIr6YK>~A>S=g=_+wm8cS=ur z7ddAE)TPflqZRm-u+{BKj=F}MxhqObP@Ivtg9w9o7yLWkg;m21W##D$dQNC~ z=!E_su4j|)gKu%}_|3cAI#|r$2Z0WjE3$JloxK zI?mi$cO!dKR5j15n+)n(7hKj~UWN^;0{NFsXJ=h{A0%{Z{2hHa6FXTs^&PU?_q|VN z><7+mJyX|@PZ3YMc#&9{ywdzV?+ivd79UwJ6a|L7!~MU1Nz03ykUcU zMp*ja%Pj#Zox%udApilFN^*ZeSpT8z$Zwx6q7Q6mPLBNvW&AZ|zY+u6J$ormRn>7G zsJj{TN}Y+Fy*1G0 zVw-KPrsbw3FUMo*XwP75=4fKh;AQXhJJ$sQ;`8G9-LyA%GbZw~w{vji@!}`>*9e~9 z?LWF1Nr?V6#LbqUL`zc z#t3m3$sh?)$&ZmdDk!=SG-YK>WB{_5I2zJ>upZ0^d5MrR1GpHshPCo)eqpJ+d-E|& z8KkPm{wKh-P&%^^vg0*tog;~R!~2jm2_?t-AYI4O90(Fd=?e&2E)Y1C5b$3#WyH4t zD%K$}|2T*$7nbR20yXF#_)sZDg1`aNNGLM%|4!5&3jAi{`cLZoKg;GYt)VI>;02l> z4)XJL^HXL8Y_Z^<9HrLMP55yIIaj5NiD~HPTy|Hqpp6~5s^a0nF~NJu_g1UGWiwx{ zzBb>=_ct^9uldfMfhuKsW)wU;dT-rJl$~fbB&T6dN=gdm+4g`~pG?nz|A&be5{E4X zb4{_TE(atJDCKv*UUq#N;H+BU{(U%62?faz=YG8`QrGDa3wo5v>sI&&0YKn1c|f3- zDOb5aW&eSvk~=t-S54bsEPu)0yDUhCs=M2loR8`ZF4Vc#*Lg_hjR`CL zw{2^|u)G*CFfso|BOve*ovli-_4&{87bX0MymG?e$P+=?akXT=X4$`UfKqM-l;5j9 z#6njyde_^FE&FnT>ngkjASaV>@o(kGXbaV_sotY*$o{Agd^pp7+k8j8UUe*yCG$Ov z4?3D|bd6Y`AC{px`dE{7y*jPw+Rl-T-I)#>*p0)~S4%7|ALrS}@)8U-RCtHbGaDpi zEaeDTOTZz{?b#g;8OLA{OtB7Q=SouSM#hEpEjrQc$F&BoMtT^dynVJ3KQyX5V z383};^L|@e2g02$r7$Vp`z^E-<}*USLWBP8d4!hvneY)klaKt|wsJFBt2)SYUfR7@ z2!2x9P9lN()qDh)#;Icm)T$2MgE>4?0up~x4EHj zYW{ftXVpj}^mrp-ed=YH2g3RdSyv1NG-nC+^kNYn!T^j<2rQ*`*wQdilAsklY= znajMTW1ckD{7R#!6$b>3d)!cObMNS=6?6v4Kg}hTBry6f`jbh=iAU$v_|>bM3%M@$ z&dmaz9%B0=6EB-yYIGi`XAU6TYe38_=t~(k_l~x@PNQ~I=49Jtd|X! z%kFrK9Cxj-8667hPWK^uc3JLk$)*$WqkWvQ(A-^o7B*#>Or%u=sSn`{apUUM_It&q z+pyg&+vhS%HF#tS{?J&BK-V6A@@dy*$AY6H1Xjp@}*yFYrz%xbR6m?Yt+;g8pX#P3G(KLn36*IBtLaJ;kJgHsc zij0rn5SdRLd!wTt>IwYn_SErs7tr8OSCRZ@aR3;ZF-rsPk!uddtMoH(Bp0FyE9GXe ztN7e%c;-q`4Vfxh!RYl04PW%nMJgE>1fMUK0dq>iFtr#1Jsiy4dCFHJ0gEt`PI z0M!TVOO?gLV+e1F`)DqPzG06Kdv`He2y20BF&U<=*wHfjqgIuLmnJdChzg zRS}M-+5no-r!sx-TUC@asfWgNf4Wh8H(yP5Nj5uwJ&?g>zA%o?$1$&&tAX`(fc9vT zCgDT%(PEBnG4Zh7Y$KziF6duO@_UAD`IPz8TN?E?(`_5-6WdqtB4Q_|??Izs6SK(v|SO8~#A_T#W$yIxZ2cj%*;I zVhQlAWaEr)MG;|Yu7jx@)*1}*gOiw8|4!`SrC2n&TiSUiyK`x4jtiY0dD@?nF&$@{h?KG+C-b``E)0cH>P~ivkrmtij8E;^zH(zoN z&xCi~mpVe8YkNEW?8T-L2t^%!1X07~%h^Y~%A6(mB-E<+vaq8iD=~4&g2f~1BSu+< zx25l%PWMUPhlOj@KSz88Y?o*cho%M(jBe})xLK}h0{7ig}TkNH3l zDP`MfXCv)Ntg((&k*(cq(Dex}?+J`*lxHuIO&*A%*B4(YaW*?fCUi2RzQs{SaVXd{Ftp#XF zE8t)#wxM#mod)%gW)BQnz?~%Dg0Atqun2H`>hgKdx?%-fs$dxx&n|ITvJeEm=6Ija z0c{GkAK|)b-m3o*=ZmbHMSKd{bDo+#p6FK15VS|t8=3>BxaNdjT}Li#DMVN4jGD$h ziR4}m=8;Nzk+#)$F>tzi^Y85Vs-c45uXEr}R*M#u{^tx!E`A_3t;fg*BGK6f^un`!(pYyxdUt^V)J>Gt{bK|;GwT{kD^99GyVNLL*}l!lTni;KN>_Og zy;pUI6qWH~%j2Ut!5&SRTE2{9NVc0Z^O{iS6jw!LPfI zU$$YH9#iecSV1c;M01GlcM+#vLK>GCMhho8H9;B&#J^UGvNE4tH-5j$7+Za!IkP1Y zFDVO)xoG)}m@By4Hd@nXaRh!D{fOQ463Ky_G`>6bWOR{`4SewbQdAIh{r=&Q>_6?| zbaljR_x)WldbI^xwq)ZQe4K1k{Z75O$(jjs!WUX5C{{x+1X)c+p-d@Kk!n4)z-+w+ z48n+Yzw2T8cyM}5RDw)|JAZWiG1XZNY+CKvL8hY%?xoBhv2<~hwJ2HIRglIK6Y@)d zQ&KwvHWWr#iYMK&0p@AF%iWcpxL>oE+_me`=#!q3Ds5sR=1}{f?|4sOu!!sf7RRRz zor6sKACKdL2gf_tNGh)~ne7Yt9jB-r{HHuZvAn4E6b$j+gjj=n%e7t;xM!L@D{N$r zzR-w{$-E>Sk-=sm6?RugEgn(^beJxc-Ob5o>2>tD=csA|9o$;D*JdOAP`U1fq5-x} zB_YO%E-AZ>JI@1NK6g-#yy-5nWR5zKN01AVld4kdcW4~n1+>Esawqv2jiY~%=8SYk z_v&#!BxY4RR>x09ER!E{xNjRHeQfC5i$mzL`7D51-1#D%K9cvQeBL@U43fQ4q3ECQ zX*mwaaZ~L23PA6Eq)iIFgHOtT5jNaTpV#kPGg*lj#9nZyQw zq#3Ss{-}72>$iDToykG`>3v^eMZf%x_pj{r|2SIBOK(-4$t48Z%uBQj@0vZ^*{wPz zXFB6=#Ii-S#}Uq{IUYXFZtirP>yqVzz6J2$dwSx;E)(wMUsj1KGrF=4tn*>Lnpw1* z(>)Nb2iaRMql}IJ8Yo%VKBBCVR{5cG35LPAPCT8@^lUi&s+koVwUYKG>}mU1iF3K| zI^(0ReL=IT53g~x&Uv)asjnN|QSV~jUeTHAzlEQ+o3R9IuKL;E`JS`g{yB0KqM4U~ zO{!}CDqs5h3&bf^pk9i4O;5a2A}r!btg94rZdz(O7P3>N0HZ0 zOOX70wS#LoxNF*b;+_`FY!Dy7HwJ+woddxHsv;2$x=zILd=liODSXC`Da}bFkBb1^ z6@qWA1*^yQ8+jv@M$`z$%K#LRm=1_>6r9t2xs?W+$Zw~P-+Xm5knz-mPIV1Za!bra zWHV(6ZKL}z)fU=AMQbYOL6-s@Yw8MDw}&;!h&m7WbL2J?w21bN^7D0#qbmA8_AS#BuQBwrlH|YIhQ6 zNLzTw{jghw!N?RIX7ZjY)<5Hc>qOP}tIIVfZ>_r~CJ=xb1GHy-XndMGhM=P`DM;x@ zwud5$lsqgNZ<$Iwbf$g~V~mIdzYd6u%8AB;`NzmPJ=4+!pYD?1yb=SRg* zOKsdF(i znt{UTJC|asJ>I|wKBW9gTuQgEDqO;OsSj@lLC)8QgjT7v-4Lh7z-6g%w&3m;?m8hs zNfRB33M+8ab1yIeqa1ukn?`t0&$OQ zQhdUu-4bcUmNabhGgbva1~d*c$3{3rTDUM1f5sQs^%m{_bmCrI-M%c~9p&Kq^Kq{{ zK`5c%qHeOz?rA=2O2J^$_YgKBK1cj!#l1Ad;b=|m160S6R&Fq%g=Z~H)1-?Ja5vG) zxbu-f%Dnr@Pb>UjHx?)e-*{pelc~=88rZEp*}PP>koZVQFrHjEVCusZIOQG_Mc|(1 zUNMVAcNDOnqO7vpVaKwbV)(Ju4%1zcR|m1KzB$r4(C%7bw*C8-&+g{ z1LLP)=JI3d(qfu1CYfK+VzU=zmyznjTTfz0*PckrR2t`B@%T}fDEF|4q^zSZXthUN zD0{91zLT61dBlUwmE@*R%470c3c~1p{s7CI2k{nFJMGkJZLcw-J|uEqY{z;SD$rV} z!5>I}ZL@twG0Qmr_Sk~lEQ$N>N**;>s`dHKmI=Ra%BHJWU5x`9l?u0P;iNCmSIm0? zpE)RNC>DV4XHF%-AOImbdpf1_K&o6!{#|c?Wu!AjF?U6W6~$A|K2jj=EOeosRbyNr z^rPl|yyo&e>~VfFf_VFWy3HNr%;$5>Yd015+9ktIl3_$_``bpYeAj_(13o7GXG?l8 zk3p+X-_j2v?LAmb%kr5s7n7mdi)sD-MDh&1r^CKR+s?BbJ+UKfYYq#*Qohc1S#$F) zwKT0~QDAtMRQqlPq|WwQth6fknh+aDS`94eV+!%qQPJNBKaeSvI0s@&0e z;CZ4NC1>N^?sVTuHt@d-+_1`df96PaZmB{a7)IHW^p0tC&@P52M8dS`wrKc2mLs`o z`ZL^izcQA56s*p5-Qb8Bm`R#N$p-OLUS+Au*BA$RF7G~Nt6rtNd958M5(`K%lFpbv z+I#mn>eGJK_=Kl@xhZ$!B(Sp=|9neZetjtrQbp(DAZ{j9M{Ym6-V%2sM?JPA`jv35u5>Pp(vRvz`~Guj+qbeNn)o z{&m>Gx5t2ux;~$!O0zS-wMQI~sj;p5>3^ro_4;i?^RwH6%ZI;RC4kMWh%iNk%#=A` zTz-jl1x~Ha)AWtQXhq`FsNS)iL$@WnQNaFM4?t&bIiO#|GlwO+nH?q+H|Jh@_9{-9 zE8Wc*=-6vEp7?~tE|YO!elvPK(!f(zWE={%PD%F(6{yHmxLVTO$I`FA)-AV!Lij~`|x8=!8xbe4 z*2b567Aj?x6ePcIWA2#*T|&K@%b45~5kmMed|5DgBw1_x)2uXeP|6j50I;~3M614j z9|m$LsCnlPeKpE3S|gjPB22)UShzPaG+1IP6_;YAF$V$CFf9Ei;4g@Vo(TI4I#^=s z>>!Q#eA^DM0$h&3&AnS6rb3ml^q!oes{^#TFZ7r=P0xL?P5!G9ijLxu2joPxKlW@+ zb;v+(YMyIJh0{aP;B~3ZU0WGdJS(mf?YymtIOICLJnd7q%UPz3w!y$ji4Xm)3Tt2` zZIB0c=W0EeY%1Mg6s($+rb(aXp)CDEiN>v=PB9;s`bel3+j~!3Lc&RJ<%kj*#}X1} z8?#D|Ka4KtH3VnIY8J%F~TYX>{yo{4T;h zdWztj%@;{q6@a+#Xf~Ekawc1NNW(y>x~-fWU#JoR#jnft1iqNm49&kySM~NPE6>{$ zB-R;;XcqO|e~C=ap4KM^%6MXU$QUG}*`|sU4d?;6*3(0$UcGGmoI32HXp=qfMU zHSlW=qkelLb(hZil((dug-smW&WitwHGuw$aY3i$P@jdR}wI z!Bc|`{gCFLfKj0o^!RUX??LJP-c_#mjVQ~BKEQ*WsaM{N4Yqcpw!O(*zD*c72CKS` zZ>`6UJ4!EzTz4CAZfDFuj076)>p?s*H7TDrX&z*bPXo3e(LY~e$mNyuiB9}4E08tD zI@2>57NW}2vT0tO2R8>XUk_W;T_YQ-eqmJ8342!L&^#Gn+qUVx*BgxT?cy`PUx~$` zdReS;E_Hl<>0Ez_`3wclI??to6|PYUdr$Da{^=Q4G&go~ArRz=&O?i3p&G@B`vGB5 zJlgg?mxE~fy|uPoz(t85x{RgY7Xs$H?7;a<%%pK8UvmAdiEBT>DAni<$;8-7W@R z(_Y~r<8-10sSV>wpE$0amOB;z{d312-YQZiz1^#ez^x*$$j@pN@m9Sec&xUJ~$lZ9I9a8_`WcZ z(b;8h6*x*{w5lU_vN-1{G3BhQ#!J1esyH#MFu<)pxm4^fceBm~+(By*XyP;R>un6u zd2tJHyG(4Z^-^)GA~Mw@NXfm#G?B&HqZ+42p^>mj4+Ssq{U1e>l!KmW7Sw-iP z5%7~E;Pu=sBExn$-|9LmpY7wJ+`Z*9yUX;wSnS>8i%v|$WsjrXYz)KmknDD)K>CYvq}}PM z%vMVQ-_?yr4hm^dW-^=+^<1?~u~x0XrHfA{N(+NaAX{bIKF_mulzTAgy~lZ-!-ue{ z_8|-N6yR<2r3-Od^AkMkUSZyPv2VfwjcRdGUS|%z*CMX3WSDs5edzk8bQgU{K}UJ{ zK5>Aq$PWZ>9O*Q5X^;=n@39va*(TdFubY&5G|XfQcD;XRLPUn}xu)h)^5^@bVZ&BC z(xE}_WCW!*bT$45f`*hg?k3Lr2mI)v?1Z~K$aPT6SHel5K{44tO!}9Ou<@`Bv1FdG zJ-#dM5I`nE0KxZn>VyQ`dK3pSuiQz`aM#gQ>e# z1`9t)9%<@&yP?&a&DSn#D8k`>^JX~!JcKrP*y@lS2|HhYW5G)Q*ujH4T1CCC)fA5T zyjiU=e<7M@Sqd>>e}4DeB%z>Cay~X;SAAgL=vZ&vB6*uu?j^mT2$lE$4hnAFp+zil z1NnYd_49p-Qrv11gA1yRBc*E`DYMx^8XcqXK&o5&gAN?dp`2SBVNbV8r>1AMA(d*_ zHn-cmemnE}`AFoWWuz7cOO2Bk`R12MxV!8b>WNoK1}2!it8~mOB*9m;-JY#Q3-sS8 zTn62Bz!5DZg2`z;h@Zk4bo0)wsAqW~q9~jTUlpusP%6y@^YkZpD$eDMMyWr100G)e z4v;@v?68VAMxQdZtt#RzDXhVg3RK?2DA2gepKE`)BT%Js+a{K6feBy5-n4T$E)SD=7qf%cX!~Gans1sqlMOnUhGRD<(@Zci3B;C(l0#@e~#b(7B&SwQQ=PT@!0jLZXL6>ruR)BNu%g7D2uW6 zck!3Jc{k%vDd2zAkc66@QQ*XZSDAYQn4Y=1t;9xp~;m3b{vF#tyK+$Z|s;D!VcnXr?QJA_Pp{zbQcm zW&EyYFTm+7Mw{y6KPDDgl7SIJu~G{ktjr4f-n$gRL=GmfeLH zS;&MW{PRr{xZjTPruh3%`W=EY%3p#WRr<_S|3T#MTL{QrpJ!8)TFp1~1n_@K=>DS= zA(Vnib=|8jYdfhv<^MinzHtD7(9z2~f&7m|>Zqkt(T{J!kCTZ0BV&){9uT!%|Dewn zrBWXDCB3d8SER@U~1R*^tQC^F&0^=;5E|&4#s4_nJ=P@7<%|dg-Y0 z!14z6b5xwbh;?;*FAH`LP)qhH{n>}Y+BqQEm2^uaB;`*fF^AHnw|(wr^c-jEn9;mO zYfl(?82fyGWxy8tZ^`X6v<0F4HRCt1ow_|96`C4T9i3q7kO;IjVO2It!ff&)RvysV z2XR?8*>qlP>AEmM>T$00srJ{CZ;<&+UT;KVM^HF=6QE1Y`%ritVR^FA%=0(UA1A^i zsYOfsY-v^t=%zdz+=IDB7)=xUL3e(*F&8{=9XsP2J}mKVp1cp-q)x9-0zVIRIgWJ4 zK`loJ$S&OT55r%PcAHJ4;iIdpGw>MWz|ibH#FpN1Ak5me3DBvUdkKsMB?+x1CSpW+ zn~2uox%$k*k5SyZM*TutF0`Zi3h^#eR}irxEZ}dry$&^Ik?BFDZ?vs23^gz>>*8Bn zz)?asLY~51TbB|;vTm?t?+G9v9k8Y#ug(1de1o<3^4yM9=NzXo&iJ_6m*tbE+*y#? zQi-{~w$E=3)Tg`3{(Y^Ke-TIFLah)RDJ?LaIZp?+00CQ{AyB8`qO?@qDgDtG7+B4V z_)=@Moim0)nV%OBwBIR&GqYe9q?PFKoUb_wi(8P_-E+aRWC_OVCEa_^NypaHys~sz zXiyPliW|78%`g1UzJg98L?Bm~&5Bms3!UuGr7*n$s5Ey#VGEke0r zGpjI2eGdj}K-F{*R%^kwy7P+-al86ZFsH-H=%uX! zI-lq|=tov8^nwZa1X-Li%P~M2<>BnCSQ~ogHX6oXy*xiN;{-t3&;*O(=G0QIZNJ zkE$14R_cMC6NkcF`PgnXCzimkihsVq;2GqC2nh5zLiM}vM_zm1+RNRyxQl*VG#F@0 zaWvkV;vK;d=dFfZ?+Ef()_J9arl@&?x!%Ry&IMa%hi-^t1wGg2k?OYT@i6P(w6-Wo z%k}*o9hi!<@c~Sb(;b<Wjhsm4w%=9G}58)duivYp%)Yw>y0O36S zM>D_JzI$KuPxJ5uSUmlGkT7smJNs5ASEoS_JQtkh!)cVGvl)&{1~B(&%M!gi=DOJ4 z{jZZm+hsJ3lj88*ZAd+i|-kXvv?=ch0xD7(AT_3|NE+svo z_%6SOkmx-n+?X$;uTB-^T$cx94+MPT8_ZePVxd|P%Uy+Dc!XX~;H6%gu@@Vg@7NiA zc}C05;;=fL`f@+Je-B;$j&#zz)?aJM>OoHJzG*KLs8N}6LKqB4e=8@GN?gF}SdrM; ziY(fYyHM9P6C^KP^XbdlXs7XuD2Z-|-uK zy*OyKas;ye#S6xZ$o33p$0P_keSHnJs1kpsh6(Qw!s3Fz98J~?&+*KgK;u6gIPsDV zS)QX`m@^_d%Jn5nnm~-3Z^={X?Iy5uuR5bccY#}#uY~0M zbRu%=5rLa8lCNELbWmlXrxCM=fRsiC`>NA#jnOa})B^nsIUaVu;y6JH$&uy=&&|8WpDmOcC z^Rt9FDHM4nGN%h!Nh{_%`FTZb@I%SVKXAR+S; z%V{`(LD#sq#kdZhyZHDe3&|#vbl)MlNNVjmWlXiPgWqRreZ81-fGsYbmp1hT*o&6# zG$9H$!uR|IpVEb`pSHlNz3g%6FfCa`<$7Q0y&7dcR`%;L#`kLhxfkrB9N&RgH|^s0 zFF`H(57Rt~BKWAyXQVs6keyUWJA6|vSu>oiM{H~m?RyhxPTZcalEdC758>uuY-wxa zB=Va?gKhkEKaKZ!&fp0n5L|*JMp+m-k1jlR@wA~@OQ|tC8rI;n6~Wi`*OJK_lK?~}ZYx~GGFy!qzYZDCY%-dm&uerg~e z$8|9aJ!xBbf0f7}Ddp;cUgn%FgP-47cd@W){9HfD`kjMqiJmwJ6 zi);+Ln&zf(NFT~4v_mppfbz1 zd2xJqU#D{X1 z+lv>2JT@%76~Z@^@-BsfuB(vMQND?{lhoo{lNRt?7z*Lut%h%{5MOt%=LG$|BtuVg ze;C@EWp^5Sv??LRskMGD^1kG-KIMPhG3yYe-l6utYe6{j)N1eukL58+yhb?tBFhk< zlN0eET6J4jwHEXfjl1r9n={#*H&UWH!_Anl>IcUt5lW833}6 z<3;#5h1L}V>60XgL}-;hlSv^=);@=oMwLO4ka4tuPrgLqNal6gZ2`@^Tr|-p=18^$ z7Y0Un-))Y%MkJi`D-^FeS!aqhSv`CLhtEms0Wck#ks9QW0%kAR;0CgcJWjrKq8$bA zIFZ)Wn?MxgPMFD%GbjO3xI!y#YH-a7)dlc=EmBxSXeLZk zx><&T#+fOuRqsWnMOj{nHVq)nf2*}-`z zB(=rDgKG~&(I8Ny%6u$JEwBUxPB<=tE;F0B$K{g}CzBpb5b^F+(hcExl}fh4QfX<= zv6N=t6ng{hNE|GuT3pvW`FAuD%&lXvRD-;@a3*XDRD_Y924`dh&lQ3m_;DMU z?7ybbkNI{-yGP6F2vmXdB976cc_qMFm=18n&v4(o!BZ#fVQ-Fma>CF}K>tO0p+wa6 z$7$x)Q7NhicjO`?26lAbOWl{{#&RAeNrlxMWuPP8GJfqG+0IQ66gY~a1#n|y2KS|R$> zs^P%7TD%TJ-Ku*CV_JlzH^%*k!m!Z!l>7sCU>u*+MnZ7QhD4L&N9)3?knc_c3QeM7 zjpeY;=yPYe``p_M){MT!L6x(f`WH4zSsBo>_aqgJ3^Vo$`qq7{L8&iO1t7r^_Iba7 zQBpkwuW~Uxf7?w=E#Xb@&vz&MwF=7-MCSS^e)zh0hIyaL9)elq-GNcyq%SSEUmUej z-M#kns&+4v#M!YLYpYOj7FI&KR>-*UHuEZy&$);!tII!YK#I8&`x%67KdWU-S$ZhH zl)n_(d>`}<&Oj;ANYKz%s(U0qy6~;M~bXt;m;o*Q6mwaE^qR zE(=38(zjwww<}J$E;UMiy`XtqX~pzq#W^OIf6H(^49}i6y>xp%D#dxy2k~5J*Xlu@ zS4n;ZNx8XR4@3`lTzC~IE2+6~if=b7M2ljTAc)sNYBQRx%b8Xw0dx;46qja_-8|%W z3$w1${7iefGaBs6BM7BK#9rWmc;O4{N-0v&Z45XqxS^Fa|9v$!A97JOx@hjr zEyp{f_#^QpbaEaA7{WOfG}J)vjGec;7tl>B@emWBRSyGTu*!8J&jOK36P~DJTgX0OGb^aBrC`o5R4e z2}b!~w>q9qM!g{JfCDLhS9GFOHIpGxVRKMsecrA3IS9>Lwe^R5xb1O#7eLeLKKCjsgBrr`HFuS! z?EytrjEO92fkhrod|%XU{Jk!nlvX!N9u&t@!hV(4iPA(Frf5ba+0eH)on1GTNpCHe zH5Xt^#5=3gNSqhn%K>?-E)nIlbG5QHUJg0m0^&PgS}G11?4%Own0EI~W~Z8@QcX|T z%3_MultUnuXFVDa~W3#XlkrAJOng`Z2OYS~NuJ&p%; z_`8Ja7Utn{qA(U*dJJMV_Ht-3xeD|2T^LGz&FDLC>~0iX1dVqxQv!g zJS7UTR;kYTs9NYhsV_QIE@aN5-}rgR0)z9%Ralf=G=b;%*7aphhFZb+UDpHO-!AVy zT0Domtv|pMTvyDq>z~u$-vq9_k-V1QREz9XKBWEr3?KZ)EF+2j!2ikvX`ZS>Q8)ec zW798QDDDlJ?Rli2qZ_5-!>-HDOwixdLxN*~EFthzD0z$0&8iTR!lY!nCBcPbv@&YN z3}pN9SWh({AFJ{lIJTY3AY0qUJavDbs z;lpokE3;k0Y$^!>hjDVBo+(ZL0wQlF&3})+VU(+^AjZF?#=kb@8IQBy>1e*zD9QpL z_o_fVExKrnE)B~m7uzGj{a$g(cmfiU47`#)gV&KE8|n_w15*;VWqnE~$3)P$e8SuH zX^yA6rEm!nnh&4Yq}_zL9Z+At`&hB4kB(#RIE4Cy(`%pecf8aKGKVG0J&F&z83E-s zEnEv1W!M`_GA)JR$Fhw+>B@2mu)pfmY+Q;73oe)D#@5}_2Hi+kDzb>2(bfGPs=w1Z z+HMogm(x9Tr+MfIm;;?$CqYEhH!9i~91W&1H?)g!^1bwG#Ue&zn_q-a`*33u{QXwC zxf(Hdjk%u_)w*vNHq($>OlT2~E&2VgEcsQC(ck)>$bl+|o!@y}%K=xRHB;F#4Pm!_(Q@HJyPOM4&_^@>ueb0BkC@b3gjs354nX5&G3Y-O#E&_L#L_Oy9 zeKF<0HFcBc%>Gkd6`!?kL(Yjbya(~0_4XZcLTP!wgSJ7#n#k1oIVv~KO2v2Z@fNdc zg>D46o&$G}y<8O1sN;v|h)`fl{fFj|-pWeb{2)L=gaFmsqB|bBqgFkIg=JD+dNFM> zx{`2*PYJUTB>P*rL7J!2DQ3rAvkHh5zpOBPIYrB=plb=Yi00yCzwXUEknY7oPm&C)VKD|50`B*(AoP^6hi1N|Itzga zKq65hs@TyZdf$b*Mi8e_#cdc6J9)qV;Fx>3IU2yhSS2~=+^bGn%VY*P5o?VvY zUJ9H9Bx4k>cFn=FXxA3`Z+R-saFZ%^%$sz+I;mdQHayq3DvEi9`dU)|xWqo-I!nUS znQ1gcklPl`PSCK0D$m`cxQ_lIL->fCDYMTp=)m{l!A5b*l87-qR?A)fKTMx*7u}{g zH9FJf^g94%+_?g7UbA+vGgH zY?2(eNRo*mU!~nKKe7FNwivk5%vERMlk^oR3X0ym+Aq*KZvR$){*#Dz@#H`?r1z^7Fu&bw(<$9~A z%`KQtV74kO+fv(TKl)DA;gtK!IaT%mMwOXA>}~Xa2YH`j;*QYUV!P4>c^C!Iw>U)D zD%TAqou@V!LqdF-iRWH*f=L$sVRCA-g z3QwK1*?gz*wT882g|R|1WYVe7u{%j=|LYumC;^ z|2t*+B^_CTpYyCx{j@CrGPq&3WJmCm%x z#-tKsS5TLm=nk|x1HPvG8j;QPhdFC@!oqX*yrm&lVfnkGT-?S79-sU@s}5{w7ICLY zu?hRvT>!7^A-mc*3sRpslQovn)6{Fco#bZgX)?GgpTR8eA$H=&=YlKI;FpcLU_%=T z!ae|NSt9%7kY9Vp=VM0J0a!Eq!gs&gEUB_c@i*THAZVD*Y^8<%8!X)}JMQU}An=s5)WjO?+8JsVBV7@82E8 zN^MaM8-6M)deArtI1$4+hkG$xGt7LhRP=hazHDu}LUK-N9B_Wt%H`&S)sA3(y!c_3 zI;BqCMN5qbd-GP_wGUlam*yWM&a!jBElJa6Te#J!#cg-npWkx(8+-G~hE`B1N@_VZ z9k}}dnZRrs&03TnVamJNu5GmOBL>!{b9%hvWncSjxS;VaqoF~o9iErA9ob6;RDfuSV(AXEONql)Bg9XDzRa zrI~=t<&oZ`al=*Gw7c#VRk;UptXHgd)I~wptW!mY(pukk*Q%(mDohbor$$h16#Ku0 z{}v{;_D#DR#yf-u?!@(0SQT54-}2Aoivs_^b5?FBUS11NO{@|?^7@$*aM)-vQyWEp z|G{N4`uzEVk?*yfjrW%PsaW%CWqQZqZpMZ&n)9n2F?8tb*O)@z%95?8)Ax~3Eo;)$ z0FjG!RwLAf{GkG6)$?ZpQORL8tf0;cFIAY6W3RWuP%Y-C_N|+A_*$Te?UcVpkNJdu zs-)~Q$hznZ6&smL3kyCGT|_9zmBL@s~22 zLLrwSxa}$SJT1btKwd@4F`H=;l!uhdE*`nHNW6A(##@sNuv}6rUe$+-^$^30rs6Y2 z7&j(mciW2pRwmh{pCrgJ4czK@-XawB{j=A>57rVi#lM$uXt3QW9qvy0IaKQ9@e*|5 zc@oKeJF4H)(-W+jm)pAq(kI@u{)6>)9j3+t`ar7_gy+Z$R`Lzw3o#ZOInVQ2!MF(D z%Y5tL+0GLrulb%A|2NIAYIo4>xNPCCX6xO|mSLs(hTk7cwU%<~OhTpJ?2+fkISyMy z{OzqXF@aQS!hNiz0ICv7Xo&pZ0qhP&!KBaaBoO^zWw4&pWjmqvfI{_@*#Ro%y-Q{m z!pqf)I~zeOEcqisyxM8s8DtSS0MEj<;qK77{=Y{_HYm z`#enTPVRb`)tqO6#fSIKV63Fptmsy^?YOw869T7+`yNpevj(%DzyiKn&!f_hJ?$Ta zhJxL#a$;Ik0y=?Wl?ECeF15Q3?SaS3`n-tN<4U~aFBx~}OA7I{ zAbT5KFG@;p-Bj>q1~DXQm&e>H^>iRD2&&(PxCtkm|v|%}&EWh13Flx#A|Ga{PkS67ybJN}te5T-QR5g9g z<1aR`f3x$qn19)XEHyC5RiFn%aq|DI$GEbYYl24`p;Y< zqeb!(zb?|?GeiQWB~`f4H@^P| zhsA!tv}AUR?hE-prS>1xXI4Q0qqu4~*yH~tg;{}(r{JX!FRwO8ZPyD+ZX*1&6rlkj z#I~mcs29u8I?jnIVU(HLwae=ja3+klFCbxCIXai7Qp2A_MXb1)f~y`SsZ%CHV+Cz? zi^~Ft+f=Qp) zG$W7dzoOcd#T<&-E+GX_b1Dt{!JBZgR*wYTt7wc!szZ2$p?Bpd5b45v}k2a+p&J z2`?Hy+IOZ~KRj;2c6pssQ(w+rzu81KYO^Z1ys;V^AO4xaQdrfRYhWyu=R1fO))|pf z8XK`hZgzcWdy?aafvHptGms@G=i}b`iKFmd6Nho7RD^{y%2Mnz80--qY#XbIprmE` z$CDFqqXH{e{_txi+|T6eL2(Q`ctvX{-#fNa|Jqp!hqu6t#9>O0c>u81)eBhb_nw|GY*ex}L~ z^79Boc~-gY42r)>VXpRi)_r2xLY;>KyFteCgz>`{_tty*#g-gCUiU`@j&1fY_YgMZ zJYPrG_?q)&rf2-pgE6~8CC!MB??E(ZJQ@~SZWNGKi|ChYn0v1jFV9C&uW!jzSll$> z79S7|R@Q5rKQ7sFU2UCzJwE7vAlkN8TkvCe6)=GSlK>9Qk$$oB<^}>zVK)lR^v6tn zz^3~dORm>*b=%WyJVt24cx%(b5VC`?nhdQdUxG!pjH(KXylUPK8cgV-CVo0D6;85Eh#kQ&&y`I z*KGy;^d}w{XCw&6&(mQUgXTOpV~@7C!v_wJOe3CpU+KL94b+;$EQ|c43#|Kn=bALh zwsNkBj24@D`!4JEE$wEu5L=fOh{>nddMQd)_ipuOHwi}WjctS&+REAx+#SKC)y$2o z;+_+|AqkR9#u8o(Ud%?(0u);A2U_>I=oiwA-?#@Tjwe4-Ak42^zMko?CHsYAoq}UL z+AhO3n^;TZPzRL!8!r(mj}zE0Or4Wfrrzm?QX+P2A;Ql_fMxMmqi0OyG{Tu z*ziA2YVwUD6@vLV!DDIfZd8%MgOs?nbr~ZoK9^`ca-R{UCX;9Gx<`bT*+n^e&_3B5 zqp->Et7$k3;}v$eMx0mE+w3v?Sa;`TxG~%>BhhCOrD|!pVg^ok^f&n(y7-v7F>S3r zo^OrW+qnP}^;Re+jqa}MtzE|{$a1`|N$G7W)tU^4%3O#iIz~uer?9K!y66lKA%48t zlh2KW_M#A5-$J}bSbLzyD2eJd)-<|3e&AYB+p0F2kc*3LG#qMn7Ab4?07VZoKS?Wa z+}KQt=pEs2Vu}nWr4)CI1pz=F~1x zQLk?G6lvYL2Xb5Iz6?66m5_x*Q?Ln{Chmi)h|dEH=N}o?j)IA&(YIX~Cp@N}@p#yd zdPKjsMt=81CCg{0ca2eHAl(<#;MF0O4#y4-Z5`KJr^p=krWB@d`vQSO{;@CiO!`iw z?tZj5%Ophm@>F0@<86PWQ0k9m`7z$vbvBYb9G}~m0Bw;H@+ms&HPESytcJT)JR7dZ zthR)LT7pW-WncCr`l(Zc(i1lrP1ja$l!p}py5^G*%rraZwuN)9Hq`}?ZL*!XZT9ac ziYqr(nz->Nh8B1ML1jDH0+e7C6(-D3*6ogroj2dIpW7P#;kXKSK+tY%6e~jFNezuG zOt3aFz?qHAu@;^ialE2j&pN9%TTf>0q5x4ZJtQWaUeP6}^O-jij5gvSU^C3B5!RX? z(KPY98C#LBoG*{<9kL^rLkxh*at|gZ z!Hp!Q%N925afDJA1~6Omc<&VxeE#gbnoPG% zv&;WwMi?~UBU(7bl#y?H$^G1WC((g-MzFq`dk(nBW$p7j{8eT)Jr4a;z8Sq|s?8Jo zc_taDuN%uhyfxmJqb0M3#62>2*I6P@tgPXkx|mL!zR}W1gzw+*v@uz{s9dnQIz^OJ zbH+^Pd?4ORQ+4HOZnMqMuHDsxvY@6nP>`@Q^SEk0d3BGc6Db%?36!3^_Bnudb{ll& zs(vi|IFAhPCfV`K-ft`P^$5z2586HU1{B|vboi)yR>fVNRpaBfenDvmY|7M|MWv&< zFtM(CXQDcM&)8k_el2PV_iqs-9k>`cN9VoKWz=v2G`m^24McS~r@^zVxv!s|RSZ|^ z`#5jcOV^XW2=BC-l#jFfMi>p(JtFjK&JQ<&Q(j(N@V78;>Ob8rtY5tp^*Xjad6`fY zXm?XOZT3lB8ffoq=IE-QM~4g<#q-iS`eVaV<`77gx1Db9ZO^&VX_C9Cd)4nekQUhtl##0}p z+-hBI1nsnP^ZNaQ;spGM2BhR8X^OfsTr!`5!Y!=3UJEJlU-0zAf+HSeQb=E3o(Rik~8 zqCs9nt~%R+n>087XsBGZb-dW>vp#JGPPv}le#AWb8p4WE!Q{J!vDxNGAINw-S|SXJ zh>`WksA;<$iDz>5BKkmtl7SU)=n)1B`5OJhePwZ`d9;NkROdQOs^Uz#DLV^>jG!lC ztB?jR5R-=Wz$fM-1^5d z8i0!t4ntyZ@u?nh2s{Y(LJc~>(_miI!Wg;*qf;yHg_7+Xi|p`mpU98ajUzwFB6VH} zwUFc7Ft07A#TPHHr@TmJwv<0h2wC@^iB+3w2lL%(%6jYl&mW*Kwi`l!Wz*?=nTa}U zD+~me8^a&PC)$+!Bt0Ow57M(CcZf+k?`u>=g}mOCjO*cEBUScho%iFMWmNEX%2bSZ zdF{1?zKRWS{5a(NT+!_yXC(~MZ)=MT#{w~0R<+u?j_!dCLx(*HGcNY&`l&|~v*yL4 zhqsacH5*Syyj>hAT*ajwT6GB&%JrnjNJyc~vj_rsa3-nfy7FmSGkUW;Keu}^w_SrN zQmkwV)D0xRT%t>1)OTAPkkdaPT4^Q5xiTwBZIKXAR~}D5iMK7;SHq)kb6f0rR~cd^ z3Nb4riP*C8g0#Zu@_lC%6mNDXayb@!q?3lq`O0=SlD;tVDK;sDj^Pyzf|5CAO+UIe zaov33X*RG?t!hmW?t}h=K^>U)b*{(Y5&D={(WqI*CKhzlxSKip=_fjnOG}y1zLa8O zKlsLIQmqQSxmK2@N>bR7b~Z=MI(#g$q&?n^fx3H>*B(8%(>1yFl+B9;SfAdaj^}v{ z6&b0!_tUcS+vL?=vFjKv)vH;b<_g7CA;srM@`fwd(EKEX(l2ol!od%80cb1t{RF9ET|QM#xh6 z{<6%5RvlPl5LVS3c!SOmvCV+-&D0r@Cr>NR9@L+eY9`%J-HQ%IBiV$YHuQ!tD)~AL6#+oQ{;tC`FLtmbxMbT6TC{ zd#yzxN=+jna^~WTNiCfV1y(U6$J{RMJ98<5gv&MPRA*)(eG4~o2!=bbcON8Z-~)9< zrdUc>sf2edq3?#v;R6xQE(-*{o| zByS(z=sCr>auJ5U>Z>&;u6d+)TQ>f}FHzNDCwKmmTz_RLrcVgr!go~X6qS4^a&q=y zVq&zVzHG6e08|6VJk)Tr+gz>=hq#ybGa(a)(t|eIRb9@3B`=iaUEUzJx z)%8RB>UH0Zk~E4N-&x|!37`1SZzDYULmIb-#JFlJc6deA8zb2KG}`iwBkzm-aJo89+i@l zu7uUyTgg_=eK`A&bU4h)8}ZqLEOS-B&T4%B+|L>hX%OAjWiRdE{Onz6tT4XTcjYSM zCGo~Y*Tf0Yhg>B)%vw$h7RH9tHNVN|T`TzFnUM}>#$YOkIr0_ezGTwlo8G<`+b{I| zUt1YeEEn`Rws+I3!g?$`lBqxRuyh+dhSLF7L6in@*k)MrSe{nOY$5=Do@r~d^;w?q zsf}-acdp%`A2Ox`K0d-e<&{OHt=+aQ=SepV*;IrCjrVLEiC1iZb7!rsd{tG;s{`A+ zEoOIAW?V|IV5O0!omSI;%S{;Dhe-PV0d>q%i$uG4&W_*0?o zS{HekF|g-+H(!U)%iXHf^}T25^nRhrGqG*O^cLfQp)VPsP>%6gFN}fd0mSb)xD89) zN?H&=IBhrxYkSvGBA4(&ae8 zk%~V;M*TI7_8%?gAy_BwZeX4wcg?E6jt9fnlt zKM=fGmCT>F<~Dmt7ogD7M^g`F4MCgW4_YL=sau89OBhGMT)bpS(fqn1ysmf9_Q|o) zUr z=}NeeaRb)fcEhk|cjyJoRM{|#SP~A#pho=>$t2y$Si*^9h9~|se&MfHY6sO>%F45Y zu8$XFYc;!^IQZCZv*Dmq5U{6Z*$-IrGyqn;{hh3T6dtmm;Gd{&JfsI3m?v6?09B(j zoq#XvA<^JDg13qnW2A-n7TUo$JN06~JF3(^oEL36wM8xM9%1?ft}6As1L zqwJ$fs$;{)Uufp6R%T5*0Xlr>&(7OUJFrCGcln1!dxPu)0no?B16xg)*f{SpB=k|t zZ%dP;P~i!R8AF+?OHp3kV_3F4*K5N%#1?n9W)i?IJ|5EIzMj8CQ{#8v)h zSCP*Jx^hO+Mcj__AFWDe&CHrlqp8Z%gpIHNc>BLz`b?n$5mhGUMf6|X{MVAVFf-0T zY}WjVlJCu*YWW)^{^wc>shgF7d*}P|0hYn zS3Wi`ibi_>$?Ike zynOHRb(>ac-{3e%gLV+(J__~j!tVEpm%rHyw|Y@}46 zzi!w4&gq>SJGP=ZGrwZDdVxw#o8LmANp8v800`RdtiT%?vJ5?+jZc!^&~$IfI>7J) z-yE+Yek;>p(pzo*LE9Zuq+WHZdETOUnO)Zii zBi7k^cXh-G1~>_#hK~XtmeuYPJ(c?0zG^QNGpQ_X_Vi>Wf3@PMnsA=j4tVd}0n*^O z_|4*o-Ela<{wc=(DG^ex>U1W`=H!K0Noe(hDrb*=P``7-4Ybguj}IHFTLF+iiVPy7 z-rnE*`Tyiku;Sx#)v1)0YN;FV0QErAt*`7h%daJ$;`owWT4Lhx&|NDOnad|?uxIC7 zXwoe?>t^3ij3wLSO3ERjy71l*HhO`aEyV{4)r(*=KllJC(p-r9Hmu zPr}TUk6(6&8=5SUi|42|o2inN>E0T#d3*uqy7FR#$rwW!EI6aIr9{yI`AM%&07*yF ztsuz9>b+7oP#`xQC;d&gpnTh8zqv{H$qkM)F(-SnG@fooe_?#tSVviCiGjTgKU%_) zztr6w5^_U9o6k31bV9QyBZDB%fn&Gc%J4#&^z|}-DN)(n2DPT#K0romfD$)PN2rVW zyZB5-k%El?C%5eYSy05gP zehXEEV$JdWAiBmZe2^J=#1?r)SEGia{ySd=KM| zYlH)QP|^S^{&B~~lYFq_B~l$f&yTJ2yD@_d-O!u{`aD5nf%mWkhfByQ>-xda``FCV zgHf$3%1^vp1=|Iq;~M#B`JDdC>bYd<{yJ2?HT!`*4G&AqsWS|4J9Ahz zkIV)f6GT%?>K*K>aL?k1hWo!K6Exne6&9?g0Q<<1&#EN~(EdtH2``IVa983+*6p-~ ze5KNW0O_?J-fLZq6eCyjSuHII##yRwZT)t80dPEVc7SVtw-tNSrO_AL#;Ai=3Db{o z(ix6Mz?W3SxIPW~jb899=Gx*1cMXA?mzF>JK;%CoIU-P1kdB4zA^qYQq6bRy>V3A|eAEDD zRp<@VLd3P8ca&zp`_v&TFhoIv6qYC$41AC2Slr7jb+5f|OSGk&Bc8zzI1e z9XVn>TMlWtg;wq+RA67e->vTyT>%NRQi%V>lgt21Y^aqe z)ASZUKcRbUt?ndp1EUewRuJH|Y&pE=cxszeob2^aBY#VFc7>v|+U%~OKi8^yYXp4t zL~}ur_~uV_;^F`?#55D(q+AlahVhGWS(LUOoJFVD{6xQ|dH9i&9k*X5)z86Arq%X* zlF;RbWc|U7x;$c$Nb0E(36L`cd7`Ua4Uxn_8I^E3l+#h88MC=5HgB@wew8>6j>PfE zq4+%?UU790yse0Y@HU{oW07y37Abx+41EskPJhXT3I0w4K$))22#CTKRXXuKX>drK z*(EKiyqTcARAO+U>6#cJi1RtK`y80X4Z5P8Wd@lYdA>+hsZ_$hXTvuAoL}Sk?XjeF z!|J_oRi}DT8APdUvo1~pQ?5XAyBL-dt?o-#y2_?ZVRu6S7h`8BMiW+hoqLp93>lK})5nv(6Pn5$lh{kWzY^T;xx% z*aWlypf9X=CN3#smn6c>Mb`BQFPVY7a>WmF+INGAa35GZk~=H1KJ1RH&S7gizM@1O zrQ67}bOuzfMq)bPfB)_+?3=7WtacHYu$#1bP=#bej9}%fmg6NBtDuy?HBBx%`X+;H zClBAx-Vc^+8@2783fr@G=mc8I%Aw`ctS^;_0-M zDMEm&l})BshXa$z)VID0%OakLxT}x4UpClkDn#uHSwS8-GXx5#jp_4Tq)D-;?QbDe&n35hZ{Ml>1YGMk?MPuU(Mptg744 zl|cf%&R%;y*BfBe|3j7X1Tsh90pgSNsMR@yFd+{Xy3{SJmpxdNafj9K`1#TbVX*|X zrqf4dg^lg!w~+D&0#U1KIAKc)s9OdE+*H)_Ux{++#+)<~3hb?XodzRY4i#Y3TI{i5 zi*y{w*+rVl!w&(d-=-s7CCkj48X{MACYTLywFSCKKyRsP-(6BEdIrIrWQR?`Uk*5* za@xLeltICQr?Z}BXqk=;-BQ>t^S)oW8bh_ebMU7Situ(wTo-2PF&nsF9W$rH8g16; zje0TRm$G--85C|kUn{0qXq&;NK6u+>Wwxwf{61e_0F+Z#L1vHy;3ZmQ=|2FbS|1fm zphWHS#1nwFW(J&Lij!4Q5+oHi{4kz^dI1{MvM92T%8}3S@GMyTL&297T<%3E;kB&W zn#53NKbfy|L6fkaMkl;jZP~7lgmIozGu3LX67;j)LTs_4=iBb1s9P5!I3)`xa8y)t zt%OnvIB7E}rUO2ICp_3%7N+p>@R#N@o?Y7mDs#jy19k)^+Ell+qG>Ebw&E>2S=LeY zu5ES_D)UahO`41*o~b8GW?04K*>Xz^f zp!$`rC3bYbqtNemgP@7NuKFyYSz~dczz|K@0%uwL0c&Metm#9Sn@O1mBBQ#Md9=4j z!hPYz5gG}>;@8qm{r69$R4s?F!*5qN4&J+2x-A@)6$BFIIHyyQ4aS|+Hn|cFqXWh* z-T(lITV*ty1AY(k7w!qg=;z(&r@0ZGyJx4AY_eid@?%|%V=fN^pI zUaG7cDMKohp?5r_1;M=A-Q&<2)s_l(a6gq&csGx!vNy~+@*dQAM$^Mz*uh1k%Nx(d zhRU<#G^q4B$FTcpclPf4qpHU$2%-?Ki$a&bgZ2^kiQRG2X2J$dV}T#;U*b1;=#8pMQ12kW`kkQPMMTN-2}<=;C@@~%)N-Zz%jv1+uv=)*m-HW!WveKq3r zJ_(JMVx;X_E0nLA>e$X8K;85j#LNi`vA(^o+jHAK(cJNUHGyS$aj9RM73v#O8`|i> zMEC0f?9$vrv$X8IAY)mLTeyoo^p~zlN=gISv5Axf&86@+FG;>pmt)(jwq;=>JK*y2 z*_)9Ns8k*tj=fMWWcx!K++8Sgk*Ocu9ANd`hjz`U_VTdk-Okra zDH!_9+~ml0=F{74;`+=jm0`ofXN&lb;bn+<8jWcOiP-1rY)VO48Bz-(<(h{f_5guIW<+j_LD>+r5OkTUUB6QJB8L96%uJ1YffZ*(|p0*fd2;1$Uvj7d;@O^q8tI# zF>}r5b$1&8tk^0-jG8uxt9bEXWN-0 zc)Z*|>Smb_wEUb{mQ58cpwj||o3XB4*+(iD#8oz$#fbE@odZs>-pYS@%=&XZDb6Zv zKwsXU>D*b(JD`a^X^8)f-84U}3|5=zI5hhH^tqB7gM_mA_yBar^n(c=-jA^6PBHiQ z=3k@_QDi&vrKuK1)_mQjg=Y9+8msKlJUu<2)XW7d19{5I3~qHCMi7{eKLi*d-6M53 zZ;(Hv-!Zy)vy#Y|_wOZ2jqNkOn1(sE;0nj-kw*BGRI(Y7^f{d5REJ=4^U1(UdTJcy=YDiX}$mcdi%eSn-m3I=Li05m;_$A*rR=?=-UA#~_ zTW7aLvN*!~b7IYrdfA@1`?+0XUbwDv+Y-2l!9whS6Kn`>nm27?6qV8K$wv=;8}}+V z)mCY9ke=NVJNyyiOT{qg+ZJ&}Cuk=6dE(abG7f>1)`k7j$5R@I6~i8yQg!mDPjb|4glmF!`0@Vfrhugs*f)+nKc&chDYaGr<9j(;GrV-Z$Yu*;Dxvb2(fY` z)+{&m6{CeU-6hF}61W$o;?Yy@`L<_*sN7qc)Ougg=?QaoCOGp$PX(m;?|Toob(hdZ zJ;jez20C9PmO_si{}Ln6e`VsLP#8W}HZXd;PpdooUUfR!f zTeytnpmbSw&H#SQ;IEA5ucSsYlj-MnVxy`;{9?Z#hOf84PK}G|*N*-wyM8(3KY)-w zelZl>=;U6@*&Z_L={=dvH?uYW!u{`0$+kgry>h*XC^X{fOD)7Le?RZ|_ha}}-|0l$ zR%MQP{8F%Ap8Xeve*r6r9r6<1@Bo>Uyxk!BzlHeguYV=`f715zq1|q(vim$q|9bzw zf7vJ^{VC&{sf(U})Aip=Ge1IAZnl0b8WI#SjrDJ%=BZE((=1(6|u2hoIAC26?({bgS;O<K@E z{V?7xBdu@Vd5i3t+UK#wOA2X!5+dW)tSr+esEx~`NEZIb_ii8|HMrcs=`mbD)!T_M z-kOOdCGTLSBDO>C$B)W}UE>n7>>dfF1;TrJeBUDIFw%Hmhv-17+)dTmX+TIrgrtg{ zT#!O#7C*#Y)Y&?Mt58`Sy8nqo)`5%6^O}@bXh=Tpc9>`*Y6}zzTqnwxr!A!MQqz87v z=egidszy(812MUHL6D=wpWm`qo@Vf-?qdLPE@6=(<_~t%58acC;a#WQ+@D)!1&HFC zZ+k^7AE9{xzSi9>$HIb}!UXHkFJSEJJ?2!&Ia^b2R9ZDk4*Zv}ZI_LSXDner77ny5 zj5MPD^csmB)smSbZ~$)*bk|mKUn+YvY<5hlF!9aJN+$;p1&-YV)i#A)_tU9b+;GR; z*#nw0%Ct(0ZH`=xrLS6y5qjsrq$VbYs**XJwd0aN`M}rVE+8P*)hAryL-`DNP*5aVo5FuIU;>;tv6OANZz)tTM>33v?fd{wqxin9j0{q5w#o3r`z%Ty$} zHi{AeD+YPRG0b4~iZz&Huj%-#Z6eJW{E(MczDUNxS0#b`@^MK#Vp6mD zB42-0B7ZFWoU|8|n}3EMyHBC`c~f&_MSaE&ciQUuN~y9nNx6G(c56#}-!wL6aa_-+{Y{ei3d z1IctZs;{`_dONbOn`EDHw`*pa8>Br>9g?d9TF~8fOcan0^Lc&zF)|Zv-u$XvZV^4N z(3@1a5!l{F{`-oI-MSMN3#xLQD;y^SswU{9CZ21;Fx0}sA7IKbNW}KmJx>@~QeCsuk($AV&>h)=~h1c%%H+p1zG!3iI_FQ#n^ zHQLcf%FMF#zGu7{n3{#wWqX6svNUt&qj>(Xr}o<|cT|gI;$p5HDk>|YyVS)j`|ucU z0&I}xSLtN52OxJN`L2SrO%?i5IE&=F-(|t{Dvl?y)m?Mea5jRh5dad<%$A@&Kvd{G z_vzrmLicU;WjR;utC55>M%_*$DYD5iHT8N!?DsT6or+ODL{!i@G=t7r!}oQTl~9fm zF;6ZX#Jp-D0H7u4pGq9qP^u90`8{ryKVRj`&+HF|e0Zwjg3~vZJT3rEB6wH4BOG+- zI9rsc^o(b{w(>QtHqv`Wl$aRfcWh;E%;XH~M=mK^U90HZDDXz4dj=?&mOlCZWr;r> z@@|MXg!pFtV0Ej1XJyqp2c;ed))7VuPm%x_l_ikbGB~OJh}@h4Ig_W!Rwi2b=V7Vj zSh_+Y8N%~8tc4r5_buU`5pVSo4jce%HNDZADU~M^WFzjBs03{zrA%#D&#|K1_AfKK4f+JWMzpnuZ`eV3PU<_Z9FGQ^X7 zn0c#ATl5YEQl;5dHcXbJP*lvp4gi4?Gln`p>|Y)RG}zLhCD3n>&0=P_T5VCm?h}aPHZKHN!!oDuL7S|`m8I9Qkm@X1_fx*{v$r5YFz>cO-{UR2Rq z+TY~82G3qPzGg)E*J|VW`r>$ex4#O2QbF-=3*o@}m^dKOSKGFRSs~q;E6i#lFG9w`JfK1VXmKk zZ}UGh3SKUgK6n~2Vs2PEiU_BGy=Hwck39|k8 z8nHW?&rKPn4oOd=zxAKa=L_G4(Uqc{bL!x?CCt>R6$hPo|Yc`8j#X{`O-(-3Ci>~QXqYE?^DT9 zp;U%xwfoud2-D%oHx1#~SR)u>k~K^;m!TtOQaORaaGn-aB$jSlBV(^cI)eS62UKK{ zPoHp@&>&&brphAGjlK{**O+}9_eI#Yb0Ev6#rM8VRK3ef!SH9zcby+ZGW;P~dMM8z ztVXMTMCk<4cn?kx^qH(+sXh1jIBP~T zfUBv#mXqw|%R3ZG5~-C&P|UNJ{e|Uz*ylqj@KNTAtYi*QSjZy`>#7mGSJa&8YxNe9 zY)3Pg+UYe`(|sauHSQ4Vysv_s3aKh6q+yL_@(~ny-`;;-MNuMEr$M#W(+K$;telUa zVindY6yIFr7qbXs&!|>VD*lKNO043*YC0qgKCeYir=Y6bICFTA?xmGzBSLi6W()bG zbX7@8jWF27NXCc&Do;eiqfg~Hf+G`*Wg4wO}f z^vft+98z;ItGS>JMf{PZF5Usb9-^gv3n64g|ul~&U#`gM?CDqx7R;S2;=3x9a3Si*Uua z%NRb)#TUxJTu%`Q4w`HDR(Db}SHL8wkzViJPx23+OjP+r#oV!3X&*?|l=cWJe7A%x6h^KcQOvJw-Rh{c{z}+88~6jErd4EgSHO8ba0%;hvC|}zS33{vaDaC zGl9=XL`zudLj!vP7e2^TvMH#v)@@cLRo~ui2G6N)M(*c^Y5&5t=zwO2kj(?#ZA5Ep zc8$=oiH&R8ybtF`HJhl3U$B#-kZ@S!2-!CWBw!tuknUm;ezlN2OD)K8LpEpowOP!eZAeyYMtV~`l~X$5j){A&n{>vuM-W*sqG2Dd%3Y|>i@ zyx_6_)O1@@o^vJgr0Vf3c0+N|L>^%~RbvRR&FZLnJ9kY9i(=UHCCwR}gZc@dym?B4 z>+mIuV`k(5wr0Q(!>D3p+sK!A-qAF+@%4jka5 z)rRmus*sT}tEOsbA3UA#0xgzyc{Getjv@&z3}lXMeODny5`M-Yw4P;F#Y`gojO>Bw zH1}$(N26z}JnW~I`EwErFo=F$Q1ACUL7lj@p%Pj@pn$ppLA{d`6^bB{V8=LmmT>!ya?Et|7 zE<`T4l5_gs3UOwD(ts0#U~Ie}kS>(u+QNHvpvreom|5yO?u6f0fVw7(VIxvTNY(Nw z{LxAZ!bZL*)4iyCDme5gUoD7>6l?ZSUdL9~64va>=H72?cT>pD{Fl}InQcT$c(+uL zi_o$8;^ zkPjEwjz{>8WPmgy-Snsk40TKacE-QZqu94^Sy~d_UK!^}94DtA3}uaF#0`&L{tNq} z5Cl=Gxi=>7XTW{q^pDKqEt!r`X7(gj#@{g4KQgTU0H+XzfshoUUj)uC;O#&D{*O=6 zk#+bx>EpZqLbm@WaP1+ohl(WPZ zb@ooskzk=J+g=096Bu7y9(N8X6B}|W$Z=IA|BLTZVqrfxZ*|Vycl+nIeVt;%LYJ`< zQz*A#j97&H{cEU_7dYzDiA#^%m0 zgR-Zj#h?!)UHA@orBP{UAw3_>ImYm;FViJ{w64=xO`9sU{7G2&+tC z=P1N*;G=LqpY4@<9PE@nKMzQD#G!8ZxrTdlz$=#0aZDZ|fdm(+DMkg;+)Zv0M0iFZs=pxgM!S-Dh$@|=RMyf|OG`xih@VgBd&v{N4?{EGtL z08XuUB&dx;t;sL_X1Ub=kFd84i)-21wF3zf2oT&|gS)%CyK8WF55a=FySux)ySuw< z)6m#qt-ba>`<(YX*Y{^${iA!955m$rE5!wGkyz8;J02gRpts znZR(89HlI7INDA*8BJ!iz9ioNe%Wn2%@GlGP?X>{(mvx}iXpyAu%M*o9yhQ$9EaeD zlNU=0FeFA8D|_IC%@-4H)1|j$!kv3%_0qtK6pVB`MMlUBgX}445VU3DwN8hF5BF89 zyobU8iPq?8b!-}8CA)lB2tXPR3q5d-uy%^?W;|pYT(-sdWe7HevR!0IptPOpo`{qW zfQr<|N=U)Hc+bspG?UlomK?FJ-2H0as$uUy+(aw1*Qpi0PZoq9^xoWHCYyzOGti|P zi9(PGpb7N_N!_e2rPWdTRT(n1=DzaerxY+`rOrW1>e9qUEE}OhI5yMz+|*1VJQyTCG=o6aNh0K4ds@0zZ6rY- z3$vZON{>$GCfyrZyn9wR0G=ILcvgdT7O}rMumacB>!}}o|Kp)SQOtlpiy#1FWE5A# zMG~Vkxi-bvX0W*9rUgO-$3zM^?hw!)%A(E;>7*A)BkH}}?P>s3evA#im>u?OxM#CvE6KAWbt%ngf7T&taj&;g-)_d2_O^RkuQm0(%a7BSOq~%j@AhIc z9Pv*C*E>9ufu@(eVDn;DgWhwv35JyxO<0uXpCAQo^#+>se)hF$sd(WiBjD4Oz)yit z?SYL3xGY2^7ykKWVyXn-uh*)$pIzZ9#5&G5tY~S5%MN*AJ)>#o&OR6XbV zq6me@Id{2xL%o^M5#q$UYUHg?E%$j;n)WEtIoQAPlJw@1EJ?bRwy0zNHEN`fvKfJ% z0#)*f8eq;2me_b2?9(Y>E$f4^pkgxakZ(#d->}a@6Qtm?V&d_qM7G)CeCXM_jf1#8`M8374M= z&>KU7ytIYOrn#w%$YYB^sM+tNJC9gT-f1+Rd6MYCwG5M1*kJET-#VtKa_-JCn`_RjkstFHhx(K2OIvV`dJ_s0Ph7e+7kX zWx4esh7K$(O;Q@R)ph$j%!zg}w-7ST}sB2ll#IM(mld(ipUbB7xHZ zm-%bJ=ZE-orVsZ%e(Jin+k~^g75V{$(|M0w`CA>4Zsju_`~{k~GXD}O-L7wBZ+Ycl zjB`#kF4sEyda$T&ys;GVL=4)#=n@GH${pY9*Eyp7NGSM=5SCX>OECc<`HSAi5vc3D zfDLeLG~YkGcr3--PzL)38(u#3%1cKVF6vC3*rlO${jbLixAdnT$vbKOxdtrfTg-?T zxb;iId4kjJEZ2M#qJ}};Q^5vqT52<~ir~M|D}>)OY7yH{sPL9w5BNb+if)qJt>FG_ zKlAF8u*lBy8fl&FKw~l2)iHD)9*=0>@SL?-v)h{GS12g+p5r#5&GuZw17I`HrVl<{ zYt{46o~J>xU2Ii45-OO18lgP!;rb4%ztmfui96d8nC&C!FAG0@6(BMRG`#Ni#(3Uy za#Nq>KAhq1R~OE`!O37kqQR|aGuWkdA{2$MRJFUd2yWq78v{7;owQ==kX!q3x*sBB zdczQ|>iLiCZ4PMT(^>!c$a#n?ol$pkh*V&+2A!Vu6kA@iEyqij*c&VfJ4DY#iV3CL zV9_~=cqX~L`q{D)h+e=(afiWNY(M@JhTt)P$=s@(_TVjqzrk+}J_(uTXVP3)AQu%3<{EAmb4p?f&tBuiz^QN)BR)#=!~f5tY3$Uv9hN)jiXOtFY7% zbly)Tu^S4}GJ9y3eeiv};Ya%Expu}F+F&!LI$(HlO+A8P`3gfLrSjh67z3-xITMkR z@CTPk5z$@N<#!3+3K|b*Tw+m6q%&_xY$he=bL)}FEZb$?$gIcl`5Qiw%jS?HkJa`G zr62_u-E6a7eB`gkEaDpT6jflR$5%b2H=ZI%jE-3mu1ypxpLfW3TfV69E89J+5{6OM zL=2ubTJxNI0rG&IPukZyo6jm`LSs>20hf+b$9}UFzCMGGe&p9_%MA|*Ij90)FrMP{mNa^viIUuTM^pYN=p76QFQUSx%nrpDwTJ2v9A#&!r_G4E*nOHJ|@H zQ~EwyR3$yewOI8uEjyfJ!Oz@`4-nJm`-iFKKF)6HL2|VAfmemRy~SXXDt&&^oo&ds zEkFh}K_ueI2v-HQHbe_>;QuSE;cp?855l|RB*W5HG3m+tb`~@;uz*_8E=+-?MlnL~ z%dK5|jG?--R}{cMyHgeYL?sf3xAZm0M-73Q=M2l(sYpF?e;|{MbTF3Ds4zhO=7F{& zgg}gmnY8MWezr8QuSM@!^0D`v&+8#+dNaU7Cp|tQgDG%kc@dui98-abR%Z5D{~j)@g@=Mq4kBkjR4;miK{j|P*^yS zq{-74!hP%vrH477>=zIl^L{8N@jwterUmL67w5gb3;XPoD`{bJCJwI5c>h0y0R!%#x4 z6(=0DBkdKZ9=snpFqOeHQ({YCSTKvNKI@M8Qnzlmb0n9exsH)ncoftX!c!d-eyPeX z^QyDK3?0WK9zi!~IdNjXbgdM?*GB#9J4=OMZ|juFA^@t&fp4pOB~XdH-?Db zxvGi-g9C-Ate~;NF*8Cuj~3OLjWB4vwrG~rD?)^)1@x_^Dz7iZ5Rh0iV@+oB;vg$m zuJzp2J!Pj z(wwI%3(nnC>Gzq*na><;Z(@}d9Yv*-GzU?$;*5U_*W2)hYAK4+iRPL zg}De9m)FLWT92M%mTn*$^mJ$H{BDY|NI78yL2d1Ksv0_rGFprG=NA%P^vuTZ)zZL? zW%?OiAwkPKYYo(9v?!Ohw>}ER!guaGvI^DXHPo6yprd*Nq0VZS)G&pvWIvgKlWzgz z=9+$(W(Y9a{*G^59C>tI#_B;vz&Me^!@4-4vks;C-UP-aAVxvWAR;o%YR0{|9LhCQ z4VS006dr-x9$zEJz;t^{PqD^b3CD2P7VAXj!P;uZ(j4_izj;ND%JiO=1=otGZ8@a- z47pBA)UZiY4vq>$M`!JC~THGaaMno6XllV(b{lU?zpK{*ygfN}U9Go@9$L3a{g=d`@JcYNV(?zWTir=e6bj zfWLf#P9sk-xbKEwr(J2dB0Ra5!6DkKI`Xmr8fj_2kbSv(7?jZ2=xG+4z}shL<@`2Zwlb5uoN`ddFnV-z&E~AX?4sTZP{C>@ zczNM?Dd7p`L<;L{`I-dTOO0ThZ=Ac3zsY_#M3N%V{nI)tcOK``|C!iM@iSxW(B8+n zs@|yN8zK%U5pm%c=#kRBo9-?cJo{S5xg?=bL_0%_455cDu9?U`BeWuMTW?T_I;$-W z6~;bqMOsHDS%x?#@eImYgeKj&FHmi-mJrVRz)ji4)8*^Y8vaYYQ%f%Y5abGH%`f!E z+z`PktCAfWA^-bh*24}3Tng(Vn2UxgndglC;R@67J)e5#@CtcXqM{iN9By&lL&*1b z$2y$r{3XSdaU@0vhgT@h&ate_e_kNv#?r9`xXgZ=m^~d_$qYVna(!s%|(yCFqy1L1rd`>kYW-`+hX}^S^AT z{H~|nb>?D)7%h}i9y7|%R`L3tooDHki3*yOxU22e)!5nDd-L}6Z!2vC9X@0^r0%V* z4+C~|Z0zg}L+eu#Gn?+Ce{SA5J}WF0(s~UcbYl}BAcfLo;rf0;78m@*R&i-IH|ZpT zD_wYJD|jFx;*uzzJ&-bzH`_PL~w5 zYqQ9A50htJpjh;@uC>^Rf74A8j1nbcB#ty3iy~Y`Y)9=X{Pe6g!-i|Sf;`yTgjnL> zkgLKI&w-+QILC#-IFI)^Z3gL97UK1j4wvc>`6I#>UMB>1R$5h+{w@I*cbN1z>a@2D z4?8D&w`=CK<9M)1?PyTm#% znfdB?D9|nilv{ntpRqE=8WVZ&M5oq2uLiegzG(1`b}mg~sHK`K1CX+nEIZ|ZaB>61 zN2MDRo>{bxEg!%AMS&=LXF#j&s>!W(4QdzZV2PxE+nr~Z%4K*<+-0J zf@GN4396BH)^kuD&UmvZOkNAT`Zm`j?GLfA=VvT~zn+Yy#gC7ZqV(~+t#x1UtY=UD zsD7lme!-tVOD*~r=uKww?sLdp=-!HKGsBka+WlS}bGDX%8R++(e7~h$Ue+z zast5f)ei$Bg7?u=15Ov~pa3U9=&8@*geq_0l4J$6NM}v4L+;z(>vI9&mTAE17AAVz zF$f9m1P@xff~S?3os9yph649a0?ZTjg?I??mexDI`h* zmUv%3(O4pK5spcgPh1K(%dC4cLxRG!&*>)WVt~*gJ&YS}1z3eXDE2aDo1Om8*)jK2 z`cadwTS9r0?J`^57<1pUIa~!JRGsl(*8}f_XLaVaV7%B0X>rEqNcXBHk4U)o z_>{dnIC=Be@h9_pBLu<7(2SIC>0)Sgf08aMqYB7>Q=H^E-;jpk!(213_%tL6qa3>g z8E+pYJy#f)XX@?M86v&ZWJ`2gg{|Ik%i5UH5rUYxkPjIPjL?nzig^gbo;n;f3kml_ zuYy%YT^?^hFntx?_8U+5DpZtI0+}3UK+9%r3_z4!;XG}tO=DaR<9v($y42AQNvfz$ zJl{)DWF!<#Y8K4hcPl}+?;?)}RWGgSQYgN$-6B{ML$vBk*#2S-9k`&`=jqNYi6dJl zo8Sng212X+^xr<;Z!8u;BJobI$R<~>R;T#&-{&yr3{EHpXTdl?lyv%_@Q|=M#QY3+7mP_Fqk&XMDae9=Y zrk;8CyHX<40wVnstsK;YA|F-vuT6|?h40On-U;B}x%ghRf)Lo7%g2S&xzXXVNne}f z7-tQY^HHa3Dn5I)a%aoiJRCzukMbwM`1zUdvsLg*b75=iNDZovtm!yOP2we3({I0` zFu(9ZeC9)pBqSBzCHqe4C-bJhwnUM>?NiaJKT}VHIpJu6UJOMwjP1kfeatXf@o0RW z6%#p!96Rmh%W~myhi6^{L9Xy1*tZ`1DTsvzSLa08h2Xn%XadFHqv>7xjDf{>)v50^ z)D*_!7#zmZKam2d2(K(U5INOy>9b*RS7iB6Je%1Fi0@f;ZfUVI*VwA(*yQzyBN8_W zW{T!5)jP<9i}OedkzTmkh6%}Fv7yZU9(l^1j;~mLmHw!4c)0VAQGzyTM}xa=WnJsemd%e{Re- zorddoT}Iqa%etM-e5}A2Fx5GX&EYcL(ulq{6mBLR38Y1U#xJ?zGB(Yn+$LgUT#XWE zAH+GkDyi0vc*YT~%(rxlsn8e7<5ZLtc{ReTeW#~?6C?*I{FvCAb#^gtbe8#Hp5??M zn->!GIMq!k?=8kVp`qb-cB7_$W>tKXuU0Qa3Gz4k#J3v}gu2H&aZ!kIrM8E(#y9IB z&0#XOO!aE)x%rqbi`5$n2Z$qnN!B^hc+V!fMHT}&UcVr+$i^eH@=A@bq=eczOlOx~fwzc64p z{Ckrg$uYXwQbZkNbnXzz`+3go%yUA6mXgDW1%kGenFW_MlD=T8;7 zG$L%HV`beE(^!=3xX=^0V|sW7g$? zGim$cCs>%l|RqqLMB=6Kh5F?JN zKC|0@dvr+)rk3>v3mZP>O?r^R%HCjKU~)lfJa*n#*FBI*NTSJ`o};z(U#wUj3L8LcZJtYAWQyO8p_xG5`t5H zCe~-tulM3Ykq`T4!p?p{q{ul`X+@4^Q)w8fE1`T178|S#+c97l-=Tt647WnXG}mm?yLE5wwH?8x5yZQt%b071#8AUh!B*~14Bj{Je%Fho@ys& zX%qckIqsdvSZ|MAb4MMh0^;+#3S*+Pw?f3bY5!Mp>)ym)h-j_nCM)4 ziEeqLBU_a$ip?PkC&W)8eRZza4imy~5Xw>J!(72pc#Qh(%nwfb<0w38|(6TkZFv6;yziSt?>!!VP?HF;@J45J`(`3#nH=$_ys1gB@z zDZBi(@r$P{Y(O%GKjOHjw2v3otk7xN&}*rhX9HkBHueup^fUrZo;b|7=u5 zCH!hHv1s5EO;Dbb81hQ9zuQeasTbb|7xv`-$VkWrqut4>?jV_5~0Q3sCsG931jWr-mn z`siMzI`f%0A~lvLD0cJNwB62_L0aR{c|kV7YO@T0n>a>oRwQRR+XSSJ9H=NyTjnEI z)2qwA_Q<6+ely8eTnAWDzISC%rX$s0HH?J!(!k&zIjO^lkjNz6qbQ)%{ea~Hx8f5?{qW?eF!A|;H=ueN4y@@gFFlpoJ~&IUs{0B zvBOO3y^Uz+mLV#?Ri~6Vdy2s5{n~d_dL6Yh0=k5J22oo{&;Y4@S>d;POE?79-&JhKhBpO zgk$}C2Z_IS22*L7-zkS4=$2~M{Sv{INZRR z7=Hwm*QfBqPuheOMaNg|)jjQ1o2{^e9+D0_4w!#b5`C zb}LaVabTF@h|;ZQ&HNV$%#l^Ru{o1j4$#dro8G?0fbMNCjpeQ2lUUK%>$eF4izJ9z z3@haOSs2W8wsSb~v?6E8T6KfGQPtD_QOIQDAP(PAJlsT%_YUIXO0y4Z${%AYJw>@X zt*`A7L^~3LzvGfm*egqT#KBEw>XBhFm;S1&Z;1_drxf*aS7J;J>%EjR7ZHPnC^>&Z zzwV2cDsG|tjQWNoDKCPPrICa(kFxTtiLqax{23o0-WRJ!aUb478>Q@0ku$xlYZkJp zrz|!bT%yi!&$wbnB`NA^c_CU8pW?18N@p#%zYBLYl3@Q9x2C== zb}^B#Uvdt4HY&N^mK?f(uRF6;?@_@B!gOm(Q%VQQR`nack6X?bs>%H1fqECcRr+!_ zIxp=7BTkzEnPbom^~h66zFA_#O*|)aNqBh-)_(T{=6$n&;(s5c2@CXVrhlcylGFP! zV1k}7D2pG$dw;=yv*`<;5iIMI6=KDBz1S0osdHd-G3ChR+84`91VNig;69^7k4e3@ z9~R^7+U*iosmF8)IQW-XxnpW7LZB!CtYAm7-@L1H1^WyQC zsU4Yc3H9dC(lt}`8_%$iPxfN8?$=H|SK;a{u=!2*Pcp&qy(vC2^zM?l%x_+#oiFSB znGZby#^>Z)gJ0*mW+vxgp4k8kqjL`hX1_(|u%p8pW`!VDJUg!~bFoc&ww7uf4A?hy zu=rsuWdB7hT{nNFIA5PG_kPnw{a~q;ecn4GyvL1VA=LKm{vm1S$#hbY?BLQe&=-N@5B+H6`-0=~jsYnVB~k1mcufA$a0!tnb%pu& z#d^lo@yc*1Bbz;_E%wBj!VLvjyhV-i z<@o@S9aKQ>X7f#o<1Z~e`-EHkWr30gu2|v*zYY~}S3KWT%5ORR2sgT-*Hn`ZC`oZw zrB{>DOB6uvoeUq_v6eiS&KWJB`=0S=0;glamol~iQjfNr58tuWxCR39uo2-k{h1HC zk|30J{|3DIpGf3)cnf0TX~@VRCxKa1=5<3_dS6x#`@cvd4vz?Pas(?kOak!OR4#gM zV{5XHSeD0$3fg1*42AK=FgfWe2p`qosGOX#~3|hKYHi1hh_TsvU0O<%%R#ex!%fnkcEGN_B~AFSEhg^p>@K zYFX*6OK)$6<5@Mq>_yI`EgWIgp+mTqF_IvM;_j>A{S}YI5_6>fX$eV!v6wp9V*G># z!XF9=a-dg9`nrz3nM`ybFdfB92F51d%aBl0t~i9r7hu}w*^}J-_tuDhZ1=`dmRJDe zps|MgaJj~d_|SntGj|XYa<;dp%~p=8qfpXQ>oWkR^6Cndf=0_g{G~twEj*yo6!D&wrOC3{S zr4%Q&y8||PsuWoVTy{3kpL^(GhPfDY|p{}ei) zAh5Ig#eiJY?ZlTO+~WG{zYfhfyF~tY1*;SO z|ED~s!2e=5VbxNOhX2#w{|CGo74b2a_}CVgfBr9O_J2sGGadvEe+@vl z5rTq@3UX%krq$Un_Yiy25q>K}q*Bi2 z+|pfIq&;MPLfj;aChGEV==`B9vDOIeQ_WfLk6M$<%-J7OEFBm{b0T`4T=#xkQ^ zZUPX-tHTveQ~iW-pb3lb-U}COe(_-i*;M%mX3h3G_C zw&@0WPB~TaxWvcdj_kJ4X30ttbrVpv+)|e=*^sbbc0@GSm45FXoH2U>1LJ zD4h`iEVVNmm8_}twvY-oQ*x?f7X#&&3kbMM;5CHzH9h{?i=us1kbJ<3d=zejhG7{M>Id!ch z87f#Ski9Wi@uOa1V;^0SY;P2}?yL=BxgK$BbCr2sr{hPRr$39M?_O^7wevaq=sL-I z_y1f+Cyin*aVg7*h18#(xF~yk7_(A$EennEKi%0QUD(m+BD&mUEzc7rY4DDA0t~|l zXX9^{5Ite!J<%QrGPnz@XH`shsz%58xZpPEGu8we%&BRqFQJ3| z(Wf8t@FPAB=c>R{io~SW{#Dp|_Cx1PaEOi#WQZLdA8$r#?finBaIKWm|_o~$)rtid@zz$mtoNp)tgG>3<5ZofZ7c`k0#6nc4 z(OV%3**>(%{5u}c9{X7y4AEQn*Fc6PJ7I#cO(=RO9RY)_ zrYa-AkOaFg9DSK(5LT+M!CVK~3)iwlh4SCDAIs%TiiQs9i)l-?fr(?Wi%x$N-ydyB z$J}cM?}LBQe&k`kXe+N&*;}5@#!>a7i`QvH3;B8xU#K6X1b#oTs8vC8#Yb^Hn zO(w^r^#Br*Ee0|Zl1|VtTf`zVh)P)4ix3&W&!)^-C1X#tcD;vsm{}N!z z?9s^-iF(Rw@j(WM!$ol1vpJ?ZjiY!TXrp7JuiBv=hJ3B1l3IvJ@!r|4Ok zWN2p6LEz;WT$(CuItO6M)Gq~dol!YfjSnsII3LYn-3{0PI4b?&ncip@Gq@n88tz6p zuG)Yt0^1z9Sw1C0fSXnD0vv^hu=9ZjJu|W|-}yiJ1yRbU*KG#jRW-gnUkyA>W_XWz z$URGHIi}}XROEy4{65PdW#L1${JFJNqQ9Ef+K8ZMT~TR!M2IeltUIH5We0#6$t!Np z!d<-?{=E9ClirKhrBPAZo}t5Iqh5-zAoIShts*_xj$W|(_P|T7L~K80>7Vf$0d`V#%PUC!uYmYV_ zwGe_U#mjTCejNv+>ejHW1iPu#Wf~4sXXUOpy+qU^ITlTOrUKg1b`#X=@LI4xy@Kr6 zWATwL1&MvJkvyNZB0t8nZ)enP)4_bl%6W4^=~1vwEm$t&oo_TKGJCDpxxA-rCB(c+Nhq@Tf1dF?MSe! zCs-K-y*#zjI7Wz0$pEdDn)z$coR(CG%csg%Sjd!yG6C_=Z_sk=x^#TLfrAJvz#MY3 z-N&+q7d>L{o||qwq0?*I)%|rA?s2$EbX1#oMY-u)^CqgL!ByWIbV)BF{b~V6Mz$|B zVdaOdcdH+G{pdQ?oqeOHq7mbH;qNEuOSNoZIs>PlR~nLHu-R!cVP}ol{la{iEX7ff z$ZsD@+sURR+goep$*c6={?DjDhoEkvzx~<*7KMt-I(Sv{!^6yzTn3z%82mlT+PtMG z&+hIuJ4dhz|EQPfy z#VDL4O-frh`?Uy7@aq%!$Aupm#g53;nM)(uJVV4ka`ULC1W_{N#-vM_+)4F*mHA-J z*~AS_FYTyGBR8tkaqd)#E5LcN3JPz>3puG|@r!2Z0!Lp##SGNYiiBCDdEr&pvuxMO zv>>1KpV?-6(jy-&WlJ5;6`O{P*s`zWY7BR!>}pxwbbyYcFb~&yYucp5_KumX2;E`` zIt^C)vBcAr#osp^ZSx2HXqqpz35hlRwVOBgr)`KNzaQQ=hG{Yj zRBBn5iPRF}&AqxDbF?&WtBMuDk<%=%=~{R^_uJl5fLseO7HUn5$@uB2DHcZ=G%tv@(|!xq?RzBJr=nl!Q4( z!^_q)K1G)vhvx#9Z&jV{iFlcoM)gMTZ*fspV>XE&_4Zs(nztz=-UGWA7s(qlb=(5Y!ofO9R|to!n|V^qE$URQZ1&f}($IeQT~1T?6i z?%PWAj?E!rva`u#S89G-ru7 zbV>TFbANZPfX3QMoCTQKv|7t* zs8rfsWZ@#``0x2STLEU?eVfO#!bGQ^go-m@sp46ea;UHrJ&rI#*`C#Rf{5pJS8+g- zX6$8~6)pUNdlar63Y|d-7Tmys@A|jqanoFXQW7GEy^qz~0Vy?tnQfOMP7#~Hw3y_{RSjm9sL9li6T z=voaBZB$M>cOB)mhQ65I?noH0(M* zAhEp6#^p1qQMw`l_b^TK<7PijKxtGwyKm0gcHAO0aRub#W8gI`6lU^VB<;-h)q!Qc;JNv|R=fr$w{# zwRa|sT=BQHuB6NnPFuHjTrn!1CJGHZ#vdCO@@Yd*xzN*4LEM{B*AZ*MOq zdh0>YFQw}n=DM9zvOo+~jy;!--G!lA^rMS8-ve06H@Yjd*Q1&i#dmC$=f${q45dDW zl+oaUzZYGS=kHMqIu~N<(qdf$yJ%8qGwqBVXJ}yt`V) z^V04^BV_7pAAN7uiHdUFF3;@+4mAVLd$l9{?`pzgN0A+L%Tw#vis0TO3eq`ftijb%i@XDOsg(g^~T#LA4CazgxUN5v%e!HlOed_mHvY70a#Hub; zg}9yVnvUYqq&iKGp9Kv1Uh2LwOk78+oBv+WTl%eYI>)8BglB+weZ|(|H_SKG6d(BA z+M%|8&3rv&#p3;iHKJPW>!j&7*ISDj?5R@#>a4ApUZvl~D?SHx&>8G6s8Uu`Dqk&q zY^@|C5lf#n**!Wswl9~gPC>~{EcbmjBM+0>V~f@c&-2h3^gJ?Q=vp!kzS|qt4VF=! zeH8NF3-1$AJ3{qt@5MWqeDh6GZ5L+|^yVcHWae6m?o~@) z+qkJ$ZX5J!%5Tb^6V`e>()5zwdvi8^dtED%p1&A)0`Xp0lWx7l=;Hc>R!Y=xk+E89a>`6iO)Tydg-^S`!n-D2 zyeDNuNW-c^krkbXO=O`{x9n-vSXI0Rmz^8$T{w<@#qv;$VzhLz*hC&%I4T_jB=FU} zJkRs}c;e8jyAGgbjl)|XB$1LqZ2=aK7d>hLgA}upyPs&L$+&oe6HeWI>2B|9NSj_8 zr6q`5sh$`6*F^2Eu7asZuWb!{H)`FmZUm$J=S%HVyslH{F!n6dHo@Ti`m*MvWgpUt08Z<+3~4u<27z} z$#w>K#@5C+*=~Dl5m$H4^=#>Pe}9z$=ybOB(0r(#qbN-&h_PMh(rdW338OCn?bg3t z&@B5ngqw6+Em&zGVSSlM1%&GQ0#Qv+gT6I7V*@VqpVknn7Dg+cKo1pgHqZ;MVpM{! zqAW|7O^$$|4TDt`?cxdS#p8q|)i##R&sVyBCi)Z5vyx`{)`4meuxEFlxo$IE)9Oo zb=J?+*KM9mu}1%Zk8WBV(4UrRJXN z+y>i|a*2mcsq3b?S)QWR)RnM_F}(EWmjF5|5q)3OHnmeD6L;E%Z$O2q2}Z8AuQhH# zT8-p(ouiS}?Ms_1VJ1yX@v8;-9Y(;#sh9<7Qu~Y zG7HDmCXhvs8fej?n;alhs;b`zf>J5()h_c;?0%OjwKZLe%o?wsr9)S(I|RX_zTeoc zdXFKm>QvbBN@hluoSL#6@Tnhmsq#b%)WQArR`{2zPWONDy6NHMJpSlg3F`TJ?Isiu zR=AMTtZx^RZhBp!XJc^?j!^AY-wW)h6Tuc{B|jxm+U%pqf|k=opVmfpOWkew&;@b^ z;IfjdJ}$HEma8Evw(4gVC)nJfrW=Z6z$wGqQ8u|;y?R<-H3#l{MN_W&%<<-4WCp5U z(>z<_yO<_UT7975X?4{^5NUWY1BTM1f}Wjw5@X1l76S=aE@^x}^b(QJy7=oI3RxOu zn?Ri0nGP>kL`_Zltsj<3GxOHN2d7Wn&K|xKE1YFgC&ZM#X&VnCcM)#QD1+G>9X z*0OD>2E4M*?MpN@YuwB7JdzhhOasuzRnP0YeYB1*j>K9&N|Mg9>>qYJjQn6>BH|zc z@{I$tnrf#4p_{PIYWdyl9KcWfmc9}pWW)mvl_^TCZ&S zlvg1QfBOkQgn+s-n1{RJ_ssI=(X(d$jVDrc4Ichf?g@FfVD#Yddq$`b* zov965i04u^7E9ZUyWBGO3+pvE&a+he4Q7vBL!GxPrQ!iS9v4mGe}^WhW{pdQr+A*K zs)?}=s=yfTg^jT(t1Fb%pMu%kemW4VKPBd@b4#BU3fd<}X~$-WO>LFOc^-Q5)rO%Y zsDfj=#%{Z`#2_3~#%we$EyrS~nj9Euv>Fx5qOC3+)>Iu0R!!I&R%E8Cbj4I8k#>2Mc4 zd|9&gjB$r0hzEyHzSh*Tg>J{{2-!)DX^(?gcn&W)a9%@hpDGte-n=MRO^@HCCTunG ziG%nGk`8&5$gVFJ>ZN=uZYGm3L0h>~WRddPC2;P3e?5QlTHss=Jjzr&8Vw7tQBc?8BQnx6`y;`=HL z!iF|mw3tNjwP%&zgg)y}^q^j^D!FIa7Kyo+-pYjdbFn@IeVEDo6Ab(+;_2MM>fh~s z0tZNB7lL2;c|ZbAmN8(#;Uu#c5N}$q5!^v<&siwG?v`+zEn)D)UyCJ==(%^kc-yHl zvi&H{SK-5Qr{0zw?(j*675#e%{^bY%teXI}U)`RsJZ$0RInc{}49^++FU;{^OL_L9 zB$m@ZMgV5~-yr^4)&EY<{MW@Vi*EYm$W;L0e;fEeK7Ierz8wzK(Lws`eU1L#H?dIK zF5+oe;qv~+C;zsE9}YJ9Mz=59Dfl1L{>S~M>mi`q*)Hy;X8!wk|HrrIt3UYxu^*SP&4=}B^YBju#TQjQHMP9<5-m*C3eTKY z2K2e|AX`f4nNNN$Pg{J4M+M57#!U=OgSSy(y8$i={u(8FEvYZBQj}}E-jsF%lJ?-Y zzf%%(XasxzSI4uzLf2ocX>~w7`b1(*>jZNQotvNFxhF$xe?Id-IIYMRHg&iBeOW0> z{G`$@k))Si`M-Mm>VT%#?|&skK|m!`P*71R>24H}D@d0#N_R70gop_ON=l6G8Z}0T zDBWEfCCxT!3^w9BychI(KmPvw?XSiA{lq!vIp=j=&w2LNxhfUqC;e?4J(?SXg+O*2 zbK}}dM+9*-&tFl=#NDu1X$>dBZYHNZjY%1Y0Lt?^ptn+-pmG`fPBL~8Yg+vq} zGsHinrGDwg8a$#)usQI=zIq-Kf1#dV-)~_ON$yMgdbUosRWwe09cy46H}huRX0UCA zLt|7}KOb569)Nrb1Rz-DrsZlxu_U1VA$t*welZ}@K5V`3u0bOF2_K{UK;Md+?*<{W5l}p7I^Cg~MGvB-YOZ@7>THlI-t{_ZA*+0SCJ-aPP z&La19Mzv#pt(QruVRd%of$OG*B7gvfezsAnmJ-}JD>dEao#F@YH=x58UK_KEZTE8& z>7jS>K47`MntrSW6-uJzLk!W%=}R)dc!Z>)v(yWDP?`7IgSW#<=rF=WJRYcB<=Jzn>W6>|V9F^p+3yS`It zYNm%xcOH0Gg^2KT_epq7H`>C)?nxFV$(v~f^41QQ3{zJ&jAYHOnpib4pg|*wgrej0 zC63|d_(ub6nE_#vq2(M}78Hsf1O0k}8lmMvA@MYRV!+p>ZeTAdxTcKyw&h$L(5)qg zXE|=kScSBHg5%W ztKlxsU)h&q9LdPXrGm*7(8-lcjAoPIZ?*NcD8UzebyWl8>4?edjG}1o0?dR{X-|N< zeb2XMcUPmwo>&xL_sUEiPM?HaLMxn6RJpfnY+^1}eBM*>>0I@@0V>*f2B!#c7c&e}R3 zTzv5z!`58wrB(-yMRD&JcPD{S4tZ@utGL5#dUM+HxR5H0TJTlhv`*AO^*G}|q>(7H zN?^XUYSrOW$l<=_zNZHzH2(=y4`Uw)?Pr*Dizqn6QN?1HbU`+A23j2+`X-D|R~X*f zaGRArDt8x5z#XO>GKk6hT^s7euGbul8HTRc8S+>Jz6tK$K%^SzDf+EzU7u{ga3rP- zGTMBJbm1Rd{hn9i;_N-l0=4U1rbK7*!3WO+-9l>o;x`2c3`|g`adESCld}*mwR>yb zIPLMovuJuiJOijugE;#3xQ@w#BZqCdOki3qga({y4*j_}Ul9dH+My@d+bp^C9sJqY zCDd`rYuvJ5bvxLL%LwtO3I-U~lD!66Um}$hoxxmh^!xflp8J@CADy>kveVD?cR=)B z35q_zu!D(jf|5L3BwUa;V>dPg$!bI^;F=&ot5_;msR9V6mx$JNL4?-9ki=O0!a&w& z&JvSzq~VC#LUnu=8S-2|fO5flTa9e_jqFmy`yx88NGei?>}0C3r4G4qR!GUFWT1v} z(8q%{WdbB>XG1hlbO`fi;9HQmu)|01Me*|_@F9u z4-%y;558-7k`knjr60l%E|XPWUX&G@#i^04ncLLRcXSSYH`3{m$P1mX+ayt}gS@sc z|9+9fb#|;Oa(_;XW5+fXD`^@t!xf)KbH2_znAR-#L1Rp%UBG^vV!%hi_}rv_`$-T*up5{oQpD=RX_ZG<`u zPMmY9oNi;@a;rD?^*^XG%dEp6ysSx}@~H6&p?AeU=mVmA&;^P0wIcz#;JQs49s~=U zglvGX6oB(4N45W2NLYWztB-jiv{?Im=P|Zz^^EPr@-~X1yZ^okaxqnkVP#^^GTRWk z-5ZhWE#$Em;CT3TOSsiO);miPM>Hp+$MeJ9dNhdQ*=c`lkR4+NOHzWU-rCWZkLD~& zFIzWyv8QtzPa3N!_EP8VJ#?vSDJd5E<~7XwNWd)P7WP#(H?K~ka!Hb@BI2E|^`rXe z8~3_7*|}U6LMu0NJPbBW3hpX9(5_1DMz~}9w`?WWd);Ai`o-cSN%1i$r4Pt>g!->y z+%@HbVgT_|nphU2GFR0x+Way*QF6OINx><7UzKq&9oA^zw$L9?5Z7U4m_B_k+`tuFB z2S91n;pXLuNgekZ#mCu5MvOLm`8=@DyiKxO@*UDQ(98li{*58q1?Tu2=y*-Dnr(V<`;|UK3=A&(pwQiYGpnHrFTcM z_X88WbhyXQy^R)Q&@){6j@*1Qo(c0T@{#O?ovU70oM{wVPLJtBhl5M=oapt2gZOJ1 zN$7bmvPFP{jsL!_XQdc3%7tT3(&+s&GLC);{Y})BY4fQ>u_d9(Ic*fSuHk~ozCQKh zqnbAcrU^8P6tq-FAmkK57pC&_uh={3@mbr>(iSh`s|clYu@4}c!@T}Qv9DO~jikx8 z_febR93QBA>Ri=*?iX}K)Eb5ZQ^0f=3(tEjAhFeDXcq7ZKjuqdv} zH*sAzt61Iz>l$v-Revczy4d=Jj#&?Z`_uZFueEmPZ3sGvR9`Tvf z+D&}7@YlZQgRnE9KtuIrF|l*dFdiYSd=s^)jX%{X$UXxv z=TsNIhSu^jH7=OKmo9iPZDCoxi{n_as(NA!lSn6%p4C>5y)#+%k?U!q={~81Cmc+hH^CY@Kus=+6L#%_~(X)l5u_-TVlP zwU@Mi%vin>PKX%_b0vJA*CWxCi64VNVHxXKf06Y)&U9<&`^_>GpzL6*dw6zLc|Lci!AX?4mC+!-^?I-NE&)fb zj#a7K=a8bO->VUQ9q%903T|8PYSY>>P8CU4)NyuFuzLMPZ?LPM&{X%GtmO;<3DHG_ z8}$NqTj|iv)7Fe1o}$(T&c$QDe5_pj)>UaPx>-Sehggiw!hG0pv_QeEI=Xa&rP3v( ztGeVbN(1$@&ewuXXD4+R2ptc!m}iXc&Po&(RUOs`h1KC%*t}OQ*Vu15m)#0zRxPeg zsrdeE*b2r?wlHsQ4QJ9K*`LSoZv_NVGh7AVr#;ox0!vS2YKO}@8lobGuVz$%^P@l< zXgbYHY28i%Yqd3xMD9DRG=l_n4KR9gRx>Qjd_I%eU)IYN0ZS`ayKUgmzSdzwy1e(b z4qWNc!ZIC`&vB?_dZR8O+I1*T#eIx%|Hl{Zjxp*&68g-PV)@_WP93<(=1!L2clJB? zceoB-cvkYNW$FSKgi{Bs3J3Kl=PyQ)+k71%|BNd|!VSi1u?mW!vu?qV^Lw6M(2Icx z^ZQjM0_fJw2al%XICST>?1aP#Q0>nr`M9>Np0>WM-bycX|9mNDogq6-OzTII$nWTH zZRjbmmTI>1YnrHf8c#=$YhhIeL!1s4P4nq#a=Ep~)TSQN#!$R@K}FKhGE%S_JgN(A z^5qp|2gXU!c`Ps2as_*p-HY)Hvo!mQOzJ+y*PG z=f`dKSlbm@h_&Jy_2AyZ_K*s4lwewu?k2T`#)O-dPq}iQ(q|>iuwOvg<7N%|7 zF0_PT2KByPD*Om_Ba539=IDO8PF#ixliWAZ-f8aV(cF*7ri{{|uFDAr1RscDOw9Dm zJv?klz5yHwz8>7D$}D*Uh_)}X-8s+fG7*;#UZ~D+bC>^8#gN-e8^MU{cw2y~+;wpc zwG)}(;4tB%y`ltk523X$MXcV;3uj>INn%&ycmnjz6FC|z|s{6oeZ>sRhx{*U?<55T#Tr_z3 zOcl??4{qZ;-ME2mv;9Ya#iWN8e1~n{sciN2Y6l`J+F?%AG^WdSe0#{ZnPZ(F32OKq zD(ni?$r3%A4~>Vz_O&Fn^S-Iiv(L{{Gvw)tP}^L@m)G27QrRAI3>R^vpgu+t_-`|A zU!Wb9X+EDb^-jXh4#q>1mlyo)8QsAFKYQrKOBeHlVLcWq_2(j$eLbu8i7qdFPX?mf zWY4vIjy9oGA}8wf(>NUWD|G`-xXBqZWIkrc7dsW@!pOU?(`74oJ$gC?Ki8u7Vt`Q& z=_+4Z;O&{4@${pl>jr50UEgHdSsQQ=BUfJpJsG+iLprxKZ(E|>%R{SL<`ylbmuJDn z)f0iKC37D<%$~~AO}mzHz+5nxq9@qe$|X6|E8}WzohGhzMtpxdUmi+Qip`i`KJ)4E2wMR*1j|}b9`WR>KzhTql*1z~Z$ZfYy`P^5h zeO&fpx6(df;+nxdcHE4Tmi7Fg5st4R)wKZs3U1CMfT6=&Jm#C9EC4Y22rT~v@XUNBWP@#bEIQm)N|X^X9Uw4s zZ9&s)b{)EH0VD|+Iruj1f6wvI2J`C8uKn%!y^n)QjJwrJi+;IPg5MaFL_MEIODm9h zVR{(%?*Pn4`tA!EtJVzRolF+0cd1Ff;k=|~rX+83 zo$_R*B|v;=qDoaeWH&7h><$v}EAN&w=8=vu^A7ItDeu%_O?a>Fwe*>t zFx}tVh7fmesqke5c@WyNQggJ(!G`;9Qflff|G14h{{PX7iwCk@S`Pop9Y2l0o79OJ zCAAS$`HiJUCgia}rAEldqkTK38{iVSTsMCh+t_+4;#=z4keN)eK;b4N7u_=_wfteU zW-Dl_=Cc9Yy)Cmmxe-FGTuDUnz1>^wk@f}e-jTMoYSfhUanxL`EJJCEF6?{K&4|;K z<%F9hT&6)4Z}8fuqkYQQ*jk|U6dWAwRcR3)z@M%w`1{b`xYsm9EI6J$x)414p+s)w z4$yMZz5PijC)miL7N_{a8B>wCPPDB7tCNlDL`GPjo6K}oas!fDIS9%=%U|8u2Y5Wt z5)ryoc6pWUa3|m3)77jI{rs-|+Hez_$t!1rNQ=-Y{SW+Nkw_rfYUmJ={3i=3X5mcm_CPSSBZj1n4J z-Y!xGR%NSHYI$1*X+@rCZtP5&0pAraqZ!|2Sfi^1?{{PT9Ba)HbyqolK*89Lc#89` zYq5yNzXqQqdG@x!ggYEV`Xw3364#O{Ma#H0~^;uIMg(XRYg9bx&XJ8kn5s z<^B8K*dx01uJ?wB>%ZILB+|Wod$D|S@LK}?f#htcgzP%`A-6EW-&fJqNE0iESZy_T zp1$=biu8sGI{^{g=5?gfuU7ffKJo8jbMT#Kc+HF0|Eu#~uJPBscw^0wJZ*o)XSZ@C>0pSw8qd&_%u&)|4UJ@y{)^iaEDx2-cG`7Y_r(# ztgVi?s>Pm>Ma_QiXyEy)p8#`D_OW@bWoh|HUj#Av($$N_Q937M^bg>WZo)OtTKN3} zD6X0Mm-zs5F{dWGc?c_4xGfG7qH0w=pq2MAw{2WHl1v69?mW>+%nX`X3h)lgDX((h z=Nw?I2uE+sd{NW$@Jh(XL|11>C6sE0`W2TAh#LM=u7;n^HE;Zm1Ic8(#4j3k{P+*y z$vY}E4iCRXc(u3o0&pdZ8}Q_!lhV`L?M9@bLvl5VPO{S~=lxW?181j_)VLo*xZ&|U zf;TO5!?2^i>;pO1u>~B>X=>j%s6^^ynx~1DRg#1)Y7i2&c!!ahA9uRWcVCM}kK5Zt zH!5P}aV@vE9eL?fKHPy4K1BvW4D^6Dw)^f3&dCvyayIQXE~+>oMY=fV=73|B47|as zdrT!=`PV+urHhL5qk!Yo(2);*ubx?lv)FZZ^g$EBeb{SDh2=vKaV(xHl1JRK5vn$7 zCsDP40go&GZnPxmvDjM;j4nNEK32sG_WDLmPo|&JyMgBf@)B_75DiTE#}@$KD6M>l zBi4VXcw$p%CHKx`PVgX*k~%e;HQ{Asq9yXOr`C4HQ`EdJSlyg0Mfo!+Q@FrhDSlg@ zLOqfw5cXX9n<4WWgEJ>WGy2o4z-oem+oQI+v~c@joHAu2L_UN62M>1S?ya@(`!}6l zee{1Pj6X(*)-txqh>Ur!z(%722!N`-jeO;hIyQzykIhB!WKaL)@poNM#+8-fb5|G4 z%q-vUbA%`s)&pzIa^Dh`c91`4H3dO@j&)d>!Mv9*+rmtlBi7NQs^KBIb#P+l$&2jP89i%$Tlwa(B`2<_-4a zG}wRaGTtZPnpRIA4+QVGMK7;OXh7^*Wi$zy0_D{(_Dj0xU8w&Z`6o*TZ0wTdDNW{q znwIJ2q@>#%k!mJYmS3;u@0w;14|8cOINOJm3#qN*h(c^da_Ngm-yUti{ZQ=y7k*8k zSG>9Dez7I%A6v5_S2cWxFTOA9Vkq=l%it#W^NS@8wW$o;YY=-`Io^M_#=Bdd+z;t1 zi{yLv!0etOYjAaPyc_OlU+-92(j55Q5G<=-`RLfa97UiF;#*>OBkEqJN0Qp^?$G2; z`$oc%m(_DX|F{cev0g%B88rphi9AFv{MgS$3bC^*fJ6b=Nb^#;Ut1)+FoLfl$=@=) zULQqb5xyNLCM@=xEAlLLdz=HYdCDyo9`*N^a!;DuKeyU3mXVg0wl6S_^5TVK6dn@( zGJSk~Pc7N2R;q6S)+;!j=idL!rpJ{iRtO|B_t)`S|EZkgcUeAoX+j)27>>I-{^10* z#D1(l9UW^mI`i@F*RRRHI3g7Qfl@Fgb+86`ras}99xQJW=!|JG$;meXgSq?8orv~W zfhP-865n+-)gL>)kaZt_fxx@R+Q-WIPYY)+cq~Z#7JPpBC{2E(%==F&PZs8XI!lr@ zxM<3?`xpC0`>I4i=9$c|*(?_CX)|adbgpL4lAtv`V$!Sgj0oW5xsgkDnGtDOAN@Te zV<4(d*Q?mtsER-T8XRt^j6$G%FA(ng`)+Gkv7v%0^>U;ni^co`;*||5aiRHVDY6~u zfKC(8d-6ck_XWyg?S+P$b4cH8P}`g4bfV$wQdxCgcSPG$%Xh$?fCrH{PK}}TOshfq zr8)agyIq#S!af=DF!l9}mr1Q}QLfz5N) z(_!(kj6@O)FHQ}^NnSMFJr=5T&4sLz4}hRzcJa^qtAnDmi;-7a@c+%tJeP-Ile|-8 z_(A}Ee{ToY&emm_-C~4hiT*-0em^j{w1l45Go)`1YR;OYLF?V(W&YC!taWZ|VJo*F zfKS6=OetP$@I)f2$^1+$?^;9IK&JKdsP49d%7rnY--Eo9Rj~|~2ANgA4Wphj9cvG9 zFJi15kV18;zUjQ%6bUVk-@b<(C8(;2gG@_NL9AC@X`+_%RYo!0QIA5@n_KEh!SKUj zH_=<^p&`PXq7rK}P+AZClfD;%T&p=4rKYcPz^2IadTx!+2VSl{TN~w!p4eSjt}xpj z+iOB#C#B4-HlzB0lvW-0PRzCbG^vIc;`(Zd^zNN#`-b$6foiy>vr1kyik8J@kHswBxq=jVAkU$^qRQ6ZS~Y*2X4K&0 zkoGmkh!*b!%1YlpHbs0lo!0>=lJ0ChuZXpP1BW>{ezys3pS{*=X0N@yRz@=eB+HDw zGY$zsLM!SLYn^Q9Rl0O7If^j2r>@@H#M~_fhv6}Bo$5`-J%X$~*<(lJ`=-8j7(T7K zo!`F~+2#%&yhktDSx^^at@FYLrF$j=cwx2RCXq1u^?;%s~3AT}424yJvGWr-^!ok>O9@qj5_G4uNLIg($5r zuiObL{UR8wTnZMPzf8nXr}5Y#PxQj+f*Q()!FI>%-Tw`<%EDFDXpBx&Z-R#XqpD4T z5rh^rZQ`?cV@Uy&Y1^LkVH=RW8pRU`XI|t)9861Loj$o{5zomGZYVk9+O{U9irmBt zpy~n{Ti?++D4I;A>N zk%+g$$0l=%K$A9WaZF5<^BY5+XwUvqyoesk3&*fI#2c z6i^u7cG4hCqF#2)*983lZFOi)XT^3w4mIMZ0ytDM{Q;8!py%v9SOt7e|?ns!xL4u#<5-TR# zqG-?x+Tn&S?6wtr&fJlJ8X)Chapc1vQgfL@k7-9ss3Jv``;0+gIoExGMAq#I=E#}Q zb_bBa&`YF*>*6dGjf*R#>;Sg6=Y2$8fx(N=>wZJ;ajd}=x zBdPDsv0qT>CW=KsvMWv6+S=6cFE^o7A3~}TJDyEi+VhiZp%>XaEYdDbR#(U0*f}HN zc3_2F5xPkN=#$Ys*y3ijDGL$z@opiVTs^GWE-F}Bs!9&q{vu1qGpz@+Y3E$y8n=6f zrM;tU39|swo&-uoMdM6Bw63SFAf(Y=t+^cn2p5H2J9bqACjPO3K2#pyX66dR^Z8Q> z>6G-~!psczrItXK?oGr>D+69JSyW_IwJx<%c2qNy<| zJd^{LZRtOnl5;4cKt~iH3^UH1}D`IiF?1baRDzB zj%DkIqY9FJfqT5b(3R{4Rwv{agowhHo34MIzg*3kE$!;eCqToYuov1f?ON;wa+I>K zV}UM_6%Dyx(?UoM^c4b<^iHPgPe--JCT5qd_1$A%qG@^OJ}W8Z7OJy%uUk8+j z{i5ZQSeQFsBAIv6$d>o2O}+ zYww^u3zr*=Dm$d?J#*fcdxE64B~lN?0;#r>7n-9vp8E^w8mf2drDAtOXQ-IcrMH2; zA!Y1puo>^+84)FCrGiwkKoHfX=>Jpc21lJmbD#tMHeYiWfT(Q|b=n^EuJG)ueLqiDePnmGo zs{0ZD`_U$rMja<2I(yC4e~pFt(;bDCjZFkrRE~XhJRP)mhXJ%=H|mwS+Ob_K+ZGZ8 zIpyQOu^VLq>7p8j56-0U9802Sk$Cz36f76*KFydo<9+4q69$pT$k7;f$l7LlTcJax z`-a67k?tDQ`?N!YXujWqQ@-dr|Gwk22O{uFlGeG4H-m#BarNhygrMvVmq6bA)&>A< zr>@Ax%}yh31wtY3c}|MEWkAuz*gB=b>r5u-?K}}$d&(z8%cCZd44-#m2ol?Qr97T6 zF1Tx}<@tEf-`Mw_Q3Ph?A=D5%LjE6aDhK8_B5qCT;bex2UvjZ>dw>xBYFGr>|`1rJP%8Dr5JC$f90IS;FjtWnIt>u+5 z{K9`*RO-8EA?=xdmdfvARjToiC{E%*maM;Mw?}tZN3m;Mn%ZgfE%2N&t`3Q>NR9wA zq?dfoCOD0vKsdid3JNgts=VFi?dQD@uz*n>dgw0u1yIutTOsvn@ z-$UO9Wo<%a`)doucjCLZv~B$QKNj57lVw?c$6zh6c4e}-+5wXL*=zr%bjJy_gK$o1 zguhq%K!$AA_PRTqKg(c0x~8S4(hF1bNoPc)0ITj83Wq*_o+FLNN~Fe5Kb&~#3m4Ab zmLM@?{9d=K`^?PLi=1Wm!qoYCpDF8FAL1c;v&)AJA_7y;@eONAXffqR`eocs$4zESJ$ZCnf9%h?)!3lpQO8RVH-=^T6$h|w@t z%;T)8s(Q0;Q|k+il_-QXgQ9kk{H$8r!zfFfRN|0w)HCpv++GKr9iFJyjM)5nUeNlb zllYZHOB6qX-7bAXLoQ$B5aAVB15Zdc?SAUKT-mPZT$C$y2uV^$szzP!7E)vvxu_4+ ze%Z)&Y^|qG%OxohqH5pfG)0MP2skRGsJXgA?_jZ;vd+)Tx+3EH5`+90W$)BAQoDS; z@$JdA+nI1vWQq=3IZkp;Qox{B?vdptU-yWmY=+%OW>5MC=rccz` zv;k|y0e#b7Z6~|Uvx^Y@z5V*bHV4Y3U7-i^T}ElI$s{*0*R5K)4tV(j`+9xC^Gavc zIswCvmKX0QcN^ubPxFUSRBYSdW)5pSiSgF5Nu!2wIpZ!zW$|HQIaOB?D{4u`$$f8O znS~2@i1W@TU~1*ERBA)CgqHOyD!6W5Ntk$>_bh(@uk%& z>O~F&D5*nz{&x(%9!{?!eMA)BCmN>uG$IdV3TF~`4MS71i2HAJu?GA&4tlh8!Gwnu z&pHS|Nf&r6SkpL7-;D5#LnW7rGF^|BJhFZ%a^aCXWkX!Mjn_UOig_@JB*c;+C7 zrT5IS`QQmY0U8f*KOG7kUgi{%^O_hYG8()&;rt8XhgQHZ4y>Exm6HQ5Dwhd5SDt6C zQXMyQBH?5B;oo$`w-+VogpmE|nj|G6d0<6ob#6BV z`r?M5{Z>03J8fltCj7@H@#MaAQWpV=)=ayccnriCHz+E$WB9&y6?qH%Ixf{qHzSzp z9fqY=Pnp%PCUE&wR)Kqr@OM)5fQgsSon%anhc0;hxeN&_S2NAeA;7?yP5 zb6h^SHa`(~IYkwz9Dd?7A1z;=xM&rQA28`d2@7+-q3cAqwk}x&H%>s?f>K-?P*dWS=yvbKcJMT3p0tNX3P)RC<(@Zf1kSlPs~%5DSj#Hj#yh#G%{Crf3WRXlnHg(R zVOLbUZ`MTOkkGLO-vA-)c4zG+DS85dwYUppZ+~ubsrZ~$j?f$9!Q%^#y@`U7{I}&S zelg95&qmNVG9*)ju3Xl?#v-AfW=~4VX}8R$5Bzso??9UL_2}5v;lOLaENf^O z0n56hbM9LXfx_6!mScU-gYN%>}E+1o~bn)Bc!)Z>r+ zB)`y%?LCTw6&%%312YlMAIK|e-2>_8tL{*2f>>$*iO=8CY{P`L91$?#E+)B?lQIL0 z{-T{87zqu5viP?-UXdnf<~j;tokx39&M!Cp2ZJ}j07wGvVWn-yH11l0kWDRTVFFPez;>A(uaT*@b^7g-SR0Wzqr59bSi4*cgI=R7rTL<4BmoEv}(?r zzqcS-^TmLFl?E@1)y?L`lc?auf~PewYvr|f=1k?MJtD*{lfo1@Y;?JX{5C#BEjjO} zcGo^b8z1yKh_1$wPnLcb{&B+l#|rjmJLfTwjgrQk&Ycqog}SZJz6n=%r;iDHC z@qwG+7&j#G;JI>ev_(-WQbA9vq2=DBL>aWecS;EaFM4_R-oJJ`*hn1_2C^)%Kl5n~ znIB=e7j73D8JUjXhFG?LbV42;<p3gWQ+mb!qWm@Fk}{r8cIK9-kNu+g z|K!DU_`t!Ad3KV5{(iwJg279|Q*@}So`YlE_Z_ZHVv|r|*MDhIMS*|=($0YXr^fFe zpF=M5;sfT5Q^J)K{^s|Fr3vx7*>Gtk>Yoz-J$6}MIf`mcp3ftWBmeda+E_fKW~-dxtxsTYg|x=zu9db4Debyp@9J2tt_b@82Smi`3w$Ha;Z zRaXB8O!0lp9V2h0d7uoCgvan$v;Uzo)Ck;S*WsA**}1(5w{|o#2?^Y4RSTH?afIeS zBmXfaa>c2nGjL`pY?7dzzENA2ZK1@4SCstniyyOipnI%qVRe6;`Pl&*{{T7 z+$N3IB={G7hlokG3kP?GNchDCfANX`p0s5OK?QwrM1-qx5lW>vAa)(OI+DGV5V;OY zC@toTRJ42k+%@SwrVVR${W!TjR@~2dL0BDo2vJH+xVAY3x0*paaMr|!@O4Ra>tnC| zNiMvODDTbI2=*@is~q89y7dnviq$Sn5sVVMkAYfr_AK(4C=kOyBsp&+H6Zv$9tw;t z*E>uUc9GW(H$7eae?YOZ3&L4fQHj1=$1`cE3>kF7E2uK9h zd>c6ctHbHGH+<{pd;Tq^U*hN~f3Mq)Dhizu684!}Pb}Y5@g0tpUTzbd75KA&$R8bL z9zLOBaE1ggrwi=pk<+3p1o)v5Jv%|Czjkrt-1H%?6^ZCyF$IDa=9y!yl4MIHoS#n$@LX4! zlHlc4lcF)r4Q@W877jgaJ@amn@MN05&)=VoRQM(`s?)b`yV_P(R#wv~w=HhX-RSA5 zQ>W37AKupxz!$R3DYh9^*^LW|NCCG$?i$u!Q23+q(Y<^TzQl0-dcL6D*g%UTrSO^| z6EKtN&-0{ z4EgiEpY+~;93TwkZDW33DLyL^8N-k**dPp1cbc0K-2 zjNeS>=%YUXPWV5*{zotaN%&-u?rR$RpQU-WdXwS5vN^s!>CDm5*&BBa{_KR;4!>MR WHzZJ}nx4YH9?L2{EO=o2^8WyzSa=)& literal 0 HcmV?d00001 diff --git a/website/blog/assets/markdown-lists.gif b/website/blog/assets/markdown-lists.gif new file mode 100644 index 0000000000000000000000000000000000000000..d9b78e58dbd035c7d43c44d4a8accd43ff8a58a2 GIT binary patch literal 18118 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 z zi2*oLq(=}n>|hKrA~Q7huxCtGcw#y=E+H$0nveQ8GI zw_xC8Y6I86Iae=UaLM8p3Dr-84Q#e@9=-`!#m0lod5XS@D3zs={y%iVwYc6%Mn@6ezSBLv9wf7ATT_2k0 zET0~@Ffn*(a-?rT*tRrrWoB$>dFEPC+gN$~H<`b9bz*4vzf*y0BCW^XUg{Ua6l*Bbwiy=U0kJ1TO-_TFY!X+=J^NTC9%534+Xp{%@-6BeDT%9QoV zNxWEb4BvUC`BG{4iQL>!nVuV^T_gEwCt4Y4S*aaD)(^Ls>is1L?Uc#6t_u(6IXW#l zM22ThZj=&JW1NYV*gyLaczk9x_X)%LSv((5&zYz^=Kj8NR4*O1Uv(F@7pUoJE!g2e zo#*RKn2Q{POJG$|X|8Jp&VG~|A$qvQzEh!S%4_l0=!h8Idn${PS|KI0JmAbAf! zS>h(Tl5l4p@AbYC-Sd(`PAHYTVQYoo10&Zu+OLr8x?|B7aH$jCp$M#!jtY7`rNs@KDL3hm?nmATd2_anT$40j(l89p>wtdlN%pO;@ZV7pk?sg(Wj;!0} zvcvl$O+xy>M;`8+GUib;?4~eCc-FfP=UTZ3_b65l9GQQp; zGlv9<=B~9i?xB5XZNy_O)>T6%QrA_r&Dt3}=2+HQJ;<;2>u`#ugVaur!B9dIXYYvw zM1x#AOP0e1jbAhf{`wMr;<0seNcohd>7Hvym1g$v>-GJe+Mi!1b(q2&ll7*2Yu@(E z0dM%M`Dlrh{*}O_cLNXOF2B3FdN>J?m7_e=)wd9dT=Xm59N!yCJqNwX$DFbus^%-% zk#;(74!ybdr!!PfBT$tAmU4zIPuV&|pChP7iue#JyJWNl1=*(1r|q~{U<#S7boR}e z5_A*?nI+(}P-HI1{U%V*Fs&8;ut!C@Wt~4cjWgl=q-425&qwL3^QMOZ0$p0pl9EOT z9p#NO7IBMTq0*K&_>;0`z)4pv)dML5JIq%nSa-3co`8a2338)9L&@j^isf$qAs0* zguK(FNUxsg-ntiDw$JwqYJ)bKb<&6D({!6<_%lvA=U0(IIU143LqPD zT;Tp=U5C8fs6XUYj7?t>U1@R}I%*ihw$;<_m zgwUMu8+TP6MbWLgZu?qlpJLeIWj@LGcmr<@cD2(C&!12ET D?i?%( literal 0 HcmV?d00001 diff --git a/website/blog/assets/prettier-revolution-conf.png b/website/blog/assets/prettier-revolution-conf.png new file mode 100644 index 0000000000000000000000000000000000000000..c626b6b22ba7a2449bdf421f9c0ca169d0c60bd5 GIT binary patch literal 31025 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 literal 0 HcmV?d00001 From 5356db0e696b970bff91a42bc644cf90c267b685 Mon Sep 17 00:00:00 2001 From: Christopher Chedeau Date: Tue, 2 Jan 2018 11:55:53 -0800 Subject: [PATCH 008/277] Normalize GraphQL multi-line strings (#3632) * Normalize GraphQL multi-line strings See discussion in https://github.com/prettier/prettier/pull/3605#discussion_r159120321 * split --- src/language-graphql/printer-graphql.js | 12 +++++-- .../__snapshots__/jsfmt.spec.js.snap | 7 ++-- .../__snapshots__/jsfmt.spec.js.snap | 36 ++++++++++++++++++- tests/graphql_string/string.graphql | 15 ++++++++ 4 files changed, 64 insertions(+), 6 deletions(-) diff --git a/src/language-graphql/printer-graphql.js b/src/language-graphql/printer-graphql.js index 63c2e752..154cb37f 100644 --- a/src/language-graphql/printer-graphql.js +++ b/src/language-graphql/printer-graphql.js @@ -126,9 +126,13 @@ function genericPrint(path, options, print) { } case "StringValue": { if (n.block) { - // It is not possible to distinguish between """\nabc\n""" and """abc""" - // https://github.com/graphql/graphql-js/issues/1188 - return options.originalText.slice(util.locStart(n), util.locEnd(n)); + return concat([ + '"""', + hardline, + join(hardline, n.value.replace(/"""/g, "\\$&").split("\n")), + hardline, + '"""' + ]); } return concat(['"', n.value.replace(/["\\]/g, "\\$&"), '"']); } @@ -274,6 +278,8 @@ function genericPrint(path, options, print) { case "FieldDefinition": { return concat([ + path.call(print, "description"), + n.description ? hardline : "", path.call(print, "name"), n.arguments.length > 0 ? group( diff --git a/tests/graphql_kitchen_sink/__snapshots__/jsfmt.spec.js.snap b/tests/graphql_kitchen_sink/__snapshots__/jsfmt.spec.js.snap index f5683909..72d49926 100644 --- a/tests/graphql_kitchen_sink/__snapshots__/jsfmt.spec.js.snap +++ b/tests/graphql_kitchen_sink/__snapshots__/jsfmt.spec.js.snap @@ -110,9 +110,12 @@ fragment frag on Friend { foo( size: $size bar: $b - obj: { key: "value", block: """ + obj: { + key: "value" + block: """ block string uses \\""" - """ } + """ + } ) } diff --git a/tests/graphql_string/__snapshots__/jsfmt.spec.js.snap b/tests/graphql_string/__snapshots__/jsfmt.spec.js.snap index 72c3b20e..5636e278 100644 --- a/tests/graphql_string/__snapshots__/jsfmt.spec.js.snap +++ b/tests/graphql_string/__snapshots__/jsfmt.spec.js.snap @@ -14,12 +14,29 @@ abc type T { a: Int } + +""" + a + b + c + """ +type T { a: Int } + +type Foo { +""" +This is a description +of the \`one\` field. +""" + one: Type +} ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ query X($a: Int) @relay(meta: "{\\"lowPri\\": true}") { a } -"""abc""" +""" +abc +""" type T { a: Int } @@ -31,4 +48,21 @@ type T { a: Int } +""" +a + b + c +""" +type T { + a: Int +} + +type Foo { + """ + This is a description + of the \`one\` field. + """ + one: Type +} + `; diff --git a/tests/graphql_string/string.graphql b/tests/graphql_string/string.graphql index 6f1d2019..3a174cfb 100644 --- a/tests/graphql_string/string.graphql +++ b/tests/graphql_string/string.graphql @@ -11,3 +11,18 @@ abc type T { a: Int } + +""" + a + b + c + """ +type T { a: Int } + +type Foo { +""" +This is a description +of the `one` field. +""" + one: Type +} From 6a953e47b576e19ca64e5a5389839f94ca15735b Mon Sep 17 00:00:00 2001 From: Lucas Duailibe Date: Wed, 3 Jan 2018 01:29:11 -0300 Subject: [PATCH 009/277] Print description of enum and input for GraphQL (#3633) --- src/language-graphql/printer-graphql.js | 4 ++ .../__snapshots__/jsfmt.spec.js.snap | 48 +++++++++++++++++++ tests/graphql_string/string.graphql | 20 ++++++++ 3 files changed, 72 insertions(+) diff --git a/src/language-graphql/printer-graphql.js b/src/language-graphql/printer-graphql.js index 154cb37f..210757d8 100644 --- a/src/language-graphql/printer-graphql.js +++ b/src/language-graphql/printer-graphql.js @@ -374,6 +374,8 @@ function genericPrint(path, options, print) { case "EnumValueDefinition": { return concat([ + path.call(print, "description"), + n.description ? hardline : "", path.call(print, "name"), printDirectives(path, print, n) ]); @@ -381,6 +383,8 @@ function genericPrint(path, options, print) { case "InputValueDefinition": { return concat([ + path.call(print, "description"), + n.description ? (n.description.block ? hardline : line) : "", path.call(print, "name"), ": ", path.call(print, "type"), diff --git a/tests/graphql_string/__snapshots__/jsfmt.spec.js.snap b/tests/graphql_string/__snapshots__/jsfmt.spec.js.snap index 5636e278..601e1611 100644 --- a/tests/graphql_string/__snapshots__/jsfmt.spec.js.snap +++ b/tests/graphql_string/__snapshots__/jsfmt.spec.js.snap @@ -29,6 +29,26 @@ of the \`one\` field. """ one: Type } + +type Foo { +q("docs" field: String): Type +q("A long string of description of the field parameter to make this break" field: String): Type +q("""docs""" field: String): Type +} + +enum Enum { +""" +Description of \`one\` +""" +one +} + +input Input { +""" +Description of \`one\` +""" +one: string +} ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ query X($a: Int) @relay(meta: "{\\"lowPri\\": true}") { a @@ -65,4 +85,32 @@ type Foo { one: Type } +type Foo { + q("docs" field: String): Type + q( + "A long string of description of the field parameter to make this break" + field: String + ): Type + q( + """ + docs + """ + field: String + ): Type +} + +enum Enum { + """ + Description of \`one\` + """ + one +} + +input Input { + """ + Description of \`one\` + """ + one: string +} + `; diff --git a/tests/graphql_string/string.graphql b/tests/graphql_string/string.graphql index 3a174cfb..dea48a4a 100644 --- a/tests/graphql_string/string.graphql +++ b/tests/graphql_string/string.graphql @@ -26,3 +26,23 @@ of the `one` field. """ one: Type } + +type Foo { +q("docs" field: String): Type +q("A long string of description of the field parameter to make this break" field: String): Type +q("""docs""" field: String): Type +} + +enum Enum { +""" +Description of `one` +""" +one +} + +input Input { +""" +Description of `one` +""" +one: string +} From dbe0758b487be2da74a3f8cf4036472685d75fb0 Mon Sep 17 00:00:00 2001 From: Ika Date: Wed, 3 Jan 2018 12:48:46 +0800 Subject: [PATCH 010/277] chore: shorten filename (#3636) Context: https://github.com/prettier/prettier/pull/3627#issuecomment-354935942 --- website/blog/2017-09-15-1.7.0.md | 2 +- ...ternaries.png => github-diff-ternary-in-jsx.png} | Bin 2 files changed, 1 insertion(+), 1 deletion(-) rename website/blog/assets/{github-diff-showing-a-ternary-containing-internationalization-strings-appearing-inside-a-jsx-element-being-converted-to-use-jsx-mode-style-ternaries.png => github-diff-ternary-in-jsx.png} (100%) diff --git a/website/blog/2017-09-15-1.7.0.md b/website/blog/2017-09-15-1.7.0.md index ca196eff..8913563e 100644 --- a/website/blog/2017-09-15-1.7.0.md +++ b/website/blog/2017-09-15-1.7.0.md @@ -55,7 +55,7 @@ We should print a ternary using JSX mode if: ``` However, this heuristic caused some [unexpected formatting](https://github.com/prettier/prettier/issues/2729): -![Github Diff showing a ternary containing internationalization strings appearing inside a JSX element being converted to use JSX-mode style ternaries](/blog/assets/github-diff-showing-a-ternary-containing-internationalization-strings-appearing-inside-a-jsx-element-being-converted-to-use-jsx-mode-style-ternaries.png) +![Github Diff showing a ternary containing internationalization strings appearing inside a JSX element being converted to use JSX-mode style ternaries](/blog/assets/github-diff-ternary-in-jsx.png) So, in 1.7.0, we have revised our heuristic to just be: diff --git a/website/blog/assets/github-diff-showing-a-ternary-containing-internationalization-strings-appearing-inside-a-jsx-element-being-converted-to-use-jsx-mode-style-ternaries.png b/website/blog/assets/github-diff-ternary-in-jsx.png similarity index 100% rename from website/blog/assets/github-diff-showing-a-ternary-containing-internationalization-strings-appearing-inside-a-jsx-element-being-converted-to-use-jsx-mode-style-ternaries.png rename to website/blog/assets/github-diff-ternary-in-jsx.png From 6260629f18d1235e02bbcb63babcb3c73bb8706a Mon Sep 17 00:00:00 2001 From: Marcel Jackwerth Date: Wed, 3 Jan 2018 13:58:53 +0100 Subject: [PATCH 011/277] [Plugins] Allow custom getCommentChildNodes (#3639) * [Plugins] Allow plugins to specify their own getChildNodes for comment printing * Rename getChildNodes -> getCommentChildNodes --- src/main/comments.js | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/src/main/comments.js b/src/main/comments.js index ad2fe68d..1c4787e5 100644 --- a/src/main/comments.js +++ b/src/main/comments.js @@ -45,13 +45,22 @@ function getSortedChildNodes(node, text, options, resultArray) { return node[childNodesCacheKey]; } - let names; - if (node && typeof node === "object") { - names = Object.keys(node).filter( - n => - n !== "enclosingNode" && n !== "precedingNode" && n !== "followingNode" - ); - } else { + let childNodes; + + if (printer.getCommentChildNodes) { + childNodes = printer.getCommentChildNodes(node); + } else if (node && typeof node === "object") { + childNodes = Object.keys(node) + .filter( + n => + n !== "enclosingNode" && + n !== "precedingNode" && + n !== "followingNode" + ) + .map(n => node[n]); + } + + if (!childNodes) { return; } @@ -62,9 +71,9 @@ function getSortedChildNodes(node, text, options, resultArray) { }); } - for (let i = 0, nameCount = names.length; i < nameCount; ++i) { - getSortedChildNodes(node[names[i]], text, options, resultArray); - } + childNodes.forEach(childNode => { + getSortedChildNodes(childNode, text, options, resultArray); + }); return resultArray; } From 7d3a30615bcd53d28d7eb1ae109804c115710d30 Mon Sep 17 00:00:00 2001 From: Lucas Duailibe Date: Wed, 3 Jan 2018 11:36:25 -0300 Subject: [PATCH 012/277] Don't add () in JSX attributes with elements (#3640) --- src/language-js/printer-estree.js | 1 + .../__snapshots__/jsfmt.spec.js.snap | 20 +++++++++++++++++++ tests/jsx-attr-element/attr-element.js | 2 ++ tests/jsx-attr-element/jsfmt.spec.js | 2 ++ 4 files changed, 25 insertions(+) create mode 100644 tests/jsx-attr-element/__snapshots__/jsfmt.spec.js.snap create mode 100644 tests/jsx-attr-element/attr-element.js create mode 100644 tests/jsx-attr-element/jsfmt.spec.js diff --git a/src/language-js/printer-estree.js b/src/language-js/printer-estree.js index fd52d8d2..447c012a 100644 --- a/src/language-js/printer-estree.js +++ b/src/language-js/printer-estree.js @@ -4477,6 +4477,7 @@ function maybeWrapJSXElementInParens(path, elem) { const NO_WRAP_PARENTS = { ArrayExpression: true, + JSXAttribute: true, JSXElement: true, JSXExpressionContainer: true, JSXFragment: true, diff --git a/tests/jsx-attr-element/__snapshots__/jsfmt.spec.js.snap b/tests/jsx-attr-element/__snapshots__/jsfmt.spec.js.snap new file mode 100644 index 00000000..c1ec5a95 --- /dev/null +++ b/tests/jsx-attr-element/__snapshots__/jsfmt.spec.js.snap @@ -0,0 +1,20 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`attr-element.js 1`] = ` + />; + />; +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + + +/>; + + + + + +/>; + +`; diff --git a/tests/jsx-attr-element/attr-element.js b/tests/jsx-attr-element/attr-element.js new file mode 100644 index 00000000..f31bd230 --- /dev/null +++ b/tests/jsx-attr-element/attr-element.js @@ -0,0 +1,2 @@ + />; + />; diff --git a/tests/jsx-attr-element/jsfmt.spec.js b/tests/jsx-attr-element/jsfmt.spec.js new file mode 100644 index 00000000..ad02d22b --- /dev/null +++ b/tests/jsx-attr-element/jsfmt.spec.js @@ -0,0 +1,2 @@ +// Flow and TypeScript don't support JSX elements as attribute values +run_spec(__dirname, ["babylon"]); From 157df6e3fd14a74219585c1e2146ffd2696b4b97 Mon Sep 17 00:00:00 2001 From: Lucas Duailibe Date: Wed, 3 Jan 2018 13:54:53 -0300 Subject: [PATCH 013/277] Print imageReference with no alt in Markdown (#3643) --- src/language-markdown/printer-markdown.js | 2 +- .../__snapshots__/jsfmt.spec.js.snap | 7 +++++++ tests/markdown_imageReference/full-no-alt.md | 1 + 3 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 tests/markdown_imageReference/full-no-alt.md diff --git a/src/language-markdown/printer-markdown.js b/src/language-markdown/printer-markdown.js index 497eb349..9a0fb218 100644 --- a/src/language-markdown/printer-markdown.js +++ b/src/language-markdown/printer-markdown.js @@ -284,7 +284,7 @@ function genericPrint(path, options, print) { case "imageReference": switch (node.referenceType) { case "full": - return concat(["![", node.alt, "][", node.identifier, "]"]); + return concat(["![", node.alt || "", "][", node.identifier, "]"]); default: return concat([ "![", diff --git a/tests/markdown_imageReference/__snapshots__/jsfmt.spec.js.snap b/tests/markdown_imageReference/__snapshots__/jsfmt.spec.js.snap index 399f3c8a..8dc23177 100644 --- a/tests/markdown_imageReference/__snapshots__/jsfmt.spec.js.snap +++ b/tests/markdown_imageReference/__snapshots__/jsfmt.spec.js.snap @@ -14,6 +14,13 @@ exports[`full.md 1`] = ` `; +exports[`full-no-alt.md 1`] = ` +![][world] +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +![][world] + +`; + exports[`shortcut.md 1`] = ` ![hello] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/tests/markdown_imageReference/full-no-alt.md b/tests/markdown_imageReference/full-no-alt.md new file mode 100644 index 00000000..140233b6 --- /dev/null +++ b/tests/markdown_imageReference/full-no-alt.md @@ -0,0 +1 @@ +![][world] From 7f75499dd2b9dba0dfed3c18669f34f4edc17034 Mon Sep 17 00:00:00 2001 From: Lucas Duailibe Date: Wed, 3 Jan 2018 17:12:01 -0300 Subject: [PATCH 014/277] Prevent adding softline after arrow attribute with comments (#3641) * failing test * fix --- src/language-js/printer-estree.js | 5 +++-- tests/jsx/__snapshots__/jsfmt.spec.js.snap | 14 ++++++++++++++ tests/jsx/attr-comments.js | 7 +++++++ 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/src/language-js/printer-estree.js b/src/language-js/printer-estree.js index 447c012a..f65735d1 100644 --- a/src/language-js/printer-estree.js +++ b/src/language-js/printer-estree.js @@ -499,8 +499,9 @@ function printPathNoParens(path, options, print, args) { // with the opening (, or if it's inside a JSXExpression (e.g. an attribute) // we should align the expression's closing } with the line with the opening {. const shouldAddSoftLine = - (args && args.expandLastArg) || - path.getParentNode().type === "JSXExpressionContainer"; + ((args && args.expandLastArg) || + path.getParentNode().type === "JSXExpressionContainer") && + !(n.comments && n.comments.length); const printTrailingComma = args && args.expandLastArg && shouldPrintComma(options, "all"); diff --git a/tests/jsx/__snapshots__/jsfmt.spec.js.snap b/tests/jsx/__snapshots__/jsfmt.spec.js.snap index 1fcc1f7c..50dc573e 100644 --- a/tests/jsx/__snapshots__/jsfmt.spec.js.snap +++ b/tests/jsx/__snapshots__/jsfmt.spec.js.snap @@ -12,6 +12,13 @@ exports[`attr-comments.js 1`] = ` // comment arg => fn(arg) } + propArrowWithBreak={ + // comment + arg => + fn({ + makeItBreak + }) + } propArray={ // comment [el1, el2] @@ -37,6 +44,13 @@ exports[`attr-comments.js 1`] = ` // comment arg => fn(arg) } + propArrowWithBreak={ + // comment + arg => + fn({ + makeItBreak + }) + } propArray={ // comment [el1, el2] diff --git a/tests/jsx/attr-comments.js b/tests/jsx/attr-comments.js index 1fc74d0a..236c6f29 100644 --- a/tests/jsx/attr-comments.js +++ b/tests/jsx/attr-comments.js @@ -9,6 +9,13 @@ // comment arg => fn(arg) } + propArrowWithBreak={ + // comment + arg => + fn({ + makeItBreak + }) + } propArray={ // comment [el1, el2] From a4dd86436a0f52bcde6c6b20d89e9468d2ae733c Mon Sep 17 00:00:00 2001 From: Christopher Chedeau Date: Thu, 4 Jan 2018 19:03:04 -0800 Subject: [PATCH 015/277] [scss] Print comments inside of selector as is (#3649) Fixes #3647 --- src/language-css/parser-postcss.js | 10 +++++++++ .../__snapshots__/jsfmt.spec.js.snap | 22 ++++++++++++++----- tests/css_comments/selectors.scss | 5 +++++ 3 files changed, 32 insertions(+), 5 deletions(-) create mode 100644 tests/css_comments/selectors.scss diff --git a/src/language-css/parser-postcss.js b/src/language-css/parser-postcss.js index 56723381..6827d39f 100644 --- a/src/language-css/parser-postcss.js +++ b/src/language-css/parser-postcss.js @@ -3,6 +3,16 @@ const createError = require("../common/parser-create-error"); function parseSelector(selector) { + // If there's a comment inside of a selector, the parser tries to parse + // the content of the comment as selectors which turns it into complete + // garbage. Better to print the whole selector as-is and not try to parse + // and reformat it. + if (selector.match(/\/\/|\/\*/)) { + return { + type: "selector-comment", + value: selector + }; + } const selectorParser = require("postcss-selector-parser"); let result; selectorParser(result_ => { diff --git a/tests/css_comments/__snapshots__/jsfmt.spec.js.snap b/tests/css_comments/__snapshots__/jsfmt.spec.js.snap index ad0ef790..c407b0d1 100644 --- a/tests/css_comments/__snapshots__/jsfmt.spec.js.snap +++ b/tests/css_comments/__snapshots__/jsfmt.spec.js.snap @@ -103,11 +103,8 @@ exports[`selector.css 1`] = ` .powerPathNavigator .helm button:active:not(.disabledButton) { } ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.powerPathNavigator .helm button.pressedButton, -/* pressed buttons */ - .powerPathNavigator - .helm - button:active:not(.disabledButton), +.powerPathNavigator .helm button.pressedButton, /* pressed buttons */ +.powerPathNavigator .helm button:active:not(.disabledButton), .powerPathNavigator table.powerPathInfo th:active, .powerPathNavigator table.powerPathInfo th:active + th:last-child { } @@ -119,6 +116,21 @@ exports[`selector.css 1`] = ` `; +exports[`selectors.scss 1`] = ` +.foo, +// Comment. +.bar { + display: block; +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.foo, +// Comment. +.bar { + display: block; +} + +`; + exports[`trailing_star_slash.css 1`] = ` @media (max-width: 1) {} a { diff --git a/tests/css_comments/selectors.scss b/tests/css_comments/selectors.scss new file mode 100644 index 00000000..9ec074c9 --- /dev/null +++ b/tests/css_comments/selectors.scss @@ -0,0 +1,5 @@ +.foo, +// Comment. +.bar { + display: block; +} From e5d6a4704f2427cdf3baa0a1c941dd797c513993 Mon Sep 17 00:00:00 2001 From: Lucas Azzola Date: Fri, 5 Jan 2018 21:09:51 +1100 Subject: [PATCH 016/277] Automatically load plugins from package.json (#3624) * Automatically load plugins from package.json * Fix build by adding json extension * Fixup misuse of options argument * Rewire graceful-fs to fs * Document graceful-fs issue * Alias graceful-fs to fs in Rollup --- jest.config.js | 7 +++ package.json | 1 + scripts/build/rollup.bin.config.js | 11 +++- scripts/build/rollup.index.config.js | 9 ++- src/common/load-plugins.js | 56 ++++++++++++++----- src/common/support.js | 12 +++- src/language-markdown/embed.js | 5 +- src/main/options.js | 7 ++- tests_config/fs.js | 3 + .../__tests__/plugin-extensions.js | 12 ++++ .../__tests__/plugin-resolution.js | 21 +++++++ tests_integration/plugins/automatic/file.txt | 1 + .../@prettier/plugin-foo/index.js | 23 ++++++++ .../node_modules/prettier-plugin-bar/index.js | 23 ++++++++ .../plugins/automatic/package.json | 8 +++ tests_integration/plugins/extensions/file.foo | 1 + .../plugins/extensions/plugin.js | 25 +++++++++ yarn.lock | 41 ++++++++++++++ 18 files changed, 243 insertions(+), 23 deletions(-) create mode 100644 tests_config/fs.js create mode 100644 tests_integration/__tests__/plugin-extensions.js create mode 100644 tests_integration/__tests__/plugin-resolution.js create mode 100644 tests_integration/plugins/automatic/file.txt create mode 100644 tests_integration/plugins/automatic/node_modules/@prettier/plugin-foo/index.js create mode 100644 tests_integration/plugins/automatic/node_modules/prettier-plugin-bar/index.js create mode 100644 tests_integration/plugins/automatic/package.json create mode 100644 tests_integration/plugins/extensions/file.foo create mode 100644 tests_integration/plugins/extensions/plugin.js diff --git a/jest.config.js b/jest.config.js index bcfffd31..c774d0b4 100644 --- a/jest.config.js +++ b/jest.config.js @@ -14,5 +14,12 @@ module.exports = { "/src/clean-ast.js", "/src/deprecated.js" ], + moduleNameMapper: { + // Jest wires `fs` to `graceful-fs`, which causes a memory leak when + // `graceful-fs` does `require('fs')`. + // Ref: https://github.com/facebook/jest/issues/2179#issuecomment-355231418 + // If this is removed, see also rollup.bin.config.js and rollup.index.config.js. + "graceful-fs": "/tests_config/fs.js" + }, transform: {} }; diff --git a/package.json b/package.json index 312f286a..a324c695 100644 --- a/package.json +++ b/package.json @@ -47,6 +47,7 @@ "postcss-scss": "1.0.2", "postcss-selector-parser": "2.2.3", "postcss-values-parser": "1.3.1", + "read-pkg-up": "3.0.0", "remark-frontmatter": "1.1.0", "remark-parse": "4.0.0", "resolve": "1.5.0", diff --git a/scripts/build/rollup.bin.config.js b/scripts/build/rollup.bin.config.js index 1844407e..ded68afb 100644 --- a/scripts/build/rollup.bin.config.js +++ b/scripts/build/rollup.bin.config.js @@ -11,9 +11,16 @@ export default Object.assign(baseConfig, { format: "cjs", banner: "#!/usr/bin/env node", plugins: [ - replace({ "#!/usr/bin/env node": "" }), + replace({ + "#!/usr/bin/env node": "", + // See comment in jest.config.js + "require('graceful-fs')": "require('fs')" + }), json(), - resolve({ preferBuiltins: true }), + resolve({ + preferBuiltins: true, + extensions: [".js", ".json"] + }), commonjs() ], external: [ diff --git a/scripts/build/rollup.index.config.js b/scripts/build/rollup.index.config.js index 80a8f9c1..74c821bf 100644 --- a/scripts/build/rollup.index.config.js +++ b/scripts/build/rollup.index.config.js @@ -17,10 +17,15 @@ export default Object.assign(baseConfig, { format: "cjs", plugins: [ replace({ - "process.env.NODE_ENV": JSON.stringify("production") + "process.env.NODE_ENV": JSON.stringify("production"), + // See comment in jest.config.js + "require('graceful-fs')": "require('fs')" }), json(), - resolve({ preferBuiltins: true }), + resolve({ + preferBuiltins: true, + extensions: [".js", ".json"] + }), commonjs() ], external, diff --git a/src/common/load-plugins.js b/src/common/load-plugins.js index 59e73637..581e5470 100644 --- a/src/common/load-plugins.js +++ b/src/common/load-plugins.js @@ -1,9 +1,10 @@ "use strict"; const resolve = require("resolve"); +const readPkgUp = require("read-pkg-up"); -function loadPlugins(options) { - options = Object.assign({ plugins: [] }, options); +function loadPlugins(plugins) { + plugins = plugins || []; const internalPlugins = [ require("../language-js"), @@ -13,20 +14,47 @@ function loadPlugins(options) { require("../language-markdown"), require("../language-html"), require("../language-vue") - ].filter(plugin => { - return options.plugins.indexOf(plugin) < 0; - }); + ]; - const externalPlugins = options.plugins.map(plugin => { - if (typeof plugin !== "string") { - return plugin; + const externalPlugins = plugins + .concat( + getPluginsFromPackage( + readPkgUp.sync({ + normalize: false + }).pkg + ) + ) + .map(plugin => { + if (typeof plugin !== "string") { + return plugin; + } + + const pluginPath = resolve.sync(plugin, { basedir: process.cwd() }); + return eval("require")(pluginPath); + }); + + return deduplicate(internalPlugins.concat(externalPlugins)); +} + +function getPluginsFromPackage(pkg) { + if (!pkg) { + return []; + } + const deps = Object.assign({}, pkg.dependencies, pkg.devDependencies); + return Object.keys(deps).filter( + dep => + dep.startsWith("prettier-plugin-") || dep.startsWith("@prettier/plugin-") + ); +} + +function deduplicate(items) { + const uniqItems = []; + for (const item of items) { + if (uniqItems.indexOf(item) < 0) { + uniqItems.push(item); } - - const pluginPath = resolve.sync(plugin, { basedir: process.cwd() }); - return eval("require")(pluginPath); - }); - - return internalPlugins.concat(externalPlugins); + } + return uniqItems; } module.exports = loadPlugins; diff --git a/src/common/support.js b/src/common/support.js index c153a410..b7ca81d8 100644 --- a/src/common/support.js +++ b/src/common/support.js @@ -162,13 +162,21 @@ const supportOptions = { }; function getSupportInfo(version, opts) { - opts = opts || {}; + opts = Object.assign( + { + plugins: [], + pluginsLoaded: false, + showUnreleased: false, + showDeprecated: false + }, + opts + ); if (!version) { version = currentVersion; } - const plugins = loadPlugins(); + const plugins = opts.pluginsLoaded ? opts.plugins : loadPlugins(opts.plugins); const options = util .arrayify( diff --git a/src/language-markdown/embed.js b/src/language-markdown/embed.js index 85fdc360..6cd10123 100644 --- a/src/language-markdown/embed.js +++ b/src/language-markdown/embed.js @@ -31,7 +31,10 @@ function embed(path, print, textToDoc, options) { return null; function getParserName(lang) { - const supportInfo = support.getSupportInfo(undefined, options); + const supportInfo = support.getSupportInfo(undefined, { + plugins: options.plugins, + pluginsLoaded: true + }); const language = supportInfo.languages.find( language => language.name.toLowerCase() === lang || diff --git a/src/main/options.js b/src/main/options.js index c52ceea5..292386c2 100644 --- a/src/main/options.js +++ b/src/main/options.js @@ -44,7 +44,7 @@ function normalize(options) { const normalized = Object.assign({}, options || {}); const filepath = normalized.filepath; - normalized.plugins = loadPlugins(normalized); + normalized.plugins = loadPlugins(normalized.plugins); if ( filepath && @@ -54,7 +54,10 @@ function normalize(options) { const extension = path.extname(filepath); const filename = path.basename(filepath).toLowerCase(); - const language = getSupportInfo(null, normalized).languages.find( + const language = getSupportInfo(null, { + plugins: normalized.plugins, + pluginsLoaded: true + }).languages.find( language => typeof language.since === "string" && (language.extensions.indexOf(extension) > -1 || diff --git a/tests_config/fs.js b/tests_config/fs.js new file mode 100644 index 00000000..7ffea821 --- /dev/null +++ b/tests_config/fs.js @@ -0,0 +1,3 @@ +"use strict"; + +module.exports = require("fs"); diff --git a/tests_integration/__tests__/plugin-extensions.js b/tests_integration/__tests__/plugin-extensions.js new file mode 100644 index 00000000..df39fcb4 --- /dev/null +++ b/tests_integration/__tests__/plugin-extensions.js @@ -0,0 +1,12 @@ +"use strict"; + +const runPrettier = require("../runPrettier"); + +describe("uses 'extensions' from languages to determine parser", () => { + runPrettier("plugins/extensions", ["*.foo", "--plugin=./plugin"]).test({ + stdout: "!contents\n", + stderr: "", + status: 0, + write: [] + }); +}); diff --git a/tests_integration/__tests__/plugin-resolution.js b/tests_integration/__tests__/plugin-resolution.js new file mode 100644 index 00000000..2358f651 --- /dev/null +++ b/tests_integration/__tests__/plugin-resolution.js @@ -0,0 +1,21 @@ +"use strict"; + +const runPrettier = require("../runPrettier"); + +describe("automatically loads 'prettier-plugin-*' from package.json devDependencies", () => { + runPrettier("plugins/automatic", ["file.txt", "--parser=foo"]).test({ + stdout: "foo+contents\n", + stderr: "", + status: 0, + write: [] + }); +}); + +describe("automatically loads '@prettier/plugin-*' from package.json dependencies", () => { + runPrettier("plugins/automatic", ["file.txt", "--parser=bar"]).test({ + stdout: "bar+contents\n", + stderr: "", + status: 0, + write: [] + }); +}); diff --git a/tests_integration/plugins/automatic/file.txt b/tests_integration/plugins/automatic/file.txt new file mode 100644 index 00000000..12f00e90 --- /dev/null +++ b/tests_integration/plugins/automatic/file.txt @@ -0,0 +1 @@ +contents diff --git a/tests_integration/plugins/automatic/node_modules/@prettier/plugin-foo/index.js b/tests_integration/plugins/automatic/node_modules/@prettier/plugin-foo/index.js new file mode 100644 index 00000000..080b0e6c --- /dev/null +++ b/tests_integration/plugins/automatic/node_modules/@prettier/plugin-foo/index.js @@ -0,0 +1,23 @@ +"use strict"; + +const concat = require("../../../../../../src/doc").builders.concat; + +module.exports = { + languages: [ + { + name: "foo", + parsers: ["foo"] + } + ], + parsers: { + foo: { + parse: text => ({ text }), + astFormat: "foo" + } + }, + printers: { + foo: { + print: path => concat(["foo+", path.getValue().text]) + } + } +}; diff --git a/tests_integration/plugins/automatic/node_modules/prettier-plugin-bar/index.js b/tests_integration/plugins/automatic/node_modules/prettier-plugin-bar/index.js new file mode 100644 index 00000000..b878e8e3 --- /dev/null +++ b/tests_integration/plugins/automatic/node_modules/prettier-plugin-bar/index.js @@ -0,0 +1,23 @@ +"use strict"; + +const concat = require("../../../../../src/doc").builders.concat; + +module.exports = { + languages: [ + { + name: "bar", + parsers: ["bar"] + } + ], + parsers: { + bar: { + parse: text => ({ text }), + astFormat: "bar" + } + }, + printers: { + bar: { + print: path => concat(["bar+", path.getValue().text]) + } + } +}; diff --git a/tests_integration/plugins/automatic/package.json b/tests_integration/plugins/automatic/package.json new file mode 100644 index 00000000..52178d8b --- /dev/null +++ b/tests_integration/plugins/automatic/package.json @@ -0,0 +1,8 @@ +{ + "dependencies": { + "@prettier/plugin-foo": "*" + }, + "devDependencies": { + "prettier-plugin-bar": "*" + } +} diff --git a/tests_integration/plugins/extensions/file.foo b/tests_integration/plugins/extensions/file.foo new file mode 100644 index 00000000..12f00e90 --- /dev/null +++ b/tests_integration/plugins/extensions/file.foo @@ -0,0 +1 @@ +contents diff --git a/tests_integration/plugins/extensions/plugin.js b/tests_integration/plugins/extensions/plugin.js new file mode 100644 index 00000000..39d17d44 --- /dev/null +++ b/tests_integration/plugins/extensions/plugin.js @@ -0,0 +1,25 @@ +"use strict"; + +const concat = require("../../../src/doc").builders.concat; + +module.exports = { + languages: [ + { + name: "foo", + parsers: ["foo-parser"], + extensions: [".foo"], + since: "1.0.0" + } + ], + parsers: { + "foo-parser": { + parse: text => ({ text }), + astFormat: "foo-ast" + } + }, + printers: { + "foo-ast": { + print: path => concat(["!", path.getValue().text]) + } + } +}; diff --git a/yarn.lock b/yarn.lock index eff17b2e..f9f20404 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2825,6 +2825,10 @@ json-loader@^0.5.4: version "0.5.4" resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.4.tgz#8baa1365a632f58a3c46d20175fc6002c96e37de" +json-parse-better-errors@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.1.tgz#50183cd1b2d25275de069e9e71b467ac9eab973a" + json-schema@0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" @@ -2920,6 +2924,15 @@ load-json-file@^2.0.0: pify "^2.0.0" strip-bom "^3.0.0" +load-json-file@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" + dependencies: + graceful-fs "^4.1.2" + parse-json "^4.0.0" + pify "^3.0.0" + strip-bom "^3.0.0" + loader-runner@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.0.tgz#f482aea82d543e07921700d5a46ef26fdac6b8a2" @@ -3388,6 +3401,13 @@ parse-json@^3.0.0: dependencies: error-ex "^1.3.1" +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + parse5@3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/parse5/-/parse5-3.0.3.tgz#042f792ffdd36851551cf4e9e066b3874ab45b5c" @@ -3448,6 +3468,12 @@ path-type@^2.0.0: dependencies: pify "^2.0.0" +path-type@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" + dependencies: + pify "^3.0.0" + pbkdf2@^3.0.3: version "3.0.12" resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.12.tgz#be36785c5067ea48d806ff923288c5f750b6b8a2" @@ -3681,6 +3707,13 @@ rc@^1.1.7: minimist "^1.2.0" strip-json-comments "~2.0.1" +read-pkg-up@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" + dependencies: + find-up "^2.0.0" + read-pkg "^3.0.0" + read-pkg-up@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" @@ -3711,6 +3744,14 @@ read-pkg@^2.0.0: normalize-package-data "^2.3.2" path-type "^2.0.0" +read-pkg@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" + dependencies: + load-json-file "^4.0.0" + normalize-package-data "^2.3.2" + path-type "^3.0.0" + readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.2.2, readable-stream@^2.2.6: version "2.2.11" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.11.tgz#0796b31f8d7688007ff0b93a8088d34aa17c0f72" From 053202cc1623fe39cd5986233b1697f3843d0fb9 Mon Sep 17 00:00:00 2001 From: Tejas Kumar Date: Fri, 5 Jan 2018 16:05:02 +0100 Subject: [PATCH 017/277] Added Contiamo to list of users (#3655) --- website/data/users.yml | 3 +++ website/static/images/users/contiamo-200x100.png | Bin 0 -> 5304 bytes 2 files changed, 3 insertions(+) create mode 100644 website/static/images/users/contiamo-200x100.png diff --git a/website/data/users.yml b/website/data/users.yml index 0f40ad3e..9eb07e29 100644 --- a/website/data/users.yml +++ b/website/data/users.yml @@ -112,3 +112,6 @@ - caption: HearthSim image: "/images/users/hearthsim-200x100.png" infoLink: https://hearthsim.net +- caption: Contiamo + image: "/images/users/contiamo-200x100.png" + infoLink: https://www.contiamo.com diff --git a/website/static/images/users/contiamo-200x100.png b/website/static/images/users/contiamo-200x100.png new file mode 100644 index 0000000000000000000000000000000000000000..0b98d0f01f8191e1fa00a2532f14fbbee4748192 GIT binary patch literal 5304 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 Date: Sat, 6 Jan 2018 02:48:47 +1100 Subject: [PATCH 018/277] Update plugins docs (#3653) --- docs/plugins.md | 38 +++++++++++++++++--------------------- 1 file changed, 17 insertions(+), 21 deletions(-) diff --git a/docs/plugins.md b/docs/plugins.md index 7738a3c3..803d3fe8 100644 --- a/docs/plugins.md +++ b/docs/plugins.md @@ -11,36 +11,32 @@ Plugins are ways of adding new languages to Prettier. Prettier's own implementat ## Using Plugins -There are three ways to add plugins to Prettier: +Plugins are automatically loaded if you have them installed in your `package.json`. Prettier plugin package names must start with `@prettier/plugin-` or `prettier-plugin-` to be registered. -* Via the CLI. -* Via the API. -* With a configuration file. +If the plugin is unable to be found automatically, you can load them with: -### Configuration File (Recommended) +* The [CLI](./cli.md), via the `--plugin` flag: -In your [configuration file](./configuration.md), add the `plugins` property: + ```bash + prettier --write main.foo --plugin=./foo-plugin + ``` -```json -{ - "plugins": ["prettier-python"] -} -``` + > Tip: You can pass multiple `--plugin` flags. -### CLI +* Or the [API](./api.md), via the `plugins` field: -With the [CLI](./cli.md), pass the `--plugin` flag: - -```bash -prettier --write main.py --plugin prettier-python -``` - -> Tip: You can pass multiple `--plugin` flags. + ```js + prettier.format("code", { + parser: "foo", + plugins: ["./foo-plugin"] + }); + ``` ## Official Plugins -* [`prettier-python`](https://github.com/prettier/prettier-python) -* [`prettier-php`](https://github.com/prettier/prettier-php) +* [`@prettier/plugin-python`](https://github.com/prettier/prettier-python) +* [`@prettier/plugin-php`](https://github.com/prettier/prettier-php) +* [`@prettier/plugin-swift`](https://github.com/prettier/prettier-swift) ## Developing Plugins From e4e3c757fb85f47f0336fc2f13678ae93facde40 Mon Sep 17 00:00:00 2001 From: michele Date: Fri, 5 Jan 2018 16:40:00 -0800 Subject: [PATCH 019/277] Added GumGum to list of users (#3660) --- website/data/users.yml | 3 +++ website/static/images/users/gumgum-200x100.png | Bin 0 -> 2565 bytes 2 files changed, 3 insertions(+) create mode 100644 website/static/images/users/gumgum-200x100.png diff --git a/website/data/users.yml b/website/data/users.yml index 9eb07e29..bdc6e063 100644 --- a/website/data/users.yml +++ b/website/data/users.yml @@ -115,3 +115,6 @@ - caption: Contiamo image: "/images/users/contiamo-200x100.png" infoLink: https://www.contiamo.com +- caption: GumGum + image: "/images/users/gumgum-200x100.png" + infoLink: https://gumgum.com diff --git a/website/static/images/users/gumgum-200x100.png b/website/static/images/users/gumgum-200x100.png new file mode 100644 index 0000000000000000000000000000000000000000..4c9c02bfde517814dc903e12e271fd694b12183b GIT binary patch literal 2565 zcmbVOS635=8pH_F6hje^wh=<_O$jwLNobKMARw^PB8&7Aq-BFhFF~4gsXW^MFx40mWIY~HCowS2x@nmZx+8STMXvA(O zPAnMg30+i;osy9g&XLNVoB7)%a&~0&ldsm#$h7A#9DU**V3FjRVh0(NumVSQdn@!B zy;OcSbdXZGDca>ff8xO7cNo@Fx3Om>vUgZa**eWvbpQ3vzro9gur2-o`rL5O*$eA!lX9E{)B>nOjsz0$%F?+R`D}0Tz*#KCfH#JV&aaw zw4v6O>K$_tZ~@513}E^{-|lfNUA^ABnwxE43}OPj(`I7={*N}Y4#^wSG@GW>6~vQn zJbtCsk#ke#ks7w9OSEf_o0Aex3d*Du{hGxZ8$B`9 zBAH1a8XX!W3Qf5T&^9-NKNlQ4OZ8T=YH-E4R8T7V#&HD`trlNMblZF)akrOlFPRnG zrMa<_O~6Q!zMJ*(=s`|`R-bmo^92K(HFHJ zll|-Ut5>nU27~(IU+qI@rOXZ>n|yp(XAfQKXpL3r6KI4DM!CKgl^vZ;ScEfJWA6S% zIi6-p7G zyhX){8XK!NDbm(abNa#qlHSf^chBbubY)Vv5v5To%OPhYWUX^1Jv{oPzzGTBQ{=~G zomhoU#4e`g(Zlmvii?*a?N9&4(AeGUbe`>=@rmO&`xvz><+F5e{}=u6@c!>-atW(s zCG@&rQo~Ch5zd~0@b`_SOO^&w(t08{<&D!r0@A!)qzHn$NX>P3L20>+2F(#+Bjz3X zG9t!WOjsNXV+1;rRfyIrX)ODBg!RTGlX69fme#F`bZPRXLyha(qGI{e7T_ph9jd5K7=Kb^R;iYZ=JZ?NYWkA`yE{naal>Pm{`>E8wPt&pS(JhbNFEsb z3br^#kVlXL^2SkJ&BnJAI$VVEsui(+h>0a)NbYs(85$kX$88|39aWxp{n!=Ve%8)3 z5RhuU66QbjBxZsQa6=V#uICLR zzBdEOSNZyoS)&OkyWnJF_hf0wriDY36kXrqPyv{svmo$#mP;g+RWqq%z{}ID$37q# z=@k%QGp$FP)G#g5tnCGz%KR2}{1qjb5T`m&28}EUWA_EeCoGQ0;s8#op~=&l++%tz zn}Aoa1~A}frdFEp^qKz6K?G=t8Np_aR-oyPdbHHhWP!0P^7v1`Ls4* zs0Hz}>RQ>#^Wd*epd0RWIY!64*n>#PZ|c_#FE7G>$acxo^jz{jD%Kxr_}_`%1a*_o z4zUNF^Hb*BOUR*@hr_THe$w>@aUh%-!nZGmKR#}ZhkDgQ!zzq zf^zOBw}y03y8Qf8hk6PW^rgT{Hr^vsWh+(9_74Olul^`~+}p(>5!4=}av#(rENlz% zM4e}NFh#Xc_)zvYyWaY%5{7@o^$#k2Iq^y~?qSAS;-NeWF3s7!JeeYB`*BhJU{14e4B)_od2Lk8a{_3$WoUDkKIf0H#?T zfWE-*g!%d4k6hE-U?7o{@pzu_FyWsHAWYBnJ^GOUs6AymZ;idQtjREUfUBn}F~HL^ zqR-W2$B+6u-hPToR4*5~ERfi2+g?ja1muJBK8}RB8mXl^$?i{lm|(2IDQ~Jf&^9O( z9?5+pjFr8wZK8GSHp#i`tBT)yjjhytv1&eeNR3tfocpa$`q1_a*6yNga3LwJn`_5U z)<3AeU|__fR9BfA#MF1c~35-4$l-x;R|Mfu^-Bw*WAC^ zXgE@H-RO>DujJzR&=lE5nUY6*0kb;QZg_iA!sD_)3H%*{sj_=|YoXCL$ZrO}?Uy`P zHxSppJC3o-A8&=sk?7KQTTgNH?vyx0%WlD` zeh%K>VlR8{HsYjldpi-K@dANZPJ7<5ovx~Kk;P3O5qW8`y)$L_wz*Y&xU2)sODLmT z&MJ#zJ8dK;BO)SVlt*Cy$db48*@8Da?}(I>dHVU(me@#;ODK*y$!iEHJ@Tp1AiVZr z{J7*iCVhOI_x@vnp^OtrcQCo(<%MJDkX^h*JHu$`56T#3I}TZ&Cv$Danu_+=-Ke?9 z@B-(2RII#5vo5i-(bhEbRF00xIrqvw*0HaC^DJ(nAG3PFh2`HYpw8)6N1t2vHt<#TgAQr literal 0 HcmV?d00001 From 445b4afc732f76b7d6402efdeed19429b5eb4be0 Mon Sep 17 00:00:00 2001 From: Ika Date: Sun, 7 Jan 2018 17:06:25 +0800 Subject: [PATCH 020/277] docs(readme): travis master badge (#3666) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index de966e3e..a73964db 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ Gitter - Travis + Travis Codecov From 5e2e7a2881d07ff0aa4b4673becc9cb4ce2f6cae Mon Sep 17 00:00:00 2001 From: Ika Date: Sun, 7 Jan 2018 19:59:14 +0800 Subject: [PATCH 021/277] feat(playground): add example placeholder (#3657) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat(playground): add example placeholder * Add TypeScript example * fix: mock process.binding * fix: add missing comma * refactor: use legacy function * fix: mock return `{}` * Return the error stack when there’s a non-SyntaxError thrown * Code style * fix: mock path.resolve * chore: cache placeholder.js * fix mock path.resolve attempt 2 * fix: mock path.{parse,join,dirname} * fix: mock process.cwd * fix: mock path.parse root --- website/pages/playground/index.html | 1 + website/static/playground.js | 89 +++++++++++++++------- website/static/separate-css/playground.css | 4 + website/static/service-worker.js | 1 + website/static/worker.js | 28 ++++++- 5 files changed, 93 insertions(+), 30 deletions(-) diff --git a/website/pages/playground/index.html b/website/pages/playground/index.html index fd75d88a..9401985d 100644 --- a/website/pages/playground/index.html +++ b/website/pages/playground/index.html @@ -31,6 +31,7 @@ + diff --git a/website/static/playground.js b/website/static/playground.js index c807da28..a5bbfd0a 100644 --- a/website/static/playground.js +++ b/website/static/playground.js @@ -34,29 +34,7 @@ var worker = new Worker("/worker.js"); const DEFAULT_OPTIONS = { options: undefined, - content: [ - 'function HelloWorld({greeting = "hello", greeted = \'"World"\', silent = false, onMouseOver,}) {', - "", - " if(!greeting){return null};", - "", - " // TODO: Don't use random in render", - ' let num = Math.floor (Math.random() * 1E+7).toString().replace(/\\.\\d+/ig, "")', - "", - " return