Commit Graph
100 Commits
Author SHA1 Message Date
Simon Lydell 808dc4e7e3 Add missing quote in README.md
Fixes #2935.
2017-09-30 10:00:47 +02:00
Simon Lydell 9d448fb217 Try to fix website deploy 2017-09-29 10:50:58 +02:00
Simon Lydell fa882b26af Fix Travis production builds (#2933)
* Fix Travis production builds

* Fix Travis production builds, attempt 2

* Remove `allow_failures` in .travis.yml

The reason we allowed the production builds to fail in the first place:

    ❯ git show 532ac0d3f
    commit 532ac0d3f8
    Author: Joseph Frazier <1212jtraceur@gmail.com>
    Date:   2017-06-17 19:37:51 -0400

        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/).

However, as we discovered in #2933 requiring the production builds to
succeed only adds about 1 minute of build time, so it is not worth the
risk of missing that the production builds fail.
2017-09-29 09:34:47 +02:00
Simon Lydell 63916beebb Try to fix cosmiconfig in the built version of Prettier (#2930) 2017-09-29 09:27:50 +02:00
Simon Lydell 51d123b3f1 Update postcss-values-parser (#2928)
My PR has been merged and released to npm, so no need to depend on my
fork anymore.
2017-09-28 19:59:14 +02:00
Simon Lydell 0313ce6299 Fix the playground for 1.7.1 2017-09-27 20:38:16 +02:00
Simon Lydell c6bac7cfe6 Split Less and SCSS parsing into different parsers (#2844)
* Split Less and SCSS parsing into different parsers

Now, .less files are always parsed with postcss-less, and .scss files
areare always parsed with postcss-scss. This:

- Is less hacky.
- Is meant to avoid issues like #2829.
- Is probably more performant.

`parser: "postcss"` and `--parser postcss` continue to work like before:
First trying postcss-less, and if that fails, postcss-scss, unless a
regex says that we should try in the opposite order. The new values for
the parser option are "postcss-less" and "postcss-scss".

* Remove postcss from package.json since it is not used

* Rename parser-less to less and parser-scss to scss

* Deprecate parser:postcss in favor of parser:css

* Fix CSS tests
2017-09-26 07:08:11 +02:00
Simon Lydell cd4d4e7273 Don't lowercase SCSS placeholder selectors (#2876)
Fixes #2872.
2017-09-21 20:23:22 +02:00
Simon Lydell 68d1b56696 Comment out config file extensions docs until next release
See #2861.
2017-09-19 21:37:20 +02:00
Simon Lydell ed67690925 Fix playground for the next release 2017-09-16 15:35:32 +02:00
Simon Lydell fb55367633 Don't lowercase Less variables when parsed with SCSS parser (#2833)
Fixes #2829
2017-09-15 19:48:16 +02:00
Simon Lydell 23041e2113 Don't lowercase &class in SCSS/Less selectors (#2834)
Fixes #2830
2017-09-15 19:48:04 +02:00
Simon Lydell 06c9127f02 Update instructions for running tests against dist
Fixes #2819.
2017-09-14 21:56:59 +02:00
Simon Lydell ec4abdfb1e Don't lowercase CSS custom media names (#2822)
Fixes #2820. While that issue is about `@media (--fooBar)` in
particular, this commit changes to never lowercase stuff starting with
`--` in general, as it seems like those `--customStuff` things can pop
up kind of anywhere.
2017-09-14 21:55:11 +02:00
Simon Lydell 219acfe0f8 Fix playground error 2017-09-14 19:52:37 +02:00
Simon Lydell 2ef7173f13 Fix playground button color 2017-09-14 19:40:38 +02:00
Simon Lydell 9c598b1846 Adjust quotes in some more cases of @import in CSS (#2818)
Fixes #2817.
2017-09-14 14:04:04 +02:00
Simon Lydell 1be06af923 Merge pull request #2814 from ikatyang/chore/jest-21
chore(deps): update jest-* to v21.1.0
2017-09-14 13:21:50 +02:00
Simon Lydell 457903ff74 Merge pull request #2791 from lydell/playground
Improve the playground
2017-09-14 12:24:02 +02:00
Simon Lydell 2756ab9a75 Add syntax highlighting for issue template options 2017-09-14 08:51:37 +02:00
Simon Lydell 1469ef9cea Use the jsx CodeMirror mode instead of javascript
Unfortunately, the "neat" theme we were using for CodeMirror does not
appear to support JSX, so I removed it and went back to the default
theme.
2017-09-14 08:49:20 +02:00
Simon Lydell 5d0ed5c671 Remove 1px page scrollbar in playground 2017-09-14 01:03:38 +02:00
Simon Lydell b9c35cc249 Merge branch 'master' into playground
Conflicts:
	scripts/build/build.js
2017-09-14 00:50:14 +02:00
Simon Lydell 40cf41b15e Try to improve the playground default example 2017-09-14 00:48:22 +02:00
Simon Lydell 1375e6880a Generate ISSUE_TEMPLATE.md on build 2017-09-14 00:14:35 +02:00
Simon Lydell ecaeec5b59 Add feature to test idempotency in playground 2017-09-13 23:40:51 +02:00
Simon Lydell 5b576f4e78 Add more buttons to the playground 2017-09-13 23:07:19 +02:00
Simon Lydell 323941bfd8 Clean up playground CSS and design
- Move the version to the header. Saves some vertical space.
- Use system font.
- Simplify CSS.
- Better header alignment.
2017-09-13 21:01:11 +02:00
Simon Lydell cf9d52e9f3 Hide ast and doc editors while loading the playground 2017-09-13 16:47:21 +02:00
Simon Lydell 709e271051 Improve CLI usage summary and fix typo 2017-09-13 18:21:04 +08:00
Simon Lydell 45d200a06d Improve option categorization and usage summary
- Move the very important options --write and --list-different to the
  top, in the new Output category. It could be argued that --help and
  --version also belong there, but I don't think they deserve such a
  prominent position, so they are left in the Other category.
  --find-config-path could also be considered an Output option, but I
  think it fits better in the Config category.
- Now that there's an Output category, should there also be an Input
  category? I thought about that, but the only candidates for such a
  category are --stdin and --stdin-filepath and I don't think they are
  important enough to have their own category, so they stay in Other.
- Move --cursor-offset, --range-end and --range-start to a new Editor
  category, since they are mainly for editor integrations.
- Document how Prettier deals with input and output by default.
2017-09-13 18:21:04 +08:00
Simon Lydell 32dfb80c86 Remove unnecessary fall-through comment 2017-09-13 18:21:04 +08:00
Simon Lydell be65370301 Remove reassignment in createOptionUsage 2017-09-13 18:21:04 +08:00
Simon Lydell 5d435abe0a Tweak option categories
- Move Format options first, since they feel the most important.
- Move --find-config-path to the Config category.
- Merge Command into Other. It wasn't clear what "Command" options are,
  and the Other category isn't too long anyway.
- Move --range-end and --range-start into Other. The aren't Format
  options.
2017-09-13 18:21:04 +08:00
Simon Lydell c99f7e2e38 Tweak option descriptions 2017-09-13 18:21:04 +08:00
Simon Lydell 602c2a2774 Rename detailOptions to detailedOptions 2017-09-13 18:21:04 +08:00
Simon Lydell 661c029036 Make createUsage a bit easier to read 2017-09-13 18:21:04 +08:00
Simon Lydell 4e5c808730 Fix typo in option description 2017-09-13 18:21:04 +08:00
Simon Lydell e060406df1 Update options config comment 2017-09-13 18:21:04 +08:00
Simon Lydell 2b9e1f80c5 Refactor option category grouping 2017-09-13 18:21:04 +08:00
Simon Lydell c2847d90cd Make ESLint catch category typos 2017-09-13 18:21:04 +08:00
Simon Lydell f53eab9b8d Make cli-util.js a bit more readable 2017-09-13 18:21:04 +08:00
Simon Lydell e192279218 Remove the other .splice in cli-util.js 2017-09-13 18:21:04 +08:00
Simon Lydell 1c6a881ed9 Remove one .splice in cli-util.js 2017-09-13 18:21:04 +08:00
Simon Lydell 79eaa5a6e1 Remove reassignment in createUsage 2017-09-13 18:21:04 +08:00
Simon Lydell 72132b4e97 Remove trailing whitespace in cli-constant.js 2017-09-13 18:21:04 +08:00
Simon Lydell 8ba2acadbb Make sure that shown playground Prettier version always is in sync 2017-09-12 22:17:06 +02:00
Simon Lydell 951aed47f6 Print playground AST with Prettier to make it easier to read 2017-09-12 22:17:06 +02:00
Simon Lydell 482a1d8311 Improve doc and ast editor appearance 2017-09-12 22:17:06 +02:00
Simon Lydell c08b70a0da Update playground service worker script caching 2017-09-12 08:03:10 +02:00
Simon Lydell d6eeaae29b Fix some playground HTML errors and warnings 2017-09-11 19:59:03 +02:00
Simon Lydell cdb7c0d4e3 Set playground Codemirror mode based on parser 2017-09-11 19:55:15 +02:00
Simon Lydell a768740945 Update issue template 2017-09-11 19:28:17 +02:00
Simon Lydell 1827d65d93 Add a "Copy as markdown" button to the playground 2017-09-11 19:27:56 +02:00
Simon Lydell a29b407dda Generalize run-external-typescript-tests.js (#2742)
... so it can run external Flow tests as well (or any external tests for
that matter).
2017-09-03 13:41:07 -07:00
Simon Lydell 133303f47a Ignore some things in coverage (#2741)
- If statements for old deprecated stuff.
- "This should never happen" (and never happens in the tests) code paths.
2017-09-03 13:40:44 -07:00
Simon Lydell 368522cf33 Normalize CSS case (#2736)
Fixes #2653.
2017-09-03 21:22:28 +02:00
Simon Lydell 58350cbe59 Fix failing test on Travis CI
Chalk disables colors in CI environments, making the test pass locally
but not on Travis CI.

This also makes the snapshot more readable.
2017-09-03 17:02:12 +02:00
Simon Lydell fd025a855e Merge pull request #2738 from ikatyang/test/more-cli-tests
test(integration): add more tests
2017-09-03 16:24:44 +02:00
Simon Lydell f903ae45ed Make run-external-typescript-tests.js cross-platform (#2737)
The old version had quite a bit of code related to grouping errors,
showing the number of errors per group and saving the groups of errors
to different files. However, now there are only 12 bad tests so I didn't
bother porting that logic to the new version. Instead, the errors a
simply printed to stdout.
2017-09-03 15:59:19 +02:00
Simon Lydell 63835d1ccb Fix config file finding when using stdin (#2692)
Fixes #2689
2017-08-29 08:58:08 +02:00
Simon Lydell 7c9e589323 Fix CLI option parsing (#2684)
Fixes #2683
2017-08-29 08:16:04 +02:00
Simon Lydell cd9ad2c57c Clarify --trailing-comma a bit
Refs. #2655
2017-08-23 17:44:07 +02:00
Simon Lydell 854bb3ccc5 Merge pull request #2627 from lydell/css-numbers
Normalize numbers in CSS like JS
2017-08-22 19:05:08 +02:00
Simon Lydell 302d1d89cb Switch to postcss-values-parser with support for exponential notation 2017-08-22 18:50:10 +02:00
Simon Lydell e5f84467b7 Normalize numbers in CSS like JS
Unlike JS, `1.0` is also normalized to `1`.
2017-08-22 18:50:10 +02:00
Simon Lydell 5f95e68913 Quote unquoted CSS attribute values in selectors (#2644) 2017-08-22 09:45:15 -07:00
Simon Lydell 876dfe6398 Work around issue #2584 (#2652)
parser-postcss parses `@import` at-rules specially, and unfortunately
buggily. This monkey-patches parser-postcss to parse all at-rules the
same way.

Fixes #2584.

postcss-less bug: https://github.com/shellscape/postcss-less/issues/88
2017-08-22 09:44:25 -07:00
Simon Lydell 3e924474cd Print sub-nodes of @import in Less (#2646)
Fixes part of #2584.
2017-08-21 12:28:22 -07:00
Simon Lydell 61bff8adc6 Merge pull request #2633 from lydell/more-css-strings
Adjust some more quotes in CSS
2017-08-17 17:56:37 +02:00
Simon Lydell 9e16dbbde7 Adjust some more quotes in CSS 2017-08-17 08:59:56 +02:00
Simon Lydell c198c33700 Merge pull request #2624 from lydell/css-strings
Normalize quotes in CSS like in JS
2017-08-15 16:07:06 +02:00
Simon Lydell b286ed171e Fix AST_COMPARE for CSS strings 2017-08-15 07:58:19 +02:00
Simon Lydell 4979f58c15 Normalize quotes in CSS like in JS 2017-08-14 09:14:57 +02:00
Simon Lydell 7b176b5d73 Merge pull request #2341 from lydell/shelljs
Convert build.sh into build.js using shelljs
2017-06-29 18:26:27 +02:00
Simon Lydell 20a0723fc1 Convert build.sh into build.js using shelljs
For better cross platform compatibility.
2017-06-28 22:34:59 +02:00
Simon Lydell ba51d2dfa8 Enable linting of build scripts 2017-06-28 21:37:33 +02:00
Simon Lydell 174bbda7ef Minor readme cleanups 2017-06-26 17:42:28 +02:00
Simon Lydell e8fb9bddf7 Fix type in README.md 2017-06-21 20:12:18 +02:00
Simon Lydell 48d9267dd5 Fix lint error 2017-05-26 22:13:29 +02:00
Simon Lydell fe48638376 Don't pass too many arguments to functions (#1750)
Found using Flow.
2017-05-26 13:01:03 -07:00
Simon Lydell 01b953c580 Saying "Coming soon" doesn't really help anyway 2017-05-24 23:06:04 +02:00
Simon Lydell 4babc032cb Make it easier to find the WebStorm guide 2017-05-24 22:59:55 +02:00
Simon Lydell 0adeadb16e Link to node-glob's "glob primer"
As mentioned in #1707.
2017-05-24 18:17:31 +02:00
Simon Lydell c2a3d23133 Improve the --list-different example
- Use double quotes for Windows support.
- Use the long flag for readability.
- Show that you should pass in your formatting options as well.
2017-05-22 20:30:10 +02:00
Simon Lydell 378682350f Improve ESLint setup and fix errors (#1656)
* Improve ESLint setup

- Uses `eslint:recommended` + a handful more rules.
- Uses .eslintignore so that editors can understand which files to lint.
- Uses .eslintrc<strong>.js</strong> so more editors get syntax highlighting.

* Fix ESLint errors

About half of them were fixed by `eslint . --fix`.
2017-05-21 12:11:09 -07:00
Simon Lydell bc5186e544 Run Prettier on all source files (#1648)
This commit updates `npm run format:all` to not only format .js files in
src/ and bin/, but also tests_config/ and scripts/, as well as all
jsfmt.spec.js files.

It also includes the result of running `npm run format:all`, except
changes to src/ and bin/.
2017-05-21 08:13:11 -07:00
Simon Lydell 8ad3aeff6a Sync the Flow tests (#1638) 2017-05-20 03:16:28 -07:00
Simon Lydell 938f0e3404 Improve regex printing (#1341)
- Print the raw regex for Flow, just like for Babylon.
- Sort regex flags.

Fixes #1334.
2017-04-19 10:24:13 -07:00
Simon Lydell 706640d6dd Optimize prettier --help for humans (#1340) 2017-04-19 09:04:47 -07:00
Simon Lydell dc93bdc983 Sync the Flow tests (#1163)
* Extract custom tests from tests/flow/

Approach:

1. Remove all .js files in tests/flow except .snap.js files.
2. Copy over all .js files from tests/ in the flow repo.
3. Go through the diff looking for deletions.
   - It was easy to see which deletions were due to changes in the tests
     due to updates in the flow repo.
   - For the rest of the deletions, I used `git blame` to verify that
     they had been added by us since the flow tests were copied over.

This makes tests/flow/ simply a copy of the tests from the flow repo,
making it easier to sync with the upstream flow tests in the future.

* Add a script for syncing the flow tests

* Sync the flow tests
2017-04-08 07:52:38 -07:00
Simon Lydell 96b0a33cff Fix printing of exact object flow type annotations (#1114)
Fixes #1089.
2017-04-03 10:24:36 -07:00
Simon Lydell e7312ad7b2 Remove mutation in printBinaryishExpressions (#1067) 2017-03-21 14:49:08 -07:00
Simon Lydell 25bbe1accb Improve readme CLI usage example (#910)
- Use double quotes for cmd.exe support. See #761.
- Remove redundant example and merge it into the previous.
2017-03-06 03:45:16 -08:00
Simon Lydell b91d6384a6 Fix 0.5e0 (#911)
* Don't generate invalid scientific notation

Fixes #902.

* Remove unnecessary scientific notation (1e0)
2017-03-06 03:44:05 -08:00
Simon Lydell 25340671d3 Update list of related projects (#833) 2017-02-28 09:24:08 -08:00
Simon Lydell 69b7bd3fa8 Revert "Print \x and \u escapes in strings and regexes lowercase (#522)" (#574)
This reverts commit 7148184d65.

There are four types of literals where escapes were normalized:

1. Strings ('\xAb' and "\xAb")
2. Regexes (/\xAb/)
3. Untagged template literals (`\xAb`)
4. Tagged template literals (tag`\xAb`)

However, changing the case of the escapes alters the runtime behavior of
in two of the above cases.

```js
/\xAb/.source === '\\xAb' // true
String.raw`\xAb` === '\\xAb' // true
```

So for regexes and tagged template literals the escapes must not be
changed. Instead of enforcing lowercase escapes in only 50% of the
different cases, it was decided not to bother with escapes at all.

Closes #562.
2017-02-02 09:54:10 -08:00
Simon Lydell 7148184d65 Print \x and \u escapes in strings and regexes lowercase (#522)
* Print \x and \u escapes in strings and regexes lowercase

Theoretically, we would want to do this for escapes int identifiers as
well. However, neither flow nor babylon preserves escapes in
identifiers. For example, `\u0061.\u{0061}` cannot be distinguished from
`a.a`. Nobody uses such escapes in real code anyway. It could also be
considered a feature that such escapes are converted to real unicode
characters.

* Update snapshots

* Normalize escapes in template literals

* Update snapshots
2017-01-31 06:56:26 -08:00
Simon Lydell d27482e2fc Print numbers in a uniform way (#498)
* Print numbers in a uniform way

- Still preserve the radix (binary, octal, hexadecimal or decimal) used
  in the original source code.
- Still preserve scientific notation.
- Add 0 to fractions. `.1` -> `0.1`
- Remove trailing dots from integers. `1.` -> `1`
- Always print the radix letters lowercase. `0b`, `0o`, `0x`
- Always print scientific notation lowercase. `1e1`
- Always print hexadecimal digits uppercase. `0x123ABCDEF`
- Remove unneeded plus in scientific notation. `1e+1` -> `1e1`
- Remove unneeded zeroes in scientific notation. `1e-001` -> `1e-1`
- Preserve leading zeroes in non-decimal radix. This can be useful when
  working in binary, and having both `0b111000` and `0b000111` for
  example.

* Always print numbers lowercase

* Remove trailing dot in scientific notation

* Update snapshots
2017-01-30 09:36:23 -08:00
Simon Lydell 94afacd2eb Mention eslint-config-prettier (#516) 2017-01-30 10:22:49 -05:00