Commit Graph

1223 Commits (4106a69b6d49e35a9da4aaa02d0ff76e8daeb955)

Author SHA1 Message Date
EddiG 4106a69b6d Improvements in Vim Prettier manual (#2188)
* Fix incorrect command in Vim Prettier manual

* Make clarification in command description in Vim Prettier manual
2017-06-18 10:21:44 +02:00
Lucas Azzola 58413cde3e docs(readme): use unordered lists in options section 2017-06-18 15:41:22 +10:00
Lucas Azzola af90402aab docs(readme): join API and CLI columns to prevent overflow 2017-06-18 15:25:24 +10:00
Lucas Azzola 21f913cb6e CLI: ignore node_modules with ./**-style glob, fixes #2110 (#2185) 2017-06-18 14:35:42 +10:00
Lucas Azzola 82a0bb5c5e fix(typescript): upgrade tsep, fixes #2143 (#2183) 2017-06-17 17:10:22 -10:00
Joseph Frazier 69808cebfb Format JSON literals like object literals (#2181)
* Format JSON literals like object literals

Following up on commit a42db30 (https://github.com/prettier/prettier/issues/2173),
this change makes it so that literals in JSON files are formatted as
they would be in an object literal. This normalizes trailing zeroes,
exponential notation, unnecessarily escaped characters, etc.

It works by using babylon to parse literals as expressions, and putting
the result in the AST instead of a `json-literal` node. Since JSON
string literals have to be double-quoted, there's a new
`__prettier__isJson` flag on each node, which is used by the printer to
force double-quotes.

* json: Check options.parser when formatting StringLiteral

This is instead of having a custom AST property. See
https://github.com/prettier/prettier/pull/2181#discussion_r122578251

* multiparser: Use babylon.parseExpression

See https://github.com/prettier/prettier/pull/2181#discussion_r122578354

* json: Don't split result AST node into two

See https://github.com/prettier/prettier/pull/2181#discussion_r122578499

* json: Don't use babylon parser to build expression nodes

See https://github.com/prettier/prettier/pull/2181#discussion_r122579052

* Revert "multiparser: Use babylon.parseExpression"

This reverts commit 3d7a4362880d39fac0cea88b5d0186a29538cf6f.

* Remove unused parameter from babylon parser

* json: Remove unused constructorTypes
2017-06-17 20:49:22 -04:00
Joseph Frazier 532ac0d3f8 Build/test dist/ on Travis (#2176)
This helps us keep track of whether or not the dist/ build actually
works (see https://github.com/prettier/prettier/pull/2174). Note that
the dist/ jobs are allowed to fail, and do not affect overall build
time, so they shouldn't slow anything down (see
https://blog.travis-ci.com/2013-11-27-fast-finishing-builds/).
2017-06-17 13:37:51 -10:00
Joseph Frazier 33a1c713d5 Dedupe copy/pasted code in build.sh (#2179) 2017-06-17 11:39:30 -10:00
Joseph Frazier d46b778dba Add json parser to dist/ build (#2178)
This fixes the build, as shown by:

    yarn build
    yarn test --prod -- tests/json/
2017-06-17 17:09:48 -04:00
Joseph Frazier a42db30946 Add JSON support (#2173)
* Add JSON support

This fixes https://github.com/prettier/prettier/issues/1973 by using
[json-to-ast] to parse JSON, then converting the AST into a
mostly-Babylon AST, so as to piggyback on the existing printer logic.

Identifiers and literals are currently printed verbatim from the input,
but this could be improved upon later (at least for literals, not sure
about identifiers).

[json-to-ast]: https://github.com/vtrushin/json-to-ast

* Rename `json-to-ast` parser to `json`

See https://github.com/prettier/prettier/pull/2173#discussion_r122574644

* json: Use createError to have a pretty error

See https://github.com/prettier/prettier/pull/2173#discussion_r122574748

* json: Transform AST without mutations

See https://github.com/prettier/prettier/pull/2173#discussion_r122574690
2017-06-17 10:36:42 -10:00
Joseph Frazier 59a294fcc9 Fix dist/ build by upgrading typescript to nightly (#2174)
Before, this error happened upon `yarn build`:

    🚨   (commonjs plugin) Binding arguments in strict mode (49161:16) in /Users/josephfrazier/workspace/prettier/node_modules/typescript/lib/typescript.js
2017-06-17 09:00:21 -10:00
Joseph Frazier fe8cc68e56 Fix dist/ build on machines that don't support `sed -i ''` (#2175)
Here's an example of the error that happens upon `yarn build`:

    sed: can't read : No such file or directory
2017-06-17 08:59:45 -10:00
Iaroslav Voloshchuk 89971285e4 Move devDependencies to dependencies (#2124)
fixes https://github.com/prettier/prettier/issues/2121

* move runtime deps to npm deps

* Fix (dev)dependencies

See https://github.com/prettier/prettier/pull/2124#discussion_r121795774

* Remove dependencies from dist/package.json

See https://github.com/prettier/prettier/pull/2124#issuecomment-308259138
2017-06-17 10:36:50 -04:00
Lucas Azzola bff28023b3 Comments: attach method name comments with estree parsers, fixes #2141 (#2170) 2017-06-17 22:22:39 +10:00
Lucas Azzola c669a1db72 TypeScript: group function params in call/construct signatures, fixes #2163 (#2169) 2017-06-17 12:09:18 +10:00
Stephen Wan a005211c96 Fix extra semicolon in ambient typescript declaration emit (#2165) (#2167)
* fix(typescript): add failing ambient declaration test

* fix(typescript): fix failing test case for ambient function exports
2017-06-16 08:20:59 -10:00
Lucas Azzola 7e60d70f97 fix(typescript): always break interfaces onto multiple lines, fixes #2159 (#2161) 2017-06-15 14:34:54 -10:00
Joseph Frazier aedc6d4269 Add integration test of invalid syntax (#2160) 2017-06-16 09:10:39 +10:00
James Henry d8f29d2d5b Update tsep (#2153)
* [WIP] Update tsep

* Fix TypeParameter union parens
2017-06-15 08:55:23 -10:00
James Henry 0410949984 Lock tsep to specific commit (#2152) 2017-06-15 22:45:38 +10:00
Lucas Azzola 9e7b02d50e Print {} in import if it's in the source, fixes #2145 (#2150) 2017-06-15 20:19:01 +10:00
Joseph Frazier cb44125a21 Let `prettier --stdin` work with keyboard input (#2147)
This uses [get-stream] instead of [get-stdin], since the latter just
gives an empty string if process.stdin is a TTY
(see https://github.com/sindresorhus/get-stdin/issues/21)

[get-stream]: https://github.com/sindresorhus/get-stream
[get-stdin]: https://github.com/sindresorhus/get-stdin
2017-06-15 09:57:29 +10:00
Joseph Frazier 3bbfa97152 Check exit codes in integration tests (#2148) 2017-06-15 09:56:48 +10:00
Lucas Azzola a2328edced TypeScript: keep parens around with yield/await non-null assertion, fixes #2137 (#2149) 2017-06-15 09:34:12 +10:00
James Henry 3726067923 Override tsep loggerFn with noop (#2144)
* Override tsep loggerFn with noop

* Extra function to keep Vjeux happy :P
2017-06-14 14:53:05 -07:00
Joseph Frazier f361910036 Upgrade dependencies (#2140)
Among other things, this upgrades fsevents from 1.1.1 to 1.1.2, which
eliminates a `yarn` warning on OSX machines running Node.js 8. See here
for details: https://github.com/strongloop/fsevents/issues/170
2017-06-14 14:29:35 -07:00
Joseph Frazier 48bbd9cb6b Don't insert a cursor placeholder for a value-less path (#2136)
* Test that no cursor placeholder is inserted for a value-less path

This was taken from https://github.com/prettier/prettier/issues/2131

* Don't insert a cursor placeholder for a value-less path

This fixes https://github.com/prettier/prettier/issues/2131
2017-06-14 09:05:06 -07:00
Lucas Azzola b7e1c366e0 Vue: pretty-print binding syntax (#2108)
* feat(vue): pretty-print :class attributes

* feat(vue): switch to brand new custom parser API! 🎉

* refactor(vue): move AST manipulation to post-parse
2017-06-14 22:33:15 +10:00
James Henry 9b772cb4fd Add test for comment in TypeScript type parameters (#2132) 2017-06-14 20:10:03 +10:00
George Chung 68550450b6 Typo fix (#2134) 2017-06-14 20:08:32 +10:00
Christopher Chedeau abfdbe1896 Upgrade typescript to 2.4 (#2120)
Fixes #2117
2017-06-13 09:47:40 -07:00
Rodrigo Pombo 8dd0cb2a05 Format CSS in template literals with expressions (#2102)
* Add support for styled-jsx with expressions

* Lint

* Fix require for Node 4

* Re-create template-literal document when replacing placeholders

* Add support for styled-components with expressions

* Fix merge

* Move css library detection to functions
2017-06-13 09:45:16 -07:00
Lucas Azzola 40c41f232f Website: usability improvements (#2118)
* feat(website): use worker thread for formatting

* Create index.html

Remove step=5
2017-06-13 09:20:13 -07:00
Christopher Chedeau e69d0fe5fb Create why-prettier.md 2017-06-12 21:00:04 -07:00
Christopher Chedeau 0877612e68 Create README.md 2017-06-12 20:00:42 -07:00
Lucas Azzola d274e24e23 docs(readme): add "styled with prettier" badge 2017-06-13 10:45:08 +10:00
adanoff 44b5da8ade Add `graphql.experimental` parsing for react-relay (#2116) 2017-06-12 17:16:17 -07:00
Cody Zuschlag 4cf94c95c7 add list of projects using prettier (#2104)
* doc(readme): add project logos using prettier

* doc(readme): link to npm dependents

* doc(readme): footnote for projects using prettier
2017-06-12 14:23:33 -07:00
Christopher Chedeau 62b9e29af5 Fix comments in non strict mode (#2114)
It turns out that by returning there, we didn't go through the line `delete ast.tokens` and the comments attachment logic would attach it to a random token. It's great that this fail-safe caught this bug!

Fixes #2111
2017-06-12 09:50:51 -07:00
Lucas Azzola fbf9064090 refactor(multiparser): move some logic from printer.js to multiparser.js (#2109) 2017-06-12 08:06:41 -07:00
Lucas Azzola 4e4922b428 feat(website): revamp the website a bit (#2113) 2017-06-12 07:58:06 -07:00
Alex Ilyaev 85b7ec2b7f WebStorm: Uncheck Immediate file synchronization (#2112)
In WebStorm file watcher, it doesn't make sense to reformat with Immediate file synchronization since the code jumps around while you type and if you sneak in a character while reformatting WebStorm pops a conflict alert.

So it's much saner to reformat on Save only.
2017-06-12 22:45:35 +10:00
Lucas Azzola 364c38de0d Implement custom parser API (#1783)
* feat(api): add custom parser API

* test(api): add integration test for parser resolution

* chore(api): fix build after resolving conflicts

* docs(api): document custom parser API

* docs(api): fix typo

* chore(build): add parse5 to build and support yarn test --prod
2017-06-12 16:51:12 +10:00
Lucas Azzola 486a89bfdc fix(typescript): workaround - don't wrap directives in parens, fixes #2074 (#2107) 2017-06-11 19:10:56 -07:00
Lucas Azzola e8f12cf621 TypeScript: Remove parens from type annotations where possible (#2098)
* fix(typescript): remove parens from union types where possible, fixes #1885

* fix(typescript): ensure parenthesis removal is stable

* fix(typescript): don't strip parens around function type
2017-06-11 18:06:47 -07:00
Lucas Azzola 9c608d2ec1 fix(typescript): use printFunctionParams for call/construct signature, fixes #2105 (#2106) 2017-06-11 16:06:38 -07:00
Jonas Gierer 2dba2a64da Add `prettier-github` to related projects 2017-06-11 18:59:29 +02:00
Lucas Azzola ec7d99439d fix(typescript): print arrow function type params on same line as params, fixes #2099 (#2101) 2017-06-11 07:30:51 -07:00
Lucas Azzola 026f9b4de7 docs: prune old vim links from the table of contents 2017-06-11 22:35:35 +10:00
Lucas Azzola 4395e09b78 fix(import): allow break with both default named import, fixes #2050 (#2096) 2017-06-10 21:55:21 -07:00