prettier 3.0.0 → 3.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: edc974795ef0adb86312682bdedfa30cca29905f660b97334326494b8623144f
4
- data.tar.gz: 9dcdc7ecb78e7ee4fa333b45e9f2e4b5ea5df4615869ce6b172377bf21126560
3
+ metadata.gz: 5f4a11b3b694651795ea82803d2b9efaafc70bc811409eeba50a76d48aff55bd
4
+ data.tar.gz: '0039c5cd3d89db3dbff1e0b5c4cfb2f307838f77faec7c6a9c3d23781f22bb4a'
5
5
  SHA512:
6
- metadata.gz: ed0166367d99fc0af3135d76c47dae06bcddd92eaf9a7d3d680726d403a2eed16f08af8fe410c527113bf00d1a0fe11b4c6743820e4c907b2de2707884655ef3
7
- data.tar.gz: c8fa9abb2ecf3561c913f9505f7d07c56e322c6f3031d44b9725c314bfb1576c0dc68c7c7e28f8a15f9d876c4307c0c90549e1db83a4c94b184e0a872413208d
6
+ metadata.gz: 73dfee52bf2aaa09c15c6dc23f167ecf20ef983b368a0bac4ad3fb8d193044bb4109469a0eae06c93909ee0a5aef6e926035c083efe4fec9c696a2286efe3470
7
+ data.tar.gz: 02bded0e2c06e9153a16391671886f695f433c0a035b00116dc9e4fdae01a309b66d8f9147431491e81979e135c1abe6e796bf5e4c0005ebd00579d85ca9df0c
data/CHANGELOG.md CHANGED
@@ -6,6 +6,12 @@ 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
+
9
15
  ## [3.0.0] - 2022-05-04
10
16
 
11
17
  ### Added
data/README.md CHANGED
@@ -121,7 +121,7 @@ yarn add --dev prettier @prettier/plugin-ruby
121
121
  You'll also need to add the necessary Ruby dependencies. You can do this by running:
122
122
 
123
123
  ```bash
124
- gem install syntax_tree syntax_tree-haml syntax_tree-rbs
124
+ gem install bundler syntax_tree syntax_tree-haml syntax_tree-rbs
125
125
  ```
126
126
 
127
127
  The `prettier` executable is now installed and ready for use:
@@ -134,11 +134,12 @@ The `prettier` executable is now installed and ready for use:
134
134
 
135
135
  Below are the options (from [`src/plugin.js`](src/plugin.js)) that `@prettier/plugin-ruby` currently supports:
136
136
 
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
- | `tabWidth` | `--tab-width` | `2` | Same as in Prettier ([see prettier docs](https://prettier.io/docs/en/options.html#tab-width)). |
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:
data/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prettier/plugin-ruby",
3
- "version": "3.0.0",
3
+ "version": "3.1.0",
4
4
  "description": "prettier plugin for the Ruby programming language",
5
5
  "main": "src/plugin.js",
6
6
  "scripts": {
@@ -22,9 +22,9 @@
22
22
  "prettier": ">=2.3.0"
23
23
  },
24
24
  "devDependencies": {
25
- "eslint": "^8.1.0",
25
+ "eslint": "^8.15.0",
26
26
  "eslint-config-prettier": "^8.0.0",
27
- "husky": "^7.0.0",
27
+ "husky": "^8.0.1",
28
28
  "jest": "^28.0.1",
29
29
  "pretty-quick": "^3.1.2"
30
30
  },
data/src/parseSync.js CHANGED
@@ -63,7 +63,7 @@ function getInfoFilepath() {
63
63
  // server with that filepath as an argument, then spawn another process that
64
64
  // will read that information in order to enable us to connect to it in the
65
65
  // spawnSync function.
66
- function spawnServer() {
66
+ function spawnServer(opts) {
67
67
  const tempDir = mkdtempSync(path.join(os.tmpdir(), "prettier-plugin-ruby-"));
68
68
  const filepath = getInfoFilepath();
69
69
 
@@ -114,11 +114,15 @@ function spawnServer() {
114
114
  };
115
115
  }
116
116
 
117
- const server = spawn("ruby", [serverRbPath, filepath], {
118
- env: Object.assign({}, process.env, { LANG: getLang() }),
119
- detached: true,
120
- stdio: "inherit"
121
- });
117
+ const server = spawn(
118
+ "ruby",
119
+ [serverRbPath, `--plugins=${opts.rubyPlugins}`, filepath],
120
+ {
121
+ env: Object.assign({}, process.env, { LANG: getLang() }),
122
+ detached: true,
123
+ stdio: "inherit"
124
+ }
125
+ );
122
126
 
123
127
  server.unref();
124
128
  process.on("exit", () => {
@@ -171,9 +175,9 @@ function runningInPnPZip() {
171
175
  // like it) here since Prettier requires the results of `parse` to be
172
176
  // synchronous and Node.js does not offer a mechanism for synchronous socket
173
177
  // requests.
174
- function parseSync(parser, source) {
178
+ function parseSync(parser, source, opts) {
175
179
  if (!parserArgs) {
176
- parserArgs = spawnServer();
180
+ parserArgs = spawnServer(opts);
177
181
  }
178
182
 
179
183
  const response = spawnSync(parserArgs.cmd, parserArgs.args, {
data/src/plugin.js CHANGED
@@ -81,8 +81,8 @@ const plugin = {
81
81
  ],
82
82
  parsers: {
83
83
  ruby: {
84
- parse(text) {
85
- return parseSync("ruby", text);
84
+ parse(text, _parsers, opts) {
85
+ return parseSync("ruby", text, opts);
86
86
  },
87
87
  astFormat: "ruby",
88
88
  hasPragma(text) {
@@ -96,8 +96,8 @@ const plugin = {
96
96
  }
97
97
  },
98
98
  rbs: {
99
- parse(text) {
100
- return parseSync("rbs", text);
99
+ parse(text, _parsers, opts) {
100
+ return parseSync("rbs", text, opts);
101
101
  },
102
102
  astFormat: "rbs",
103
103
  hasPragma(text) {
@@ -111,8 +111,8 @@ const plugin = {
111
111
  }
112
112
  },
113
113
  haml: {
114
- parse(text) {
115
- return parseSync("haml", text);
114
+ parse(text, _parsers, opts) {
115
+ return parseSync("haml", text, opts);
116
116
  },
117
117
  astFormat: "haml",
118
118
  hasPragma(text) {
@@ -152,6 +152,15 @@ const plugin = {
152
152
  }
153
153
  }
154
154
  },
155
+ options: {
156
+ rubyPlugins: {
157
+ type: "string",
158
+ category: "Ruby",
159
+ default: "",
160
+ description: "The comma-separated list of plugins to require",
161
+ since: "3.1.0"
162
+ }
163
+ },
155
164
  defaultOptions: {
156
165
  printWidth: 80,
157
166
  tabWidth: 2
data/src/server.rb CHANGED
@@ -10,6 +10,11 @@ require "syntax_tree"
10
10
  require "syntax_tree/haml"
11
11
  require "syntax_tree/rbs"
12
12
 
13
+ # First, require all of the plugins that the user specified.
14
+ ARGV.shift[/^--plugins=(.*)$/, 1]
15
+ .split(",")
16
+ .each { |plugin| require "syntax_tree/#{plugin}" }
17
+
13
18
  # Make sure we trap these signals to be sure we get the quit command coming from
14
19
  # the parent node process
15
20
  quit = false
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: prettier
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0
4
+ version: 3.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kevin Newton
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-05-05 00:00:00.000000000 Z
11
+ date: 2022-05-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: syntax_tree