Brian Ng
8e612f05a0
Add support for class private methods ( #5637 )
2018-12-14 09:45:26 -06:00
Ika
419559e964
fix(javascript): correct indentation for expression in root template ( #5607 )
2018-12-12 09:52:23 +08:00
Jed Fox
fa7eafaa6d
Add support for the React `useEffect` hook ( #5608 )
...
* Add support for the React `useEffect` hook
* Format
* Format
* [Refactor] remove unnecessary condition
`canHaveTrailingComma` is defined as `I(lastElem && ...)`, which will always be true when `lastElem === null`.
* Use a hacky method to allow the array to break
* Revert "[Refactor] remove unnecessary condition"
This reverts commit 91906ba22438afa0fe5e10c64a1fcf3cfa484ff3.
* Add tests for `React.useEffect` form
2018-12-10 06:09:20 -05:00
Ika
952bc0cc03
fix: get rid of CRLF ( #5494 )
2018-12-08 18:28:29 +08:00
Ika
3cd1d003c0
fix(typescript): do not throw errors on bigint keyword ( #5577 )
...
- fix `Error: unknown type: "TSBigIntKeyword"`
- bump typescript to stable version
2018-11-30 10:12:32 +08:00
Ika
2247ce1aab
feat(angular): support interpolation in attributes ( #5573 )
2018-11-30 09:28:54 +08:00
Ika
0534735c2f
fix(vue): tweak semicolon for single expression in event bindings ( #5519 )
2018-11-29 09:28:35 +08:00
Christopher Chedeau
0af81c7695
Improve union types with leading comments ( #5575 )
...
We're running into this issue at Facebook because `// flowfixme` ignores the very next line, but in this case an empty line is added in-between which breaks the fixme.
Ideally the solution is to avoid adding a newline and we'd call it a day. Unfortunately it is tricky to implement in this particular case. The comment is already printed, including its \n. Yet, we want to indent the block and the only way to convince the doc printer to do so is to add an indent group --before-- the \n is printed, otherwise it's just going to indent on the next \n.
So this PR changes the output from one bad way to another, but the new way has the benefit of not breaking flow for Facebook, which makes our internal teams happier.
Note that the way we print the same construct with `&` is broken in the same way as with this PR. https://prettier.io/playground/#N4Igxg9gdgLgprEAuc0DOMAEBbAngNQEMAbAVzkwF5MAKME4+4xhpl5tmgDgHYA2LgE5+g3gP5CRY6cL6iJE2fL4BKJAB0ombTt17tAegOYAwhGzYEMTftu7oFAGSYYAdwjOYACwBOTzABWACYA1gAeXgBmxCFowVEA5jEBaEGJyV6pIdEBCZkhQQGJIcQpXkGRCSFFWaWRXlWlaOWVwZElCUUlAZgqANwgADQgEAAOMACW6MighD4+EK4ACnMIaMgghABuEBNBQyAARj6EYCFwMADKo6cTUAnIMD7kw14w2MQA6l4T8Gg3YDglzWvwmW1+uA2YDQ62GdzQcB8MCWJwS2EIyEiJARwxSYQAQiczhdLoRLAAZO5wTHYuC4tBhS53JJwACKpAg8BpxBxIBuPgRPg2h0Ih1wxGgB1GPjuME+e28yC4AAZhtKIAjPidRhtpXBBVtqcM-ABHUgTPwowhojFILE8ukgBHYCaPZ6OtDM4hsjlcu204YwUXyoKKpAAJkDJwmxGZZgstpAUAcB1ICIAKqL1v6HQBfXNAA
Fixes #5572
2018-11-28 10:30:51 -08:00
Ika
05ad885c3c
feat(typescript): support BigInt ( #5546 )
2018-11-27 16:53:34 +08:00
Ika
3a5bbf5fd2
fix(typescript): do not change `module` into `namespace` and break/hug their body correctly ( #5551 )
2018-11-26 13:34:35 +08:00
Ika
66ada24961
feat(angular): do not print colon for ngIf ( #5542 )
2018-11-25 15:43:40 +08:00
Ika
b6a04ab8ba
fix(html-in-js): do not add quotes for interpolation-only attributes ( #5544 )
2018-11-25 15:04:02 +08:00
Ika
c788842fea
fix(javascript): add missing parens for binary in optionalMember ( #5543 )
2018-11-25 11:42:06 +08:00
Ika
6ee2f464ac
feat(javascript): enable logical assignment ( #5489 )
2018-11-18 16:38:35 +08:00
Ika
5c479cc55f
fix(typescript): do not add invalid semi for construct in interface with prettier-ignore ( #5469 )
2018-11-14 21:35:37 +08:00
Ika
57b057cfa2
fix(typescript): inline method decorators should stay inlined ( #5444 )
2018-11-14 10:13:35 +08:00
Ika
7e72889ac1
fix(javascript): fix locEnd for VariableDeclaration caused by --no-semi ( #5434 )
2018-11-11 00:26:11 +08:00
Ika
6cedf7d5d9
fix(flow,ts): consistent interface and remove unnecessary indent for extends ( #5432 )
2018-11-11 00:15:18 +08:00
Ika
e0f74cb94d
fix(javascript): do not attach to block if it's not behind right func paren ( #5435 )
2018-11-11 00:10:19 +08:00
Ika
8b1260a770
fix(javascript): inline property decorator should stay inline (part 2) ( #5423 )
2018-11-10 16:44:33 +08:00
Adrian
6dcc7ed575
fix(javascript): handle createSelector as function composition ( #5430 )
...
fixes #5285
2018-11-09 17:55:57 -07:00
Ika
423ddf9abd
fix(angular): add missing parens for pipe in ternary ( #5397 )
2018-11-09 09:51:54 +08:00
Ika
469a831619
fix(mdx): treat jsx codeblock same as in markdown ( #5391 )
2018-11-09 09:47:05 +08:00
Ika
fd8ec95e0a
fix(javascript): do not apply test call formatting to arrow without body ( #5366 )
2018-11-08 14:00:42 +08:00
Ika
4b51907b87
fix(javascript): inline property decorator should stay inline ( #5364 )
...
Fixes the `@action` part in #5360
2018-11-07 17:21:03 +08:00
Ika
514b6d3741
Bump Prettier dependency to 1.15.0
2018-11-07 09:12:25 +08:00
Ika
40ac85125a
fix(html-in-js): do not break empty content ( #5355 )
2018-11-07 08:32:26 +08:00
Ika
a4e8aaf7a1
fix(jsx): do not move trailing char to the next line as leading char ( #5354 )
2018-11-07 07:41:34 +08:00
Alexander Kachkaev
b87fe4cf22
Add option to enforce certain line endings ( #5327 )
2018-11-06 22:47:13 +08:00
Ika
40f46740f6
fix(jsx): consistent quotes in JSX expression ( #5349 )
2018-11-06 15:38:50 +08:00
Ika
b6691ba615
fix(javascript): no regression for jsx in arrow function in jsx ( #5343 )
2018-11-06 15:38:30 +08:00
Ika
02f9802119
fix(javascript): no regression for ternary#test alignment ( #5333 )
2018-11-05 17:07:57 +08:00
Stefan Mirea
e17512adcd
Add an option to print single quotes in JSX ( #4798 )
...
* feat(option-singleQuote-jsx): Added jsSingleQuote
* feat(option-singleQuote-jsx): Refactored to use a simple jsxSingleQuote flag
* feat(option-singleQuote-jsx): Fixed borked rebase
* feat(option-singleQuote-jsx): Updated snapshots
* feat(option-singleQuote-jsx): Resolved pending comments
* feat(option-singleQuote-jsx): Removed assert
* Fixed merge conflicts
* Updated snapshots after merge conflicts
2018-11-04 16:36:00 -05:00
Ika
5e8a4a115a
feat: support HTML/Vue/Angular ( #5259 )
2018-11-04 23:03:07 +08:00
Simon Lydell
275b0543c8
Never put spaces to the right of stars in indentable block comments ( #5330 )
...
Fixes #5323 . Previously we added space after `/*` _on the first line
only,_ but the intent is to only fix the indentation of comments, not
changing their "contents". Besides, this was inconsistent with the
handling of every following line. Finally, it broke `/*!` comments which
some minifiers look for to know which (license) comments to keep.
People can use https://eslint.org/docs/rules/spaced-comment to enforce
when to start comments with spaces.
2018-11-03 20:53:24 +01:00
Jaiden Gerig
0799280429
Fixed unstable comment between function declaration and block statement ( #5250 )
2018-11-01 21:55:33 +02:00
Jordan Brown
b861448dbf
Pretty print inexact ( #5304 )
2018-10-26 21:05:42 +03:00
Aquib Master
1234ceb1d6
Fix flow extends not breaking out into new lines ( #5244 )
2018-10-25 10:49:53 -04:00
Jaiden Gerig
2cc32da5af
Fixed unstable while comment ( #5251 )
...
* Fixed unstable while comment
* Aligned while loop formatting more closely with if statment formatting
2018-10-25 10:48:09 -04:00
Ashwin Bhat
253716dd49
Fix Flow generic comment positioning ( #5290 )
...
* add test for ensuring that calls with zero arguments look right
2018-10-25 08:44:16 -04:00
Jed Fox
6a174654a4
Fix indentation of block comments where every line starts with a star ( #5206 )
...
Previously this was done only for JSDoc comments. Now it's done in a few additional cases.
2018-10-23 21:04:24 +02:00
Ashwin Bhat
4d4fab39fe
Add support for flow typecast comments ( #5280 )
...
* Add support for flow typecast comments
* Allow whitespace between comment start and colon
Also rename flow-comments.js to utils.js
* fix bug where type annotations could be accidentally created
* use better regex in detecting flow comment whitespace
* fix comment in utils.js
* simplify conditionals and improve comments
* fix lint error
2018-10-23 10:46:20 -04:00
Lucas Duailibe
62e4654e60
Respect original text decorator order ( #5207 )
2018-10-17 14:14:59 -03:00
Lucas Duailibe
00004daf84
Break nested TSConditionalType ( #5272 )
2018-10-15 13:35:37 -03:00
Suchipi
0fa34b2c63
Print nested ternaries differently ( #5039 )
2018-10-14 12:45:37 -03:00
Lucas Duailibe
c7093cb3e4
Add ASI protection for TSNonNullExpression ( #5262 )
2018-10-13 20:03:51 -03:00
Aquib Master
3369be0ca2
Fix comment issue with try finally ( #5252 )
2018-10-12 12:48:49 -04:00
Jed Fox
65b2454dd8
Improved object-break heuristic ( #5205 )
2018-10-12 12:45:30 -04:00
Kevin Gibbons
cbcd24a5b2
Correct parentheses for mixed exp/mod ( #5243 )
...
Fixes #5238 .
cc @duailibe for the [original change](https://github.com/prettier/prettier/pull/4413 ). I basically undid that PR because it didn't look to me like `shouldFlatten` made sense as the place to introduce the behavior it was going for, but I might have misunderstood something.
2018-10-12 12:33:47 -04:00
Lucas Duailibe
ed6a2d9055
Prevent JSX from breaking a logical expression chain ( #5092 )
2018-10-10 14:11:37 -03:00
Lucas Duailibe
b5fd382fe8
Inline the arguments of an arrow function in the body is conditional expression ( #5209 )
2018-10-08 19:28:58 -03:00
Lucas Duailibe
ce952fc8c1
Fix printing of catch clause with a comment ( #5202 )
2018-10-08 14:18:30 -03:00
Lucas Duailibe
303f344bff
Keep decorators inline if they were written inline ( #5188 )
2018-10-08 11:00:43 -03:00
Lucas Duailibe
31c92a7237
Fix comment in variable declarator ( #5190 )
2018-10-05 08:40:16 -03:00
Petter
1244729ad7
Infer via shebang ( #5149 )
...
If no file type can be inferred, this attempts to read the first line of a file and extract a shebang, which can be checked against a known list.
2018-10-05 08:47:23 +08:00
Brian Ng
2283efb437
Fix parens around ternary inside OptionalMemberExpression ( #5179 )
2018-10-02 20:45:15 -05:00
Onur Temizkan
cc83a27a3e
fix(typescript) Do not add extra semicolon to TSMethodSignature when prettier-ignore is used ( #5140 ) ( #5160 )
2018-09-29 06:13:17 -04:00
Simon Lydell
87e109f884
Escape not just backticks but `${` as well in graphql tags ( #5137 )
...
* Escape not just backticks but `${` as well in graphql tags
Fixes #4974 .
* Also escape backslashes correctly in graphql tags
2018-09-29 09:42:44 +02:00
Toru Kobayashi
3e05f210bb
fix(js): quote property name as es5 compatible ( #5157 )
2018-09-28 13:51:34 -03:00
Onur Temizkan
d7e96adac0
fix(js) Break args when second arg is a ternary ( #5046 ) ( #5151 )
2018-09-27 16:50:33 -04:00
James Henry
81cf08118e
Drop-in replacement: typescript-estree for typescript-eslint-parser ( #5139 )
2018-09-25 15:44:21 -04:00
Ika
5cd367e502
fix(typescript): no invalid parens for destructuring with default value ( #5096 )
2018-09-15 21:45:43 +08:00
Jed Fox
59720392c3
Add support for timeouts passed as integers to test functions ( #5085 )
...
* Add support for timeouts passed as integers to test functions
* ;
2018-09-13 06:08:47 -04:00
Ika
f7a6625d84
fix(typescript): no-semi for class props with modifiers ( #5083 )
2018-09-13 11:14:21 +08:00
Lucas Duailibe
b020a5606f
Keep simple JSXOpeningTag's unbroken ( #5078 )
2018-09-11 11:15:50 -03:00
Ika
9ca10a378f
fix(typescript): add parens for complex nodes in ClassExpression ( #5074 )
2018-09-10 08:18:30 +08:00
Ika
4d488e8b81
fix: no false positive for arrow function in jsx expression ( #5063 )
2018-09-07 09:39:59 +08:00
Lucas Duailibe
87376f93f3
Inline Generics with a single identifier ( #5066 )
2018-09-06 14:44:21 -03:00
Ika
461e6035c1
fix(typescript): preserve necessary parens for TSOptionalType ( #5056 )
2018-09-06 09:04:37 +08:00
Ika
50c9115632
feat: add printer.preprocess ( #5041 )
...
Sometimes we need to transform the ast to make it easier to print, but it's currently done in the parser (markdown and yaml), which leads the output ast harder to use for external users (custom parser), adding `printer.preprocess` can solve this issue.
And also this way we could move the trailing newline for json from `ast-to-doc.js` to `language-js`.
2018-09-03 23:27:50 +08:00
Eric Sakmar
6288704c41
format jest calls like regular calls ( #5011 )
2018-09-03 10:15:23 -03:00
Yulia Galuzo
0c7c1bfde4
fix: splitting jsx text correctly ( #5006 )
...
Fixes : #4941
2018-09-02 19:59:28 +02:00
Felix Wu
e86f08555a
Bugfix/ Don't inline pipeline operator with leading ownline comment ( #5015 )
...
* don't inline pipeline operator with leading ownline comment
* Add tests for comments surrounded with binary expressions
* Add babylon test for ownlinecomment with pipeline operator
2018-09-01 18:38:19 -04:00
Eric Sakmar
93e8b15311
verify the precedingNode type when handling import declaration comments ( #5016 )
2018-08-27 20:02:40 -06:00
Felix Wu
8779937a07
Bugfix/ Leave Dangle Comments in NewExpression ( #5017 )
...
```js
new Thing(/* comment */)
```
now stays the same instead of being formatted into
```js
new Thing /* comment */()
```
2018-08-27 09:23:14 +08:00
Ika
58d34bb844
refactor: language extend ( #4994 )
2018-08-22 10:12:57 +08:00
Malcolm Groves
d480858f01
Fix ternary format in function call ( #4368 )
...
* Fix ternary format in fn call
* Formatted to align with linter
* Update jsfmt.spec.js.snap
* Update jsfmt.spec.js.snap
* test: remove obsolete snapshot
2018-08-15 13:29:04 -04:00
Ika
1790211f76
feat: support MDX ( #4975 )
...
* feat: support MDX
* refactor: flip condition
2018-08-13 22:23:09 +08:00
TitanSnow
2de54dc4d8
remove redundant ASI protection for BindExpression ( #4970 )
2018-08-13 22:17:28 +08:00
TitanSnow
b0a33b7326
fix #4963 : parens are incorrectly stripped in BindExpression ( #4964 )
...
* fix #4963
* lint code
* fix more incorrectly paren stripping
* always need parens when UnaryExpression in BindExpression
* lint code
2018-08-09 14:44:13 -03:00
Ika
3842cbb118
fix(typescript): use the first error when both failed ( #4947 )
2018-08-09 10:21:00 +08:00
Ika
4d2f224919
fix(javascript): add parens for unary in bind ( #4950 )
...
* test: add tests
* fix(javascript): add parens for unary in bind
2018-08-08 23:48:12 +08:00
Ika
e72cb538f9
fix: update flow support info ( #4943 )
2018-08-08 23:47:49 +08:00
Adrian Leonhard
c83d5b15e7
Fix #4886 and add test. ( #4954 )
2018-08-08 09:24:25 -06:00
Brian Ng
1391891ef6
Print ObjectTypeInternalSlot with both flow/babel parsers ( #4869 )
...
* Print ObjectTypeInternalSlot with both flow/babel parsers
* chore: update to flow-parser@0.78.0
* test: update snapshot
2018-08-08 09:21:39 -06:00
Suchipi
418a04bf2b
Revert this/super blacklist for function composition heuristic ( #4936 )
2018-08-08 09:18:46 -06:00
Ika
308863e061
fix(typescript): no invalid output for ImportType in TypeReference ( #4939 )
2018-08-07 18:53:11 +08:00
Christopher Chedeau
3b3240bdb8
[assignment] proper group ( #4932 )
...
If you have
```js
a = b
```
we used to do
```js
group[a = b]
```
which works most of the time but has the unfortunate side effect that if the left part breaks, we're going to break the `=` as well. So you get
```js
{
a
} = \n
b
```
What this PR does it to add a group
```js
group[a group[= b]]
```
so that if the right hand side fits in one line, it should stay that way.
Note that there's a change with a comment being move but I think that it's fine. If I remember correctly, this test was to make sure that we didn't print invalid code, not that it had to be respected (that comment position is not something we really want to support in the first place).
Fixes #4645
2018-08-02 20:26:31 -07:00
Brian Ng
1597578b05
Bump babel-parser ( #4910 )
2018-08-02 22:19:21 -05:00
Suchipi
3bfaf6626c
Never inline decorators, unless they're lone parameter decorators ( #4830 )
...
Fixes #2613 .
2018-07-20 13:48:37 -06:00
Ika
ed0ecdad18
fix(json): do not put values on a separate line from the key ( #4852 )
...
* test: add tests
* fix(json): do not put values on a separate line from the key
2018-07-17 18:08:59 -03:00
Prashant Andani
12cb8a9688
Use destructuring for readability and optimzations at 'for' loop length property… ( #4842 )
...
* Use destructuring for readability and optimzations at for loop length property
* Destructure variables for easy maintainability of code
* PR review fix
* refactor: fix linting
2018-07-16 22:39:41 +08:00
Eugene Datsky
03ee86ea80
Blacklist this in functional composition heuristics ( #4836 )
2018-07-12 11:58:57 -03:00
Ika
da91fb2f46
fix(javascript): allow top level super and await ( #4823 )
2018-07-11 13:18:20 +08:00
Ika
b1c0c8c8d6
refactor(typescript): remove unnecessary experimental types ( #4819 )
...
Ref: eslint/typescript-eslint-parser#429
2018-07-10 10:05:31 +08:00
Ika
2271992446
feat(json): add jsonc to aliases and use it to find parser in markdown embed ( #4734 )
2018-07-07 20:46:34 +08:00
Ika
9bb8edf96a
feat: support .js.flow ( #4777 )
...
* feat: support .js.flow
* feat: add Flow language entry
2018-07-01 16:18:08 +08:00
Ika
61d5eeadd3
fix(javascript): add parens for await in bind ( #4778 )
2018-06-30 23:15:45 +08:00
Ika
50d242d085
feat(typescript): support TSOptionalType and TSRestType ( #4757 )
...
Ref: Microsoft/TypeScript#24897
2018-06-30 09:10:56 +08:00
Ika
e10c31a333
fix(typescript): update typescript-eslint-parser ( #4762 )
2018-06-29 19:27:21 +08:00