Ika
0df2199688
fix(grahpql): linebreak in non-block stringValue ( #4808 )
2018-07-05 00:14:09 +08:00
Ika
432c9d7d04
feat(yaml): support proseWrap ( #4742 )
...
- support `proseWrap` in `yaml`
- move `proseWrap` to `commonOptions`
- update to `yaml@1.0.0-rc.4` and `yaml-unist-parser@1.0.0-rc.1`
2018-07-04 00:28:47 +08:00
Ika
99c4e41fa1
feat: format yaml front matter ( #4773 )
...
* refactor: front-matter
* feat: format yaml front matter
2018-07-03 09:54:40 +08:00
Lucas Duailibe
6a6e8cada0
Fix benchmark require ( #4792 )
2018-07-02 13:17:08 -03:00
Ika
e9f489cea1
refactor(debug-repeat): use built-in int type ( #4791 )
2018-07-02 16:01:05 +08:00
Ivan Babak
b9fb113b3b
feat(benchmark): add options to measure performance ( #4776 ) ( #4789 )
...
- `--debug-benchmark` uses `benchmark` module to produce statistically significant time measurements.
- `--debug-repeat` uses a naive loop and measures just the average run time, but useful for profiling to highlight hot functions.
2018-07-01 19:49:16 -07:00
Ivan Babak
95cc2c97b5
fix(perf): shortcut getStringWidth for ASCII-only strings ( #4776 ) ( #4790 )
2018-07-01 19:47:55 -07:00
Alexander Kachkaev
a05fd118be
Do not require space after markdown block language name ( #4783 )
...
https://github.com/prettier/prettier/pull/4153 made it possible to detect fenced code block language when it is followed by arguments (e.g. ` ```js {something=something} `). This PR makes it also possible to detect language in cases cases like ` ```js{something=something} ` (no space).
The reason for this change is that Atom highlights code blocks regardless of a space after the language name, which makes users wonder why the correctly detected code block is not being formatted:
<img width="324" alt="screen shot 2018-06-28 at 22 08 13" src="https://user-images.githubusercontent.com/608862/42060780-db11f5b6-7b1f-11e8-9f43-fe91843f7d89.png ">
PR background: https://github.com/prettier/prettier/pull/4153#issuecomment-401174999
2018-07-02 08:22:56 +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
Lucas Duailibe
576e570711
Fix custom require's ( #4766 )
2018-06-28 15:56:25 -03:00
Ika
0b659b898d
feat: update linguist languages ( #4741 )
...
Context: https://github.com/prettier/prettier/pull/4734#issue-196702272
Languages should be easy to maintain now.
2018-06-28 08:24:02 +08:00
Ika
b67fa907bd
fix(markdown): preserve email autolink ( #4740 )
...
```diff
<hello@example.com>
<mailto:hello@example.com>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-<mailto:hello@example.com>
+<hello@example.com>
<mailto:hello@example.com>
```
2018-06-27 08:36:51 +08:00
Warren Seine
6c482e2e6c
Expose `isPreviousLineEmpty` to plugins ( #4747 ). ( #4748 )
2018-06-25 23:20:00 -06:00
Karl O'Keeffe
7a3ac3a693
Handle JSX whitespace separately from fbt whitespace ( #4717 )
...
* Hande JSX whitespace separately from fbt whitespace
* Extra test cases
* Further tweak to JSX handling
* Possible improvement of single character text
* More tests
* Pull out separator code
* More tests for fbt
2018-06-25 19:11:40 +01:00
Evilebot Tnawi
aa4ea034b3
refactor: some stuff ( #4703 )
2018-06-25 12:57:41 +03:00
Ika
f51acf22fe
feat(vue): support pragma ( #4713 )
2018-06-25 10:44:00 +08:00
Ika
c38e6af301
fix(yaml): add missing `since` field ( #4739 )
2018-06-23 17:04:47 +08:00
Suchipi
cb5e1db4a5
Revert "Ternary Operators in JSX Expression Containers ( #4731 )" ( #4736 )
...
This reverts commit 12046cd01b
.
2018-06-22 10:32:38 -06:00
tyrerexus
12046cd01b
Ternary Operators in JSX Expression Containers ( #4731 )
...
This pull request aims to fix the issue of excessive nesting brought up in the following comment: https://github.com/prettier/prettier/issues/737#issuecomment-392541493
This "fix" is very simple. It adds a new possible way to activate JSX mode for ternary operators. If the first non-conditional parent of the expression is a JSX expression container, then JSX mode gets activated.
This branch also contains a test case for said scenario.
2018-06-22 10:30:53 -06:00
Ika
f53b5b8323
fix(options): inferParser for standalone ( #4721 )
2018-06-22 12:43:44 +08:00
Ika
dcf44ffbdc
feat: support YAML ( #4563 )
...
* feat: support YAML
* fix: do not indent sequence in mappingValue
* docs: add yaml to index.md
* fix: reduce `SyntaxError: Node#parse consumed no characters`
* chore: remove old-build and new-worker.js
* refactor
* refactor
* refactor
* refactor
* refactor
* refactor
* refactor
* refactor
* refactor
* refactor
* refactor
* refactor
* fix: no space after `<<`
* fix: add yaml to standalone test
* test: add tests
* fix: next empty line in flow collection
* fix: tabs are not allowed
http://yaml.org/spec/1.2/spec.html#space/indentation/
* fix: update parser
* feat: rewrite the mappingItem logic
* feat: indent sequence in mapping
* feat(doc): add ifBreak#groupId and group#id
* chore: fix node 4
* chore: add tools_yaml.svg
* chore: remove resolved TODO
* refactor: remove unnecessary workaround
* chore(worker): importScriptOnce
* chore(build): rename with babelPlugins
* make it rollup compatible
* feat: support singleQuote
* refactor
2018-06-21 10:29:42 +08:00
Anthony Sottile
5d5c97a17f
Fix `prettier` installed in a directory not named prettier ( #4706 )
2018-06-18 13:29:54 -03:00
Ika
b99de9811b
feat(graphql): support pragma ( #4699 )
2018-06-17 14:04:48 +08:00
Ika
4109abf4dd
feat(javascript): support BigIntLiteral ( #4697 )
2018-06-16 00:20:04 +08:00
Evilebot Tnawi
03a2002348
fix: newline between front-matter and comment ( #4701 )
2018-06-15 16:27:41 +03:00
Vojtěch Štěpančík
56af3d621d
Add support for parsing babylons throwExpressions ( #4695 )
2018-06-14 21:35:39 -03:00
Ika
18aa527adc
feat(api): support relative paths for plugin(SearchDir)s in config files ( #4667 )
...
* feat(api): support relative paths for plugin(SearchDir)s in config files
* fix: convince appveyor
2018-06-15 04:25:03 +08:00
Ika
f6890bd071
feat(css): support pragma ( #4688 )
2018-06-14 09:51:18 +08:00
Joseph Frazier
88be12ca07
Allow `originalText` to be passed to `formatAST()` ( #4677 )
...
This allows `prettier.__debug.formatAST` to not crash when given the AST
for the below code (taken from https://astexplorer.net/ ), which is
useful when trying to use Prettier as a code generator for an AST
without corresponding source code (https://github.com/prettier/prettier/issues/4675 )
```js
let tips = [
"Click on any AST node with a '+' to expand it",
"Hovering over a node highlights the \
corresponding part in the source code",
"Shift click on an AST node expands the whole substree"
];
function printTips() {
tips.forEach((tip, i) => console.log(`Tip ${i}:` + tip));
}
```
2018-06-13 12:30:14 -04:00
Tony Trinh
dcc060a5a5
refactor: remove redundant call to normalizeOptions ( #4671 )
...
Removes redundant call to `normalizeOptions` (already done in preceding line)
8ec5432768/src/main/core.js (L260-L263)
2018-06-12 10:56:16 +08:00
Ika
5646573ad7
fix(javascript): preserve parens for type casting for sub-item ( #4648 )
2018-06-11 19:50:53 +08:00
Lynn Smeria
61d35dd636
fix(typescript): preserve type parameters of import-types ( #4656 ) ( #4662 )
2018-06-11 11:29:10 +10:00
Brian Ng
3e0dceda99
flow-parser@0.74.0 ( #4649 )
2018-06-09 17:03:50 -05:00
Ika
98bfd03d93
feat(typescript): support unknown type ( #4625 )
2018-06-10 00:12:30 +08:00
Lucas Duailibe
d013983d8a
Always expand first argument if the second argument is also a call expression ( #4657 )
2018-06-08 15:16:12 -03:00
Lucas Duailibe
cb1c52ad08
Break JSX in arrow functions in JSX expressions ( #4601 )
2018-06-08 15:15:50 -03:00
Ika
35a42bef24
fix(markdown): better handling for trailing spaces ( #4593 )
...
- preserve trailing spaces in html, excluding html comment
- `doc-printer` is now unrelated to `options.parser`
- fix some cases that two trailing spaces are mis-considered as `break`
2018-06-08 00:20:25 +08:00
Ika
fb74dc54c3
feat(api): make `getFileInfo()` really async ( #4640 )
2018-06-07 00:34:02 +08:00
Aakansha Doshi
8ec5432768
Fix empty file error in json and graphql ( #4553 )
...
* Fix empty file error in json and graphql
* fix AST_COMPARE=1 issue
* use tests/empty
* revert
* fix lint
2018-06-06 10:41:12 -03:00
Lucas Duailibe
a4da6e6c8e
Inline _ or $ in the root of a method chain ( #4621 )
2018-06-01 12:51:06 -03:00
Ika
b55997eb3d
fix(multiparser): no additional trailing newline for graphql in js ( #4616 )
...
Fixes #4615
The root cause is the output doc from graphql printer does not match the desired input from `stripTrailingHardline`.
a9b21a01e2/src/doc/doc-utils.js (L167-L180)
2018-06-01 00:38:39 +08:00
Ika
e74e6565b4
fix(markdown): respect blank line between block htmls ( #4609 )
...
Fixes #4605
The AST here is actually two `html`s and it did follow the [CommonMark spec](https://spec.commonmark.org/0.28/#html-blocks ), so I ended up with respecting the blank line between block `html`s.
2018-06-01 00:33:37 +08:00
Evilebot Tnawi
9387e9d833
fix: comment type for scss ( #4598 )
2018-05-30 23:22:18 +03:00
Ika
75e86b9e6b
fix(cli): no regression for --debug-check + --list-different ( #4600 )
2018-05-31 00:42:26 +08:00
Ika
8abbc5d4b0
fix(javascript): regression for `hasOwnProperty` ( #4603 )
2018-05-31 00:39:39 +08:00
Jimmy Jia
dc5de053c4
fix: comment around color adjusters ( #4595 )
2018-05-29 21:03:09 +03:00
Evilebot Tnawi
3d60871458
fix: output color adjusters ( #4494 )
2018-05-29 15:24:38 +03:00
Lucas Duailibe
1350edc5a6
Revert no parser error for API ( #4587 )
...
* Revert no parser error for API
* use warn
2018-05-28 23:43:44 -06:00
Lucas Duailibe
b8ded70848
Handle comments in assignments before template literals ( #4580 )
...
Closes #4560
2018-05-29 00:08:18 +10:00
Lucas Duailibe
a6db391556
Short rule should only apply to the first identifier ( #4575 )
2018-05-27 21:52:42 -03:00
Kevin Donnelly
16a84e88d6
Improve format when passing ts arrow function with return type as an argument ( #4228 )
...
* Add various tests for ts type annotated function properties.
* Improve format when passing ts arrow function with return type
* Add test for case from #2581 .
2018-05-27 20:39:08 -03:00
Lucas Duailibe
9da80415f4
Bump own prettier dependency
2018-05-27 15:22:34 -03:00
Lucas Azzola
b0cb63a7bb
Use destructuring for imports ( #4554 )
...
* Use destructuring for imports
* Clean up integration tests
* Use moduleNameMapper for require_prettier
2018-05-27 21:36:12 +10:00
Brian Ng
fda7bf59f4
Add support for Flow's proto modifier syntax ( #4551 )
...
Flow commit: eb815be907
Babel PR: https://github.com/babel/babel/pull/7978
2018-05-25 17:23:17 -05:00
Brian Ng
d20d9c160e
Switch to @babel/parser ( #4544 )
...
We landed a change that added a new `InterpreterDirective` AST node type for hashbangs, and no longer add it as a comment/leadingComment.
Ref: https://github.com/babel/babel/pull/7928
I mimicked what we do in `@babel/generator` here, since I found it better than trying to add comments to the ast in `parser-include-shebang.js`). Definitely open to a better/cleaner option though!
Note: I'll follow this up with enabling tests for https://github.com/prettier/prettier/pull/4543 and https://github.com/prettier/prettier/pull/4540 once they land too.
2018-05-25 11:27:41 -05:00
Brian Ng
e42db35427
Add support for flow inline interfaces ( #4543 )
...
Flow commit: 4f93f3adb7
Babel commit: https://github.com/babel/babel/pull/7973
Will follow up w/ flow team on making `InterfaceType` -> `InterfaceTypeAnnotation`, since it seems a bit inconsistent.
2018-05-25 09:17:43 -05:00
Brian Ng
61b39749a1
Add support for flow explicit type arguments ( #4540 )
...
Fixes #4489 .
Babylon support landed in `beta.48` just now but requires a few other fixture changes, so I'm going to follow this up with another PR.
2018-05-25 08:55:39 -05:00
Lucas Duailibe
c2202efd54
Do not remove parens for ?. operator ( #4542 )
2018-05-24 23:27:49 -03:00
Christopher Chedeau
8f141bfafe
Update babylon & flow ( #4536 )
...
* Support new node types for optionals
* Update babylon
* Fix decorator tests
* fix manual errors
* Update flow
* pretty print
* enable option for flow to support ??
* fix AST_COMPARE=1
* fix lint and explicitly test 1_2_3 syntax for flow
2018-05-24 13:06:33 -07:00
Lucas Duailibe
52a2a46b3c
New build system ( #4449 )
2018-05-24 15:30:45 -03:00
Dray Lacy
bb6d130b5b
Fix printing of `{{{raw}}}` handlebars expressions ( #4535 )
...
Previously, `{{{raw}}}` would be output as `{{raw}}`.
2018-05-24 11:16:50 -07:00
Evilebot Tnawi
27b1005455
feat: handle `composer.json` as `package.json` ( #4532 )
2018-05-24 20:36:16 +03:00
Evilebot Tnawi
db0278a186
refactor: math operator ( #4529 )
2018-05-24 20:19:22 +03:00
James Henry
88b71481fa
New: Format Angular Component styles ( #4361 )
...
* New: Format Angular Component styles and template
* Clean AST
* Cleanup
2018-05-23 19:08:40 -06:00
Lucas Duailibe
5c6e0802af
Don't default parser to babylon ( #4528 )
...
* Don't default parser to babylon
* Different default values according to version
* Fix error logging
* Add tests specifically for parser inference
* Add another test case
* Add API test
2018-05-23 16:55:06 -03:00
Evilebot Tnawi
9db668702c
refactor: `less` extend ( #4526 )
2018-05-23 19:28:18 +03:00
Evilebot Tnawi
7a8dc82065
refactor: printer ( #4501 )
2018-05-22 21:10:24 +03:00
Evilebot Tnawi
0b8a8d84f6
fix: scss interpolation in string ( #4490 )
2018-05-22 16:05:47 +03:00
Jed Fox
9155fe5018
Rename all uses of frontmatter to frontMatter or front-matter ( #4519 )
2018-05-21 10:02:09 -04:00
Ika
553e9bb1ac
fix(typescript): preserve quoted class property ( #4517 )
2018-05-21 18:57:30 +08:00
Aakansha Doshi
31f79fbc22
Don't add new lines after unless present in graphql ( #4512 )
...
* Don't add new lines after unless present in graphql
* fix logic and add more specs
* use index
2018-05-20 13:44:49 -04:00
Ika
a9eb68296c
fix(markdown): do not merge continuous cjk if proseWrap=preserve ( #4504 )
...
* test: add tests
* fix(markdown): do not merge continuous cjk if proseWrap=preserve
* fix: remove trailing comma for node4
2018-05-19 13:53:34 +08:00
Lucas Duailibe
ea01781d8c
Only break chains with short names if inside ExpressionStatement ( #4505 )
2018-05-18 21:44:15 -03:00
Lucas Duailibe
7d50c25195
Remove unnecessary check for PRETTIER_DEBUG ( #4506 )
2018-05-18 18:18:12 -03:00
Joseph Frazier
6d49a224c9
Don't format range if required pragma is missing outside range ( #3996 )
...
* Add tests demonstrating --require-pragma behavior with range
* Don't format range if required pragma is missing outside range
Fixes https://github.com/prettier/prettier/issues/3985
2018-05-17 13:38:50 -04:00
Georgii Dolzhykov
c6e8177282
Inline AngularJS tests that use `inject` ( #4495 )
...
* Inline AngularJS tests that use `inject`
See https://docs.angularjs.org/guide/unit-testing#using-beforeall- for a code example.
* More meaningful function name, minor refactoring
* Linting
* Minor regexp improvement
* address review comments
2018-05-17 12:09:20 -03:00
Evilebot Tnawi
a8b0e55205
fix: better output scss maps ( #4487 )
2018-05-17 13:39:22 +03:00
Suchipi
ec45dc9a4c
(refactor): Move common options out of JS plugin ( #4445 )
...
* (refactor): Move common options out of JS plugin
* Add Common category to playground
2018-05-15 14:14:50 -06:00
Lucas Duailibe
7bc5ec2dc6
Preserve Liquid tags contents ( #4484 )
2018-05-15 14:22:41 -03:00
Brian Ng
857c55bd61
Keep parens around do-expressions inside ExpressionStatement ( #4479 )
2018-05-15 11:41:17 -05:00
Lucas Duailibe
983202413c
Refactor frontmatter handling ( #4482 )
2018-05-14 22:17:15 -03:00
Evilebot Tnawi
636ae9d037
refactor: `css` language ( #4483 )
2018-05-15 01:08:04 +03:00
Evilebot Tnawi
9d41f1355a
refactor: parser-postcss ( #4478 )
2018-05-15 00:00:45 +03:00
Aakansha Doshi
f99aee8e46
refactor: use `postcss-values-parser` for `@import` at rule ( #4435 )
...
* update to postcss value parser for @import and at rule
* fix specs
* Add rule for @import url and fix specs
* fix more specs
* fix more specs
* import check
* fix specs and add more specs
* remove console.log
* review fixes
* update snapshots
* remove bad code
* fix spec
* remove code
* Add comment
* fix comment
* lint fix
2018-05-14 22:54:34 +03:00
Paco
bcdb6936ba
Remove unused text parameter from Comments#getSortedChildNodes ( #4481 )
2018-05-14 14:32:18 -03:00
Nicolò Ribaudo
bcfe2257f5
Wrap ?() => T in parens when needed. ( #4475 )
2018-05-14 11:25:16 -03:00
Ika
d0f6aac001
refactor(massageAst): move stripLocation to corresponding plugins ( #4477 )
2018-05-14 20:52:27 +08:00
Evilebot Tnawi
6cd6ea383e
fix: characters escaping ( #4472 )
2018-05-14 13:47:46 +03:00
Jed Fox
dc68a3d9a6
Break link definitions onto multiple lines when needed ( #3531 )
...
* Break link definitions onto multiple lines when needed
* Simplify the conditional for breaking the title
* Don’t print the title if it’s blank
* Revert "Don’t print the title if it’s blank"
This reverts commit 2a8d0dd9995a2e5ab8e6d888c07b88dda058637f.
* Add another test
* Fix title printing
* Second time’s the charm
* Third time’s the charm?
* Fix snapshot
* Prettify
* Don’t break unless `proseWrap` is `always`
* Test `proseWrap: never` on link references
2018-05-14 06:17:37 -04:00
Ika
1062f2a889
feat: support JSON.stringify formatting ( #4450 )
...
* test: move tests
* feat: support legacy JSON formatting
* fix: add missing assertion
* test: fix coverage
* fix: same output as JSON.stringify
* refactor: fix linting
* refactor: rename to json-stringify
* refactor: fix linting
* fix: should fix the production build
* docs: remove outdated name
* fix(playgound): add lib/parser-json-stringify.js
* feat(playgound): add example for json-stringify
* fix: no error on singleQuote string
* fix(playground): correctly load json-stringify
* fix: identifier is only allowed in ObjectProperty.key
* refactor: clearer
2018-05-14 09:12:25 +08:00
Evilebot Tnawi
bc2f57dcf9
fix: css variables and scss interpolation ( #4471 )
2018-05-12 22:38:28 +03:00
Elias Meire
2f5c00ad18
Fix: not greedy match the frontmatter in postcss parser ( #4457 )
2018-05-10 13:50:19 -03:00
Ika
6447d30b0b
feat(markdown): change unordered list symbol to hyphen ( #4440 )
2018-05-10 14:32:52 +08:00
Alexander Kachkaev
bc78541274
Improve plugin resolution when path does not start with ./ ( #4451 )
...
* Fix plugin resolution when path does not start with ./
* Minor consistency fix: use "if (resolvedPluginSearchDir) {...}" in load-plugins
* Use more appropriate quotes in plugin-resolution.js
* Try both local paths and node modules when resolving plugins manually
* Test bespoke plugin loading by node module name
* Simplify getFileInfo() as suggested by @j-f1
https://github.com/prettier/prettier/pull/4341#discussion_r187112707
2018-05-10 10:27:41 +10:00
Ika
0f02940de2
refactor(javascript): move loc util ( #4443 )
2018-05-10 02:23:40 +08:00
Alexander Kachkaev
cc734753fc
Implement prettier.getFileInfo() method and --file-info CLI option ( #4341 )
...
* Implement prettier.getFileInfo() method and --file-info CLI option
* Add empty line between functions in index.js
* Support --plugin-search-dirs / pluginSearchDirs() in --file-info / getFileInfo()
* Address review comments by @ikatyang
2018-05-10 00:53:44 +08:00
Soo Jae Hwang
ee96e97c77
Fix: Group long name method in bind expressions ( #4447 )
...
* Fix: Group long name method in bind expressions
* Add test for short name method in bind expressions
2018-05-09 10:42:16 -06:00