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
Jonas Gierer
2dba2a64da
Add prettier-github to related projects
2017-06-11 18:59:29 +02:00
Lucas Azzola
026f9b4de7
docs: prune old vim links from the table of contents
2017-06-11 22:35:35 +10:00
Christopher Chedeau
d062961ccf
Create README.md
2017-06-08 16:57:26 -07:00
Mitermayer Reis
8a87681f66
Adding vim editor reference ( #2041 )
...
* Adding --stdin-filepath option in order to enable filetype inference from
stdin
* Creating vim editor integration docs
- Moving vim editor integration into editors directory
- Adding information about vim-prettier
2017-06-08 09:43:27 -07:00
Eugene Korbut
0222d8eefe
Update README for emacs integration link ( #2024 )
2017-06-07 09:21:17 -07:00
tdeschryver
4291a8cedc
Update single quote option in README ( #1952 )
...
* chore: add single quote note in readme
* chore: change readme text to quote format behaviour
2017-06-04 14:41:57 -07:00
Christian Hamburger Grøngaard
41688901f2
Make README more JavaScript agnostic ( #1955 )
...
- Prettier has grown into a more general tool.
2017-06-04 21:24:18 +10:00
Lucas Azzola
fed9f0f4eb
Mention TypeScript and CSS in the README ( #1950 )
...
* Mention TypeScript and CSS in the README.
* Collapse the table of contents with `<details>` tag.
* Clarifies the `--parser` option.
2017-06-03 20:03:30 -07:00
Christian Hamburger Grøngaard
e0682a9558
Miscellaneous minor README fixes ( #1943 )
...
* Refer to "line length" instead of "line width"
- It's consistent with what it has been called in the section so far.
* Add missing punctuation
* Remove needless "just"s
- It's less condescending to a reader who doesn't know how to
"just" do these things.
2017-06-03 11:49:15 -07:00
Ryan Castner
eb9ba74665
Update README.md ( #1859 )
2017-06-02 06:48:29 -07:00
Joseph Frazier
4bfeb9064d
Add cursorOffset option for cursor translation ( #1637 )
...
* Add `formatWithCursor` API with `cursorOffset` option
This addresses https://github.com/prettier/prettier/issues/93 by
adding a new option, `cursorOffset`, that tells prettier to determine
the location of the cursor after the code has been formatted. This is
accessible through the API via a new function, `formatWithCursor`, which
returns a `{formatted: string, cursorOffset: ?number}`.
Here's a usage example:
```js
require("prettier").formatWithCursor(" 1", { cursorOffset: 2 });
// -> { formatted: '1;\n', cursorOffset: 1 }
```
* Add `--cursor-offset` CLI option
It will print out the offset instead of the formatted output. This
makes it easier to test. For example:
echo ' 1' | prettier --stdin --cursor-offset 2
# prints 1
* Add basic test of cursor translation
* Document `cursorOffset` option and `formatWithCursor()`
* Print translated cursor offset to stderr when --cursor-offset is given
This lets us continue to print the formatted code, while also
communicating the updated cursor position.
See https://github.com/prettier/prettier/pull/1637#discussion_r119735496
* doc-print cursor placeholder in comments.printComments()
See https://github.com/prettier/prettier/pull/1637#discussion_r119735149
* Compare array index to -1 instead of >= 0 to determine element presence
See https://github.com/prettier/prettier/pull/1637#discussion_r119736623
* Return {formatted, cursor} from printDocToString() instead of mutating options
See https://github.com/prettier/prettier/pull/1637#discussion_r119737354
2017-06-01 15:52:29 -07:00
Mitermayer Reis
0d9b04bc94
Adding --stdin-filepath option in order to enable filetype inference … ( #1835 )
...
* Adding --stdin-filepath option in order to enable filetype inference from stdin to allow chosing css parser
* Adding readme information on the filepath option
* Also including support for typescript parser inference.
* Running linter
2017-05-31 12:26:22 -07:00
Patrick Roumanoff
96b8119b4b
added related projects Bookmarklet ( #1824 )
2017-05-30 21:50:51 -07:00
Marcel Mokoš
f0683b8e1a
Update README.md version of prettier in pre-commit ( #1788 )
...
- a version of prettier to latest in README in pre-commit config yaml example
2017-05-28 12:24:50 -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
Dara Hak
1f378b9755
Replace JetBrains with WebStorm in README.md ( #1715 )
...
The links are clearly about the WebStorm IDE and JetBrains is just the company's name.
This can be confusing for users.
2017-05-24 13:33:32 -07:00
Simon Lydell
0adeadb16e
Link to node-glob's "glob primer"
...
As mentioned in #1707 .
2017-05-24 18:17:31 +02:00
Michał Pierzchała
09df0fbe15
Extract contributing guide into separate document ( #1702 )
2017-05-24 08:32:20 -07:00
Michał Pierzchała
3a431d3fe7
Document --with-node-modules flag ( #1701 )
2017-05-24 03:25:45 -07:00
Joseph Frazier
330601c77d
Find nearest node when formatting range ( #1659 )
...
* Move range extension code into helper functions
* Add findNodeByOffset() helper
This was adapted from https://github.com/prettier/prettier/pull/1637/commits/cbc1929c64db558b4e444500bca3d2ce1d550359
* Test extending formatted range to entire node
* Fix extending formatted range to entire node
* Fix style errors
* Add run_file test function
This makes it possible to use different options on a per-file basis,
which is useful for things like range formatting tests.
* Test extending the format range to nearest parseable node
This means you can select the range of a `catch` clause, attempt to
format it, and have the `try` formatted as well, rather than throwing an
error.
* Fix extending the format range to nearest parseable node
This means you can select the range of a `catch` clause, attempt to
format it, and have the `try` formatted as well, rather than throwing an
error.
* Test that external indentation is left alone when formatting a range
* Preserve external indentation when formatting a range
* Dedupe range formatting traversal callbacks
* Simplify range formatting traversal using ast-types
See https://github.com/prettier/prettier/pull/1659#issuecomment-302974798
* Make range formatting traversal more efficient
There's less unnecessary parsing now.
* Fix style errors
* Add test where range expanding fails
* Fix test where range expanding fails
This makes sure that the range contains the entirety of the nodes
containing each of the range's endpoints.
* Add test for expanding range to beginning of line
* Pass test for expanding range to beginning of line
This makes it so that indentation before the range is added to the
formatted range.
* Don't parse/stringify AST to detect pre-range indentation
See https://github.com/prettier/prettier/pull/1659#discussion_r117790671
* When formatting a range, find closest statement rather than parsing
The `isStatement` implementation came from `docs/prettier.min.js`.
See https://github.com/prettier/prettier/pull/1659#issuecomment-303154770
* Add test for range-formatting a FunctionDeclaration's argument object
* Include FunctionDeclaration when searching for nearest node to range-format
From the spec, a Program is a series of SourceElements, each of which is
either a Statement or a FunctionDeclaration. See
https://www.ecma-international.org/ecma-262/5.1/#sec-A.5
* Remove unnecessary try-catch
See https://github.com/prettier/prettier/pull/1659#discussion_r117810096
* Add tests with multiple statements
See https://github.com/prettier/prettier/pull/1659#discussion_r117810753
* Remove unnecessary arguments from findNodeByOffset()
* Contract format range to ensure it starts/ends on nodes
* Specify test ranges in the fixtures
See https://github.com/prettier/prettier/pull/1659#discussion_r117811186
* Remove unnecessary comments from range fixtures
* Remove run_file test function
It's no longer used. This essentially reverts
8241216e68f2e0da997a4f558b03658d642c89a2
* Update range formatting docs
Clarify that the range expands to the nearest statement, and not to the
end of the line.
* Don't overwrite test options when detecting range
Now that multiple files share the same object again, we shouldn't be
re-assigning to it.
* Reuse already-read fixtures for AST_COMPARE=1 tests
* Remove `run_file` global from test eslintrc
* Undo package.json churn
`yarn` reformatted it before, but the whitespace visually sets off the
comment, so let's put it back how it was before.
See https://github.com/prettier/prettier/pull/1659#discussion_r117864655
* Remove misleading comments from isSourceElement
See https://github.com/prettier/prettier/pull/1659#discussion_r117865196
* Loop backwards through string instead of reversing it
See https://github.com/prettier/prettier/pull/1659#discussion_r117865759
* Don't recompute indent string when formatting range
See https://github.com/prettier/prettier/pull/1659#discussion_r117867268
* Rename findNodeByOffset to findNodeAtOffset
"Find x by y" is the common usage for finding an `x` by a key `y`.
However, since "by" has positional meaning, let's use "at" instead.
See https://github.com/prettier/prettier/pull/1659#discussion_r117865121
* Always trimRight() in formatRange and explain why
See https://github.com/prettier/prettier/pull/1659#discussion_r117864635
* Test formatting a range that crosses AST levels
See https://github.com/prettier/prettier/pull/1659#issuecomment-303243688
* Fix formatting a range that crosses AST levels
See https://github.com/prettier/prettier/pull/1659#issuecomment-303243688
* Remove unnecessary try-catch
See https://github.com/prettier/prettier/pull/1659/files/e52db5e9f9ec4af599f658da03739e206dd4578c#r117878763
* Add test demonstrating range formatting indent detection
* Detect alignment from text on line before range, but don't reformat it
This avoids reformatting non-indentation that happens to precede the
range on the same line, while still correctly indenting the range based
on it.
See https://github.com/prettier/prettier/pull/1659#discussion_r117881430
2017-05-23 07:43:58 -07: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
Mateusz Zatorski
0a5d035a85
Add example of --list-different flag usage to readme ( #1665 )
...
* Add example of `--list-different` flag usage to readme
* review fixes
* typo
* add code blocks
2017-05-22 11:27:24 -07:00
Christopher Chedeau
50e95d6c7c
Update README.md
2017-05-21 13:37:58 -07:00
Christopher Chedeau
5e8125b96e
Move options around
2017-05-21 13:21:29 -07:00
Christopher Chedeau
801519ec79
Warn against > 80 columns
2017-05-21 13:17:02 -07: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
Joseph Frazier
569380155b
Add --range-start and --range-end options to format only parts of the input ( #1609 )
...
* Add `--range-start` and `--range-end` options to format only parts of the input
These options default to `0` and `Infinity`, respectively, so that the
entire input is formatted by default. However, if either option is
specified such that a node lies completely outside the resulting range,
the node will be treated as if it has a `// prettier-ignore` comment.
Related to https://github.com/prettier/prettier/pull/1577#issuecomment-300551179
Related to https://github.com/prettier/prettier/issues/1324
Related to https://github.com/prettier/prettier/issues/593
* printer: Extract hasPrettierIgnoreComment() helper
* Move isOutsideRange() to util
* Don't throw errors about comments outside range "not printing"
* Remove unnecessary check from isOutsideRange()
* Make --range-end exclusive
This lets it use the conventional way of specifying ranges in strings.
Note that if the rangeEnd in the tests is changed to 158, it will fail,
but it wouldn't have failed before this change.
* Change range formatting approach
NOTE: This doesn't pass its test yet. Note that since we're reading the
indentation from the first line, it is expected not to change. However,
a semicolon is added, and the lines outside the range are not changed.
The new approach is roughly:
* Require that the range exactly covers an integer number of lines of the input
* Detect the indentation of the line the range starts on
* Format the range's substring using `printAstToDoc`
* Add enough `indent`s to the doc to restore the detected indentation
* Format the doc to a string with `printDocToString`
* Prepend/append the original input before/after the range
See https://github.com/prettier/prettier/pull/1609#issuecomment-301582273
---
Given `tests/range/range.js`, run the following:
prettier tests/range/range.js --range-start 165 --range-end 246
See the range's text with:
dd if=tests/range/range.js ibs=1 skip=165 count=81 2>/dev/null
* Don't use default function parameters
Node v4 doesn't support them. See
http://node.green/#ES2015-syntax-default-function-parameters
* Hackily fix indentation of range formatting
See
https://github.com/prettier/prettier/pull/1609#issuecomment-301625368
Also update the snapshot to reflect that the indentation actually should
decrease by one space, since there were 13 spaces in the input and we
round down after dividing by tabWidth.
* Revert "printer: Extract hasPrettierIgnoreComment() helper"
See https://github.com/prettier/prettier/pull/1609#discussion_r116804853
This reverts commit 62bf068ca98f69d4a7fd0ae188b3554d409eee8d.
* Test automatically using the beginning of the rangeStart line and same for the end
See https://github.com/prettier/prettier/pull/1609#issuecomment-301862076
* Fix automatically using the beginning of the rangeStart line and same for the end
See https://github.com/prettier/prettier/pull/1609#issuecomment-301862076
* Propagate breaks after adding an indentation-triggering hardline
See https://github.com/prettier/prettier/pull/1609/files/c1a61ebde8be73414c0a54bde3f323ac24295715#r116805581
* Extract getAlignmentSize(), use instead of countIndents()
See https://github.com/prettier/prettier/pull/1609/files/c1a61ebde8be73414c0a54bde3f323ac24295715#r116804694
* Extract addAlignmentToDoc(), use instead of addIndentsToDoc()
See https://github.com/prettier/prettier/pull/1609/files/c1a61ebde8be73414c0a54bde3f323ac24295715#r116804694
* Document that --range-start and --range-end include the entire line
* Fix rangeStart calculation
Before, it was incorrectly resulting in 1 when the originally provided
value was 0
* Extract formatRange() helper function
* Move getAlignmentSize() from printer to util
This addresses https://github.com/prettier/prettier/pull/1609#discussion_r117636241
* Move addAlignmentToDoc() from printer to doc-builders
This addresses https://github.com/prettier/prettier/pull/1609#discussion_r117636251
2017-05-21 10:14:13 -07:00
Henric Trotzig
f3a049627d
Add instruction on how to set up key binding in vim ( #1654 )
...
I'm a vim user, and I use prettier on a few of my projects, but not all.
The Prettier docs listed ways to make prettier run automatically on save
(and other autocmd events), but I needed a way to invoke it manually.
After spending some time finding the right vim config, I decided it
could be useful to others as well.
Fixes #1615
2017-05-21 10:08:26 -07:00
Shaun LeBron
2fd7199c11
Clarify when original styling is significant ( #1620 )
...
* Clarify when original styling is significant
* add superscript "1" as footnote link
* use "*" instead of "1" to denote a caveat
2017-05-17 21:03:52 -07:00
Joseph Frazier
f5c52890b5
Fix typo: parse -> parser ( #1596 )
2017-05-12 08:04:42 -07:00
Christopher Chedeau
ef9a93dce2
Update README.md
2017-05-10 15:55:00 -07:00
Stephen Eisenhauer
dfbea5d8ab
Improve clarity of boolean option documentation ( #1573 )
...
As discussed on #1564 , improve the clarity of the descriptions for the bracketSpacing and semicolons options by describing what the options do rather than what their CLI overrides do; These were confusing as written because these options default to true, and their CLI overrides trigger the opposite behavior.
2017-05-10 08:15:32 -07:00
Joseph Frazier
8ce393a425
Remove trailing whitespace from src/ and markdown files ( #1576 )
2017-05-10 08:15:11 -07:00
Joseph Frazier
ebe85917a3
Add warning about vanilla Vim integration, recommend Neoformat ( #1568 )
...
* Add warning about vanilla Vim integration
Fixes https://github.com/prettier/prettier/issues/743
Fixes https://github.com/prettier/prettier/issues/1191
Fixes https://github.com/prettier/prettier/issues/1466
* Recommend Neoformat over vanilla Vim integration
See https://github.com/prettier/prettier/issues/743
See https://github.com/prettier/prettier/issues/1191
See https://github.com/prettier/prettier/issues/1466
* Remove vanilla Vim integration from README
Since it's relatively broken, we don't want to recommend it.
See https://github.com/prettier/prettier/pull/1568#issuecomment-300270038
This also adds a TOC link for the "Other `autocmd` events" section,
which was previously missing.
2017-05-09 12:50:01 -07:00
Stephen Eisenhauer
93472d0998
Fix incorrect options documentation in README ( #1564 )
...
* Fix incorrect options documentation in README
The options section in the README (which appears to be the primary source of truth for documentation) had incorrectly conflated the bracketSpacing and jsxBracketSameLine options into a single table row (using the human readable name for one, the machine readable names for another, and combined descriptions of both). This patch splits the row into two accurate ones.
* Revise previous correction to options documention in README
Incorporating feedback in #1564
2017-05-09 12:06:40 -07:00
Joseph Frazier
225fa57780
Mention --debug-check in CLI section of README ( #1562 )
...
* Prevent using --write with --debug-check
This addresses https://github.com/prettier/prettier/issues/1552#issuecomment-300043294
* Exit with a non-zero code if --debug-check fails
This makes it easier to use programmatically. See
https://github.com/prettier/prettier/issues/1552#issuecomment-300042417
* Mention --debug-check in CLI section of README
This addresses https://github.com/prettier/prettier/issues/1552#issuecomment-300043294
2017-05-09 02:51:04 -07:00
Prathik Shetty
c2bdcbe996
Include pre-commit plugin ( #1493 )
...
* Update README.md
* Update README.md
* Update README.md
* Update README.md
2017-05-06 07:59:23 -07:00
Dorian Karter
d3d5d57984
Use setlocal in all vim examples ( #1403 )
2017-05-05 09:13:08 -07:00
Jake Trent
3cfc37d411
Options readme ( #1406 )
...
* add options table to readme
* remove options from api usage in favor of options table
and link a few paragraphs to the options section
2017-05-05 09:10:23 -07:00
Michal Srb
768a81c5d5
Add example of using yarn test with arguments ( #1383 )
...
Not sure if the copy is great, but since this is mostly for n00bs, better to err on side of more information.
2017-04-21 15:54:28 -07:00
Brent Vatne
e2fbaaf1f3
Update link to @vjeux's React London presentation ( #1330 )
2017-04-19 10:22:01 -07:00
Joseph Frazier
dc499ba990
Add information about Vim's other autocmd events ( #1333 )
...
This lets you configure Vim to format your code even more frequently.
2017-04-18 15:30:16 -07:00
Joseph Frazier
652e2f90fb
Add prettier_d to Related Projects ( #1328 )
...
`prettier_d` is like [eslint_d], but it runs `prettier` instead of
`eslint`. This eliminates the Node.js startup delay from all but the
first run of `prettier_d`, making it a snappier experience.
[eslint_d]: https://github.com/mantoni/eslint_d.js
Related discussion:
* https://github.com/prettier/prettier/issues/575#issuecomment-277368389
* https://github.com/prettier/prettier/issues/918#issuecomment-294130268
* https://github.com/prettier/prettier/pull/753#issuecomment-294339207
2017-04-18 13:27:36 -07:00
Tim
67a137f6d5
Double quotes for option values in Readme file ( #1314 )
2017-04-17 15:07:38 -07:00
Giorgio Polvara
1625730755
Remove emoji part from lint-staged's name ( #1302 )
2017-04-16 09:47:08 -07:00
Ethan Cohen
8ba3fc8623
Add --dev option to suggested install cmd ( #1289 )
...
Prettier should be saved to `devDependencies`
2017-04-15 07:05:38 -07:00
Bill Mill
306870a2a0
match jsx files in pre-commit hook ( #1276 )
2017-04-14 11:16:17 -04:00
Jason Laster
1802545865
Document debugging strategies ( #1253 )
2017-04-13 15:50:21 -07:00