prettier 2.0.0 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +52 -6
- data/README.md +17 -16
- data/exe/rbprettier +2 -2
- data/lib/prettier/rake/task.rb +5 -5
- data/lib/prettier.rb +12 -11
- data/node_modules/prettier/bin-prettier.js +48 -18924
- data/node_modules/prettier/cli.js +12335 -0
- data/node_modules/prettier/doc.js +1306 -4755
- data/node_modules/prettier/index.js +37468 -57614
- data/node_modules/prettier/package.json +3 -2
- data/node_modules/prettier/parser-angular.js +2 -66
- data/node_modules/prettier/parser-babel.js +27 -22
- data/node_modules/prettier/parser-espree.js +26 -22
- data/node_modules/prettier/parser-flow.js +26 -22
- data/node_modules/prettier/parser-glimmer.js +27 -1
- data/node_modules/prettier/parser-graphql.js +15 -1
- data/node_modules/prettier/parser-html.js +21 -117
- data/node_modules/prettier/parser-markdown.js +61 -19
- data/node_modules/prettier/parser-meriyah.js +19 -22
- data/node_modules/prettier/parser-postcss.js +76 -22
- data/node_modules/prettier/parser-typescript.js +280 -22
- data/node_modules/prettier/parser-yaml.js +150 -15
- data/node_modules/prettier/third-party.js +8660 -11030
- data/package.json +11 -25
- data/rubocop.yml +6 -6
- data/src/getInfo.js +23 -0
- data/{dist/parser → src}/netcat.js +0 -1
- data/src/parseSync.js +216 -0
- data/src/plugin.js +170 -0
- data/{dist/parser → src}/server.rb +50 -27
- metadata +95 -75
- data/bin/console +0 -7
- data/dist/haml/embed.js +0 -53
- data/dist/haml/parser.js +0 -31
- data/dist/haml/parser.rb +0 -143
- data/dist/haml/printer.js +0 -336
- data/dist/parser/getInfo.js +0 -17
- data/dist/parser/parseSync.js +0 -179
- data/dist/plugin.js +0 -143
- data/dist/prettier.js +0 -15
- data/dist/rbs/parser.js +0 -34
- data/dist/rbs/parser.rb +0 -98
- data/dist/rbs/printer.js +0 -517
- data/dist/ruby/embed.js +0 -110
- data/dist/ruby/nodes/alias.js +0 -59
- data/dist/ruby/nodes/aref.js +0 -53
- data/dist/ruby/nodes/args.js +0 -165
- data/dist/ruby/nodes/arrays.js +0 -126
- data/dist/ruby/nodes/assign.js +0 -41
- data/dist/ruby/nodes/blocks.js +0 -87
- data/dist/ruby/nodes/calls.js +0 -260
- data/dist/ruby/nodes/case.js +0 -50
- data/dist/ruby/nodes/class.js +0 -54
- data/dist/ruby/nodes/commands.js +0 -124
- data/dist/ruby/nodes/conditionals.js +0 -242
- data/dist/ruby/nodes/constants.js +0 -38
- data/dist/ruby/nodes/flow.js +0 -66
- data/dist/ruby/nodes/hashes.js +0 -130
- data/dist/ruby/nodes/heredocs.js +0 -30
- data/dist/ruby/nodes/hooks.js +0 -35
- data/dist/ruby/nodes/ints.js +0 -27
- data/dist/ruby/nodes/lambdas.js +0 -69
- data/dist/ruby/nodes/loops.js +0 -73
- data/dist/ruby/nodes/massign.js +0 -73
- data/dist/ruby/nodes/methods.js +0 -70
- data/dist/ruby/nodes/operators.js +0 -70
- data/dist/ruby/nodes/params.js +0 -89
- data/dist/ruby/nodes/patterns.js +0 -122
- data/dist/ruby/nodes/regexp.js +0 -45
- data/dist/ruby/nodes/rescue.js +0 -85
- data/dist/ruby/nodes/return.js +0 -75
- data/dist/ruby/nodes/statements.js +0 -111
- data/dist/ruby/nodes/strings.js +0 -218
- data/dist/ruby/nodes/super.js +0 -30
- data/dist/ruby/nodes/undef.js +0 -26
- data/dist/ruby/nodes.js +0 -151
- data/dist/ruby/parser.js +0 -34
- data/dist/ruby/parser.rb +0 -3636
- data/dist/ruby/printer.js +0 -129
- data/dist/ruby/toProc.js +0 -93
- data/dist/types/haml.js +0 -4
- data/dist/types/plugin.js +0 -3
- data/dist/types/rbs.js +0 -4
- data/dist/types/ruby.js +0 -4
- data/dist/types/utils.js +0 -2
- data/dist/types.js +0 -30
- data/dist/utils/containsAssignment.js +0 -15
- data/dist/utils/getTrailingComma.js +0 -6
- data/dist/utils/hasAncestor.js +0 -15
- data/dist/utils/inlineEnsureParens.js +0 -49
- data/dist/utils/isEmptyBodyStmt.js +0 -10
- data/dist/utils/isEmptyStmts.js +0 -10
- data/dist/utils/literal.js +0 -8
- data/dist/utils/literallineWithoutBreakParent.js +0 -8
- data/dist/utils/makeCall.js +0 -13
- data/dist/utils/noIndent.js +0 -11
- data/dist/utils/printEmptyCollection.js +0 -44
- data/dist/utils/skipAssignIndent.js +0 -15
- data/dist/utils.js +0 -30
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5f4a11b3b694651795ea82803d2b9efaafc70bc811409eeba50a76d48aff55bd
|
4
|
+
data.tar.gz: '0039c5cd3d89db3dbff1e0b5c4cfb2f307838f77faec7c6a9c3d23781f22bb4a'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 73dfee52bf2aaa09c15c6dc23f167ecf20ef983b368a0bac4ad3fb8d193044bb4109469a0eae06c93909ee0a5aef6e926035c083efe4fec9c696a2286efe3470
|
7
|
+
data.tar.gz: 02bded0e2c06e9153a16391671886f695f433c0a035b00116dc9e4fdae01a309b66d8f9147431491e81979e135c1abe6e796bf5e4c0005ebd00579d85ca9df0c
|
data/CHANGELOG.md
CHANGED
@@ -6,6 +6,50 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) a
|
|
6
6
|
|
7
7
|
## [Unreleased]
|
8
8
|
|
9
|
+
## [3.1.0] - 2022-05-12
|
10
|
+
|
11
|
+
### Added
|
12
|
+
|
13
|
+
- [#1224](https://github.com/prettier/plugin-ruby/pull/1224) - kddnewton - Support passing the `rubyPlugins` option to configure Syntax Tree.
|
14
|
+
|
15
|
+
## [3.0.0] - 2022-05-04
|
16
|
+
|
17
|
+
### Added
|
18
|
+
|
19
|
+
- [#1190](https://github.com/prettier/plugin-ruby/pull/1190) - kddnewton - Encoding for source files is now guessed in a much better way.
|
20
|
+
|
21
|
+
### Changed
|
22
|
+
|
23
|
+
- [#1198](https://github.com/prettier/plugin-ruby/issues/1198) - pas-f, kddnewton - Fix crashes on JRuby with do blocks.
|
24
|
+
- [#1131](https://github.com/prettier/plugin-ruby/issues/1131) - hyrious, kddnewton - Ensure zombie processes are not left around when the server exits.
|
25
|
+
- [#1206](https://github.com/prettier/plugin-ruby/pull/1206) - kddnewton - Switch back to plain JavaScript for development.
|
26
|
+
- [#1190](https://github.com/prettier/plugin-ruby/pull/1190) - kddnewton - Switch over to using Syntax Tree for the backend.
|
27
|
+
|
28
|
+
### Removed
|
29
|
+
|
30
|
+
- [#1190](https://github.com/prettier/plugin-ruby/pull/1190) - kddnewton - The configuration options have been removed. Instead, configuration is to be done through modifying Syntax Tree.
|
31
|
+
|
32
|
+
## [2.1.0] - 2022-04-04
|
33
|
+
|
34
|
+
### Added
|
35
|
+
|
36
|
+
- [#1065](https://github.com/prettier/plugin-ruby/issues/1065) - langalex, kddnewton - The ability to set the `PRETTIER_RUBY_TIMEOUT_MS` environment variable to control how long to wait for the parser server to spin up.
|
37
|
+
- [#1173](https://github.com/prettier/plugin-ruby/pull/1173) - dleavitt - Support for RBS 2.x on Ruby 3.1.
|
38
|
+
|
39
|
+
### Changed
|
40
|
+
|
41
|
+
- [#1028](https://github.com/prettier/plugin-ruby/issues/1028) - levymetal, kddnewton - Fix up some nested formatting with very complicated RSpec assertions.
|
42
|
+
- [#1035](https://github.com/prettier/plugin-ruby/issues/1035) - qcn, kddnewton - Ensure we don't try to print `return` incorrectly when multiple statements are contained within parentheses.
|
43
|
+
- [#1048](https://github.com/prettier/plugin-ruby/pull/1048) - kddnewton - Completely refactor the Ruby parser to use classes instead of hashes. Also remove a lot of the `body` keys are replace them with actual names.
|
44
|
+
- [#1042](https://github.com/prettier/plugin-ruby/issues/1042) - JoshuaKGoldberg, kddnewton - Ensure blocks are printed correctly when there are trailing comments on the `do` keyword.
|
45
|
+
- [#1134](https://github.com/prettier/plugin-ruby/pull/1134) - mhssmnn - Fix piping for STDIN to the gem process.
|
46
|
+
- [#1167](https://github.com/prettier/plugin-ruby/pull/1167) - dleavitt - More consistent assignment indentation.
|
47
|
+
- [#1074](https://github.com/prettier/plugin-ruby/issues/1074) - wagenet, kddnewton - Fix up `return` when nodes return arrays of docs.
|
48
|
+
|
49
|
+
### Removed
|
50
|
+
|
51
|
+
- [#1048](https://github.com/prettier/plugin-ruby/pull/1048) - kddnewton - Drop support for Ruby 2.5.
|
52
|
+
|
9
53
|
## [2.0.0] - 2021-10-28
|
10
54
|
|
11
55
|
### Changed
|
@@ -295,7 +339,6 @@ The comment in the above example should stay in place.
|
|
295
339
|
|
296
340
|
```ruby
|
297
341
|
begin
|
298
|
-
|
299
342
|
rescue Foo, Bar
|
300
343
|
# comment
|
301
344
|
end
|
@@ -451,7 +494,8 @@ return (a or b) if c?
|
|
451
494
|
- kddnewton - Support for the `nokw_param` node for specifying when methods should no accept keywords, as in:
|
452
495
|
|
453
496
|
```ruby
|
454
|
-
def foo(**nil)
|
497
|
+
def foo(**nil)
|
498
|
+
end
|
455
499
|
```
|
456
500
|
|
457
501
|
- kddnewton - Support for the `args_forward` node for forwarding all types of arguments, as in:
|
@@ -497,9 +541,9 @@ will now be printed as:
|
|
497
541
|
|
498
542
|
```ruby
|
499
543
|
Config::Download.new(
|
500
|
-
|
501
|
-
filename:
|
502
|
-
url:
|
544
|
+
"prettier",
|
545
|
+
filename: "prettier.yml",
|
546
|
+
url: "https://raw.githubusercontent.com/..."
|
503
547
|
).perform
|
504
548
|
```
|
505
549
|
|
@@ -1187,7 +1231,9 @@ would previously result in `array[]`, but now prints properly.
|
|
1187
1231
|
|
1188
1232
|
- Initial release 🎉
|
1189
1233
|
|
1190
|
-
[unreleased]: https://github.com/prettier/plugin-ruby/compare/
|
1234
|
+
[unreleased]: https://github.com/prettier/plugin-ruby/compare/v3.0.0...HEAD
|
1235
|
+
[3.0.0]: https://github.com/prettier/plugin-ruby/compare/v2.1.0...v3.0.0
|
1236
|
+
[2.1.0]: https://github.com/prettier/plugin-ruby/compare/v2.0.0...v2.1.0
|
1191
1237
|
[2.0.0]: https://github.com/prettier/plugin-ruby/compare/v2.0.0-rc4...v2.0.0
|
1192
1238
|
[2.0.0-rc4]: https://github.com/prettier/plugin-ruby/compare/v2.0.0-rc3...v2.0.0-rc4
|
1193
1239
|
[2.0.0-rc3]: https://github.com/prettier/plugin-ruby/compare/v2.0.0-rc2...v2.0.0-rc3
|
data/README.md
CHANGED
@@ -59,9 +59,9 @@ d = [
|
|
59
59
|
30_643_069_058
|
60
60
|
]
|
61
61
|
a, s = [], $*[0]
|
62
|
-
s.each_byte { |b| a << (
|
62
|
+
s.each_byte { |b| a << ("%036b" % d[b.chr.to_i]).scan(/\d{6}/) }
|
63
63
|
a.transpose.each do |a|
|
64
|
-
a.join.each_byte { |i| print i == 49 ? ($*[1] ||
|
64
|
+
a.join.each_byte { |i| print i == 49 ? ($*[1] || "#") : 32.chr }
|
65
65
|
puts
|
66
66
|
end
|
67
67
|
```
|
@@ -83,7 +83,7 @@ This plugin currently supports formatting the following kinds of files:
|
|
83
83
|
Add this line to your application's Gemfile:
|
84
84
|
|
85
85
|
```ruby
|
86
|
-
gem
|
86
|
+
gem "prettier"
|
87
87
|
```
|
88
88
|
|
89
89
|
And then execute:
|
@@ -118,6 +118,12 @@ Or if you're using `yarn`, then add the plugin by:
|
|
118
118
|
yarn add --dev prettier @prettier/plugin-ruby
|
119
119
|
```
|
120
120
|
|
121
|
+
You'll also need to add the necessary Ruby dependencies. You can do this by running:
|
122
|
+
|
123
|
+
```bash
|
124
|
+
gem install bundler syntax_tree syntax_tree-haml syntax_tree-rbs
|
125
|
+
```
|
126
|
+
|
121
127
|
The `prettier` executable is now installed and ready for use:
|
122
128
|
|
123
129
|
```bash
|
@@ -128,31 +134,26 @@ The `prettier` executable is now installed and ready for use:
|
|
128
134
|
|
129
135
|
Below are the options (from [`src/plugin.js`](src/plugin.js)) that `@prettier/plugin-ruby` currently supports:
|
130
136
|
|
131
|
-
| API Option
|
132
|
-
|
|
133
|
-
| `printWidth`
|
134
|
-
| `requirePragma`
|
135
|
-
| `
|
136
|
-
| `
|
137
|
-
| `rubyModifier` | `--ruby-modifier` | `true` | When it fits on one line, allows while and until statements to use the modifier form. |
|
138
|
-
| `rubySingleQuote` | `--ruby-single-quote` | `true` | When double quotes are not necessary for interpolation, prefers the use of single quotes for string literals. |
|
139
|
-
| `rubyToProc` | `--ruby-to-proc` | `false` | When possible, convert blocks to the more concise `Symbol#to_proc` syntax. |
|
140
|
-
| `tabWidth` | `--tab-width` | `2` | Same as in Prettier ([see prettier docs](https://prettier.io/docs/en/options.html#tab-width)). |
|
141
|
-
| `trailingComma` | `--trailing-comma` | `"none"` | Same as in Prettier ([see prettier docs](https://prettier.io/docs/en/options.html#trailing-comma)). `"es5"` is equivalent to `true`. |
|
137
|
+
| API Option | CLI Option | Default | Description |
|
138
|
+
| --------------- | ------------------ | :-----: | --------------------------------------------------------------------------------------------------------------------------- |
|
139
|
+
| `printWidth` | `--print-width` | `80` | Same as in Prettier ([see prettier docs](https://prettier.io/docs/en/options.html#print-width)). |
|
140
|
+
| `requirePragma` | `--require-pragma` | `false` | Same as in Prettier ([see prettier docs](https://prettier.io/docs/en/options.html#require-pragma)). |
|
141
|
+
| `rubyPlugins` | `--ruby-plugins` | `""` | The comma-separated list of plugins to require. See [Syntax Tree](https://github.com/ruby-syntax-tree/syntax_tree#plugins). |
|
142
|
+
| `tabWidth` | `--tab-width` | `2` | Same as in Prettier ([see prettier docs](https://prettier.io/docs/en/options.html#tab-width)). |
|
142
143
|
|
143
144
|
Any of these can be added to your existing [prettier configuration
|
144
145
|
file](https://prettier.io/docs/en/configuration.html). For example:
|
145
146
|
|
146
147
|
```json
|
147
148
|
{
|
148
|
-
"
|
149
|
+
"tabWidth": 4
|
149
150
|
}
|
150
151
|
```
|
151
152
|
|
152
153
|
Or, they can be passed to `prettier` as arguments:
|
153
154
|
|
154
155
|
```bash
|
155
|
-
bundle exec rbprettier --
|
156
|
+
bundle exec rbprettier --tab-width 4 --write '**/*'
|
156
157
|
```
|
157
158
|
|
158
159
|
### Usage with RuboCop
|
data/exe/rbprettier
CHANGED
data/lib/prettier/rake/task.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require
|
4
|
-
require
|
3
|
+
require "rake"
|
4
|
+
require "rake/tasklib"
|
5
5
|
|
6
6
|
module Prettier
|
7
7
|
module Rake
|
@@ -35,7 +35,7 @@ module Prettier
|
|
35
35
|
def initialize(name = :prettier)
|
36
36
|
@name = name
|
37
37
|
@write = true
|
38
|
-
@source_files =
|
38
|
+
@source_files = "lib/**/*.rb"
|
39
39
|
|
40
40
|
yield self if block_given?
|
41
41
|
define_task
|
@@ -44,12 +44,12 @@ module Prettier
|
|
44
44
|
private
|
45
45
|
|
46
46
|
def define_task
|
47
|
-
desc
|
47
|
+
desc "Runs prettier over source files"
|
48
48
|
task(name) { run_task }
|
49
49
|
end
|
50
50
|
|
51
51
|
def run_task
|
52
|
-
Prettier.run([(
|
52
|
+
Prettier.run([("--write" if write), source_files].compact)
|
53
53
|
exit($?.exitstatus) if $?&.exited?
|
54
54
|
end
|
55
55
|
end
|
data/lib/prettier.rb
CHANGED
@@ -1,18 +1,19 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require
|
4
|
-
require
|
3
|
+
require "json" unless defined?(JSON)
|
4
|
+
require "open3"
|
5
5
|
|
6
6
|
module Prettier
|
7
|
-
PLUGIN = -File.expand_path(
|
8
|
-
BINARY = -File.join(PLUGIN,
|
9
|
-
VERSION = -JSON.parse(File.read(File.join(PLUGIN,
|
7
|
+
PLUGIN = -File.expand_path("..", __dir__)
|
8
|
+
BINARY = -File.join(PLUGIN, "node_modules", "prettier", "bin-prettier.js")
|
9
|
+
VERSION = -JSON.parse(File.read(File.join(PLUGIN, "package.json")))["version"]
|
10
10
|
|
11
11
|
def self.run(args)
|
12
|
-
quoted = args.map { |arg| arg.start_with?(
|
13
|
-
command = "node #{BINARY} --plugin \"#{PLUGIN}\" #{quoted.join(
|
12
|
+
quoted = args.map { |arg| arg.start_with?("-") ? arg : "\"#{arg}\"" }
|
13
|
+
command = "node #{BINARY} --plugin \"#{PLUGIN}\" #{quoted.join(" ")}"
|
14
14
|
|
15
|
-
stdout, stderr, status =
|
15
|
+
stdout, stderr, status =
|
16
|
+
Open3.capture3({ "RBPRETTIER" => "1" }, command, stdin_data: STDIN)
|
16
17
|
STDOUT.puts(stdout)
|
17
18
|
|
18
19
|
# If we completed successfully, then just exit out.
|
@@ -29,11 +30,11 @@ module Prettier
|
|
29
30
|
If you installed this dependency through git instead of from rubygems,
|
30
31
|
it does not install the necessary files by default. To fix this you can
|
31
32
|
either install them yourself by cd-ing into the directory where this gem
|
32
|
-
is located (#{File.expand_path(
|
33
|
+
is located (#{File.expand_path("..", __dir__)}) and running:
|
33
34
|
|
34
|
-
`yarn
|
35
|
+
`yarn install`
|
35
36
|
or
|
36
|
-
`npm install
|
37
|
+
`npm install`
|
37
38
|
or
|
38
39
|
you can change the source in your Gemfile to point directly to rubygems.
|
39
40
|
MSG
|