prettier 3.2.2 → 4.0.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 +15 -2
- data/README.md +23 -59
- data/lib/prettier.rb +7 -5
- data/node_modules/prettier/LICENSE +5205 -0
- data/node_modules/prettier/README.md +109 -0
- data/node_modules/prettier/{bin-prettier.js → bin/prettier.cjs} +10 -5
- data/node_modules/prettier/doc.d.ts +240 -0
- data/node_modules/prettier/doc.js +1257 -1309
- data/node_modules/prettier/doc.mjs +1312 -0
- data/node_modules/prettier/index.cjs +655 -0
- data/node_modules/prettier/index.d.ts +915 -0
- data/node_modules/prettier/index.mjs +21845 -0
- data/node_modules/prettier/internal/cli.mjs +6978 -0
- data/node_modules/prettier/internal/internal.mjs +6531 -0
- data/node_modules/prettier/package.json +179 -6
- data/node_modules/prettier/plugins/acorn.d.ts +6 -0
- data/node_modules/prettier/plugins/acorn.js +13 -0
- data/node_modules/prettier/plugins/acorn.mjs +13 -0
- data/node_modules/prettier/plugins/angular.d.ts +8 -0
- data/node_modules/prettier/plugins/angular.js +2 -0
- data/node_modules/prettier/plugins/angular.mjs +2 -0
- data/node_modules/prettier/plugins/babel.d.ts +17 -0
- data/node_modules/prettier/plugins/babel.js +16 -0
- data/node_modules/prettier/plugins/babel.mjs +16 -0
- data/node_modules/prettier/plugins/estree.d.ts +0 -0
- data/node_modules/prettier/plugins/estree.js +35 -0
- data/node_modules/prettier/plugins/estree.mjs +35 -0
- data/node_modules/prettier/plugins/flow.d.ts +5 -0
- data/node_modules/prettier/plugins/flow.js +21 -0
- data/node_modules/prettier/plugins/flow.mjs +21 -0
- data/node_modules/prettier/plugins/glimmer.d.ts +5 -0
- data/node_modules/prettier/plugins/glimmer.js +30 -0
- data/node_modules/prettier/plugins/glimmer.mjs +30 -0
- data/node_modules/prettier/plugins/graphql.d.ts +5 -0
- data/node_modules/prettier/plugins/graphql.js +29 -0
- data/node_modules/prettier/plugins/graphql.mjs +29 -0
- data/node_modules/prettier/plugins/html.d.ts +8 -0
- data/node_modules/prettier/plugins/html.js +19 -0
- data/node_modules/prettier/plugins/html.mjs +19 -0
- data/node_modules/prettier/plugins/markdown.d.ts +7 -0
- data/node_modules/prettier/plugins/markdown.js +59 -0
- data/node_modules/prettier/plugins/markdown.mjs +59 -0
- data/node_modules/prettier/plugins/meriyah.d.ts +5 -0
- data/node_modules/prettier/plugins/meriyah.js +5 -0
- data/node_modules/prettier/plugins/meriyah.mjs +5 -0
- data/node_modules/prettier/plugins/postcss.d.ts +7 -0
- data/node_modules/prettier/plugins/postcss.js +52 -0
- data/node_modules/prettier/plugins/postcss.mjs +52 -0
- data/node_modules/prettier/plugins/typescript.d.ts +5 -0
- data/node_modules/prettier/plugins/typescript.js +27 -0
- data/node_modules/prettier/plugins/typescript.mjs +27 -0
- data/node_modules/prettier/plugins/yaml.d.ts +5 -0
- data/node_modules/prettier/plugins/yaml.js +161 -0
- data/node_modules/prettier/plugins/yaml.mjs +161 -0
- data/node_modules/prettier/standalone.d.ts +33 -0
- data/node_modules/prettier/standalone.js +34 -0
- data/node_modules/prettier/standalone.mjs +34 -0
- data/package.json +15 -10
- data/src/plugin.js +210 -14
- data/src/server.rb +50 -87
- metadata +60 -28
- data/CONTRIBUTING.md +0 -185
- data/node_modules/prettier/cli.js +0 -15085
- data/node_modules/prettier/index.js +0 -37282
- data/node_modules/prettier/parser-angular.js +0 -2
- data/node_modules/prettier/parser-babel.js +0 -27
- data/node_modules/prettier/parser-espree.js +0 -26
- data/node_modules/prettier/parser-flow.js +0 -35
- data/node_modules/prettier/parser-glimmer.js +0 -27
- data/node_modules/prettier/parser-graphql.js +0 -15
- data/node_modules/prettier/parser-html.js +0 -36
- data/node_modules/prettier/parser-markdown.js +0 -76
- data/node_modules/prettier/parser-meriyah.js +0 -19
- data/node_modules/prettier/parser-postcss.js +0 -76
- data/node_modules/prettier/parser-typescript.js +0 -280
- data/node_modules/prettier/parser-yaml.js +0 -150
- data/node_modules/prettier/third-party.js +0 -8978
- data/src/getInfo.js +0 -23
- data/src/netcat.js +0 -13
- data/src/parseSync.js +0 -236
data/src/plugin.js
CHANGED
@@ -1,10 +1,190 @@
|
|
1
|
-
|
1
|
+
import { spawn } from "child_process";
|
2
|
+
import fs from "fs";
|
3
|
+
import net from "net";
|
4
|
+
import os from "os";
|
5
|
+
import path from "path";
|
6
|
+
import process from "process";
|
7
|
+
import url from "url";
|
2
8
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
9
|
+
// In order to properly parse ruby code, we need to tell the ruby process to
|
10
|
+
// parse using UTF-8. Unfortunately, the way that you accomplish this looks
|
11
|
+
// differently depending on your platform.
|
12
|
+
function getLang() {
|
13
|
+
const { env, platform } = process;
|
14
|
+
const envValue = env.LC_ALL || env.LC_CTYPE || env.LANG;
|
15
|
+
|
16
|
+
// If an env var is set for the locale that already includes UTF-8 in the
|
17
|
+
// name, then assume we can go with that.
|
18
|
+
if (envValue && envValue.includes("UTF-8")) {
|
19
|
+
return envValue;
|
20
|
+
}
|
21
|
+
|
22
|
+
// Otherwise, we're going to guess which encoding to use based on the system.
|
23
|
+
// This is probably not the best approach in the world, as you could be on
|
24
|
+
// linux and not have C.UTF-8, but in that case you're probably passing an env
|
25
|
+
// var for it. This object below represents all of the possible values of
|
26
|
+
// process.platform per:
|
27
|
+
// https://nodejs.org/api/process.html#process_process_platform
|
28
|
+
return {
|
29
|
+
aix: "C.UTF-8",
|
30
|
+
android: "C.UTF-8",
|
31
|
+
cygwin: "C.UTF-8",
|
32
|
+
darwin: "en_US.UTF-8",
|
33
|
+
freebsd: "C.UTF-8",
|
34
|
+
haiku: "C.UTF-8",
|
35
|
+
linux: "C.UTF-8",
|
36
|
+
netbsd: "C.UTF-8",
|
37
|
+
openbsd: "C.UTF-8",
|
38
|
+
sunos: "C.UTF-8",
|
39
|
+
win32: ".UTF-8"
|
40
|
+
}[platform];
|
41
|
+
}
|
42
|
+
|
43
|
+
// Return the list of plugins that should be passed to the server process.
|
44
|
+
function getPlugins(opts) {
|
45
|
+
const plugins = new Set();
|
46
|
+
|
47
|
+
const rubyPlugins = opts.rubyPlugins.trim();
|
48
|
+
if (rubyPlugins.length > 0) {
|
49
|
+
rubyPlugins.split(",").forEach((plugin) => plugins.add(plugin.trim()));
|
50
|
+
}
|
51
|
+
|
52
|
+
if (opts.rubySingleQuote) {
|
53
|
+
plugins.add("plugin/single_quotes");
|
54
|
+
}
|
55
|
+
|
56
|
+
if (opts.trailingComma !== "none") {
|
57
|
+
plugins.add("plugin/trailing_comma");
|
58
|
+
}
|
59
|
+
|
60
|
+
return Array.from(plugins);
|
61
|
+
}
|
62
|
+
|
63
|
+
// Create a file that will act as a communication mechanism, spawn a parser
|
64
|
+
// server with that filepath as an argument, then wait for the file to be
|
65
|
+
// created that will contain the connection information.
|
66
|
+
export async function spawnServer(opts, killOnExit = true) {
|
67
|
+
const tmpdir = os.tmpdir();
|
68
|
+
const filepath = path.join(tmpdir, `prettier-ruby-parser-${process.pid}.txt`);
|
69
|
+
|
70
|
+
const server = spawn(
|
71
|
+
opts.rubyExecutablePath || "ruby",
|
72
|
+
[
|
73
|
+
url.fileURLToPath(new URL("./server.rb", import.meta.url)),
|
74
|
+
`--plugins=${getPlugins(opts).join(",")}`,
|
75
|
+
filepath
|
76
|
+
],
|
77
|
+
{
|
78
|
+
env: Object.assign({}, process.env, { LANG: getLang() }),
|
79
|
+
stdio: ["ignore", "ignore", "inherit"],
|
80
|
+
detached: true
|
81
|
+
}
|
82
|
+
);
|
83
|
+
|
84
|
+
server.unref();
|
85
|
+
|
86
|
+
if (killOnExit) {
|
87
|
+
process.on("exit", () => {
|
88
|
+
if (fs.existsSync(filepath)) {
|
89
|
+
fs.unlinkSync(filepath);
|
90
|
+
}
|
91
|
+
|
92
|
+
try {
|
93
|
+
if (server.pid) {
|
94
|
+
// Kill the server process if it's still running. If we're on windows
|
95
|
+
// we're going to use the process ID number. If we're not, we're going
|
96
|
+
// to use the negative process ID to indicate the group.
|
97
|
+
const pid = process.platform === "win32" ? server.pid : -server.pid;
|
98
|
+
process.kill(pid);
|
99
|
+
}
|
100
|
+
} catch (error) {
|
101
|
+
// If there's an error killing the process, we're going to ignore it.
|
102
|
+
}
|
103
|
+
});
|
104
|
+
}
|
105
|
+
|
106
|
+
return new Promise((resolve, reject) => {
|
107
|
+
const interval = setInterval(() => {
|
108
|
+
if (fs.existsSync(filepath)) {
|
109
|
+
const connectionJSON = fs.readFileSync(filepath).toString("utf-8");
|
110
|
+
resolve({
|
111
|
+
serverPID: server.pid,
|
112
|
+
connectionFilepath: filepath,
|
113
|
+
connectionOptions: JSON.parse(connectionJSON)
|
114
|
+
});
|
115
|
+
|
116
|
+
clearTimeout(timeout);
|
117
|
+
clearInterval(interval);
|
118
|
+
} else if (server.exitCode) {
|
119
|
+
reject(new Error("Failed to start parse server."));
|
120
|
+
clearTimeout(timeout);
|
121
|
+
clearInterval(interval);
|
122
|
+
}
|
123
|
+
}, 100);
|
124
|
+
|
125
|
+
const timeout = setTimeout(
|
126
|
+
() => {
|
127
|
+
const message =
|
128
|
+
"Failed to get connection options from parse server in time. If this happens repeatedly, try increasing the PRETTIER_RUBY_TIMEOUT_MS environment variable beyond 10000.";
|
129
|
+
|
130
|
+
clearInterval(interval);
|
131
|
+
reject(new Error(message));
|
132
|
+
},
|
133
|
+
parseInt(process.env.PRETTIER_RUBY_TIMEOUT_MS || "10000", 10)
|
134
|
+
);
|
135
|
+
});
|
136
|
+
}
|
137
|
+
|
138
|
+
let connectionOptions;
|
139
|
+
if (process.env.PRETTIER_RUBY_HOST) {
|
140
|
+
connectionOptions = JSON.parse(process.env.PRETTIER_RUBY_HOST);
|
141
|
+
}
|
142
|
+
|
143
|
+
// Formats and sends a request to the parser server. We use netcat (or something
|
144
|
+
// like it) here since Prettier requires the results of `parse` to be
|
145
|
+
// synchronous and Node.js does not offer a mechanism for synchronous socket
|
146
|
+
// requests.
|
147
|
+
async function parse(parser, source, opts) {
|
148
|
+
if (!connectionOptions) {
|
149
|
+
const spawnedServer = await spawnServer(opts);
|
150
|
+
connectionOptions = spawnedServer.connectionOptions;
|
151
|
+
}
|
152
|
+
|
153
|
+
return new Promise((resolve, reject) => {
|
154
|
+
const socket = new net.Socket();
|
155
|
+
|
156
|
+
socket.on("error", reject);
|
157
|
+
socket.on("data", (data) => {
|
158
|
+
const response = JSON.parse(data.toString("utf-8"));
|
159
|
+
|
160
|
+
if (response.error) {
|
161
|
+
const error = new Error(response.error);
|
162
|
+
if (response.loc) {
|
163
|
+
error.loc = response.loc;
|
164
|
+
}
|
165
|
+
|
166
|
+
reject(error);
|
167
|
+
}
|
168
|
+
|
169
|
+
resolve(response);
|
170
|
+
});
|
171
|
+
|
172
|
+
socket.connect(connectionOptions, () => {
|
173
|
+
socket.end(
|
174
|
+
JSON.stringify({
|
175
|
+
parser,
|
176
|
+
source,
|
177
|
+
maxwidth: opts.printWidth,
|
178
|
+
tabwidth: opts.tabWidth
|
179
|
+
})
|
180
|
+
);
|
181
|
+
});
|
182
|
+
});
|
183
|
+
}
|
184
|
+
|
185
|
+
// Metadata mostly pulled from linguist and rubocop:
|
186
|
+
// https://github.com/github/linguist/blob/master/lib/linguist/languages.yml
|
187
|
+
// https://github.com/rubocop/rubocop/blob/master/spec/rubocop/target_finder_spec.rb
|
8
188
|
const plugin = {
|
9
189
|
languages: [
|
10
190
|
{
|
@@ -81,8 +261,8 @@ const plugin = {
|
|
81
261
|
],
|
82
262
|
parsers: {
|
83
263
|
ruby: {
|
84
|
-
parse(text,
|
85
|
-
return
|
264
|
+
parse(text, opts) {
|
265
|
+
return parse("ruby", text, opts);
|
86
266
|
},
|
87
267
|
astFormat: "ruby",
|
88
268
|
hasPragma(text) {
|
@@ -96,8 +276,8 @@ const plugin = {
|
|
96
276
|
}
|
97
277
|
},
|
98
278
|
rbs: {
|
99
|
-
parse(text,
|
100
|
-
return
|
279
|
+
parse(text, opts) {
|
280
|
+
return parse("rbs", text, opts);
|
101
281
|
},
|
102
282
|
astFormat: "rbs",
|
103
283
|
hasPragma(text) {
|
@@ -111,8 +291,8 @@ const plugin = {
|
|
111
291
|
}
|
112
292
|
},
|
113
293
|
haml: {
|
114
|
-
parse(text,
|
115
|
-
return
|
294
|
+
parse(text, opts) {
|
295
|
+
return parse("haml", text, opts);
|
116
296
|
},
|
117
297
|
astFormat: "haml",
|
118
298
|
hasPragma(text) {
|
@@ -157,8 +337,24 @@ const plugin = {
|
|
157
337
|
type: "string",
|
158
338
|
category: "Ruby",
|
159
339
|
default: "",
|
160
|
-
description: "The comma-separated list of plugins to require",
|
340
|
+
description: "The comma-separated list of plugins to require.",
|
161
341
|
since: "3.1.0"
|
342
|
+
},
|
343
|
+
rubySingleQuote: {
|
344
|
+
type: "boolean",
|
345
|
+
category: "Ruby",
|
346
|
+
default: false,
|
347
|
+
description:
|
348
|
+
"When double quotes are not necessary for interpolation, prefers the use of single quotes for string literals.",
|
349
|
+
since: "1.0.0"
|
350
|
+
},
|
351
|
+
rubyExecutablePath: {
|
352
|
+
type: "string",
|
353
|
+
category: "Ruby",
|
354
|
+
default: "ruby",
|
355
|
+
description:
|
356
|
+
"The path to the Ruby executable to use to run the formatter.",
|
357
|
+
since: "3.3.0"
|
162
358
|
}
|
163
359
|
},
|
164
360
|
defaultOptions: {
|
@@ -169,4 +365,4 @@ const plugin = {
|
|
169
365
|
}
|
170
366
|
};
|
171
367
|
|
172
|
-
|
368
|
+
export default plugin;
|
data/src/server.rb
CHANGED
@@ -1,10 +1,8 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require "bundler/setup"
|
4
|
-
require "socket"
|
5
4
|
require "json"
|
6
|
-
require "
|
7
|
-
require "open3"
|
5
|
+
require "socket"
|
8
6
|
|
9
7
|
require "prettier_print"
|
10
8
|
require "syntax_tree"
|
@@ -16,6 +14,9 @@ ARGV.shift[/^--plugins=(.*)$/, 1]
|
|
16
14
|
.split(",")
|
17
15
|
.each { |plugin| require "syntax_tree/#{plugin}" }
|
18
16
|
|
17
|
+
# Next, get the file where we should write our connection information.
|
18
|
+
connection_filepath = ARGV.shift
|
19
|
+
|
19
20
|
# Make sure we trap these signals to be sure we get the quit command coming from
|
20
21
|
# the parent node process
|
21
22
|
quit = false
|
@@ -26,47 +27,38 @@ if Signal.list.key?("QUIT") && RUBY_ENGINE != "jruby"
|
|
26
27
|
trap(:QUIT) { quit = true }
|
27
28
|
end
|
28
29
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
server = UNIXServer.new(filepath)
|
54
|
-
|
55
|
-
# Ensure that we close the server and delete the socket file when this
|
56
|
-
# process exits.
|
57
|
-
at_exit do
|
58
|
-
server.close
|
59
|
-
File.unlink(filepath)
|
60
|
-
end
|
30
|
+
connection_information =
|
31
|
+
if Gem.win_platform?
|
32
|
+
# If we're on windows, we're going to start up a TCP server. The 0 here
|
33
|
+
# means to bind to some available port.
|
34
|
+
server = TCPServer.new(0)
|
35
|
+
address = server.local_address
|
36
|
+
|
37
|
+
# Ensure that we close the server when this process exits.
|
38
|
+
at_exit { server.close }
|
39
|
+
|
40
|
+
# Return the connection information.
|
41
|
+
{ address: address.ip_address, port: address.ip_port }
|
42
|
+
else
|
43
|
+
# If we're not on windows, then we're going to assume we can use unix socket
|
44
|
+
# files (since they're faster than a TCP server).
|
45
|
+
filepath = "/tmp/prettier-ruby-parser-#{Process.pid}.sock"
|
46
|
+
server = UNIXServer.new(filepath)
|
47
|
+
|
48
|
+
# Ensure that we close the server and delete the socket file when this
|
49
|
+
# process exits.
|
50
|
+
at_exit do
|
51
|
+
server.close
|
52
|
+
File.unlink(filepath)
|
53
|
+
end
|
61
54
|
|
62
|
-
|
63
|
-
|
64
|
-
end
|
55
|
+
# Return the connection information.
|
56
|
+
{ path: server.local_address.unix_path }
|
57
|
+
end
|
65
58
|
|
66
59
|
# This is the actual listening thread that will be acting as our server. We have
|
67
|
-
# to start it in another thread
|
68
|
-
#
|
69
|
-
# though and it will act as a daemon.
|
60
|
+
# to start it in another thread in order to properly trap the signals in this
|
61
|
+
# parent thread.
|
70
62
|
listener =
|
71
63
|
Thread.new do
|
72
64
|
loop do
|
@@ -74,8 +66,8 @@ listener =
|
|
74
66
|
|
75
67
|
# Start up a new thread that will handle each successive connection.
|
76
68
|
Thread.new(server.accept_nonblock) do |socket|
|
77
|
-
|
78
|
-
|
69
|
+
request = JSON.parse(socket.read.force_encoding("UTF-8"))
|
70
|
+
source = request["source"]
|
79
71
|
|
80
72
|
source.each_line do |line|
|
81
73
|
case line
|
@@ -95,14 +87,12 @@ listener =
|
|
95
87
|
# At the moment, we're not going to support odd tabwidths. It's going to
|
96
88
|
# have to be a multiple of 2, because of the way that the prettyprint
|
97
89
|
# gem functions. So we're going to just use integer division here.
|
98
|
-
scalar =
|
90
|
+
scalar = request["tabwidth"].to_i / 2
|
99
91
|
genspace = ->(n) { " " * n * scalar }
|
100
92
|
|
101
|
-
maxwidth =
|
93
|
+
maxwidth = request["maxwidth"].to_i
|
102
94
|
response =
|
103
|
-
case parser
|
104
|
-
when "ping"
|
105
|
-
"pong"
|
95
|
+
case request["parser"]
|
106
96
|
when "ruby"
|
107
97
|
formatter =
|
108
98
|
SyntaxTree::Formatter.new(source, [], maxwidth, "\n", &genspace)
|
@@ -122,16 +112,19 @@ listener =
|
|
122
112
|
formatter.flush
|
123
113
|
formatter.output.join
|
124
114
|
when "haml"
|
125
|
-
|
115
|
+
formatter =
|
126
116
|
if defined?(SyntaxTree::Haml::Format::Formatter)
|
127
|
-
SyntaxTree::Haml::Format::Formatter
|
117
|
+
SyntaxTree::Haml::Format::Formatter.new(
|
118
|
+
source,
|
119
|
+
+"",
|
120
|
+
maxwidth,
|
121
|
+
"\n",
|
122
|
+
&genspace
|
123
|
+
)
|
128
124
|
else
|
129
|
-
PrettierPrint
|
125
|
+
PrettierPrint.new(+"", maxwidth, "\n", &genspace)
|
130
126
|
end
|
131
127
|
|
132
|
-
formatter =
|
133
|
-
formatter_class.new(source, +"", maxwidth, "\n", &genspace)
|
134
|
-
|
135
128
|
SyntaxTree::Haml.parse(source).format(formatter)
|
136
129
|
formatter.flush
|
137
130
|
formatter.output
|
@@ -149,8 +142,8 @@ listener =
|
|
149
142
|
begin
|
150
143
|
socket.write(JSON.fast_generate(error: error.message))
|
151
144
|
rescue Errno::EPIPE
|
152
|
-
# Do nothing, the pipe has been closed by the parent process so we
|
153
|
-
# actually care about writing to it anymore.
|
145
|
+
# Do nothing, the pipe has been closed by the parent process so we
|
146
|
+
# don't actually care about writing to it anymore.
|
154
147
|
end
|
155
148
|
ensure
|
156
149
|
socket.close
|
@@ -165,35 +158,5 @@ listener =
|
|
165
158
|
end
|
166
159
|
end
|
167
160
|
|
168
|
-
|
169
|
-
candidates.map! do |candidate|
|
170
|
-
Thread.new do
|
171
|
-
Thread.current.report_on_exception = false
|
172
|
-
|
173
|
-
# We do not care about stderr here, so throw it away
|
174
|
-
stdout, _stderr, status =
|
175
|
-
Open3.capture3("#{candidate} #{information}", stdin_data: "ping")
|
176
|
-
|
177
|
-
candidate if JSON.parse(stdout) == "pong" && status.exitstatus == 0
|
178
|
-
rescue StandardError
|
179
|
-
# We don't actually care if this fails, because we'll just skip that
|
180
|
-
# connection option.
|
181
|
-
end
|
182
|
-
end
|
183
|
-
|
184
|
-
# Find the first one prefix that successfully returned the correct value.
|
185
|
-
prefix =
|
186
|
-
candidates.detect do |candidate|
|
187
|
-
value = candidate.value
|
188
|
-
break value if value
|
189
|
-
end
|
190
|
-
|
191
|
-
# Default to running the netcat.js script that we ship with the plugin. It's a
|
192
|
-
# good fallback as it will always work, but it is slower than the other options.
|
193
|
-
prefix ||= "node #{File.expand_path("netcat.js", __dir__)}"
|
194
|
-
|
195
|
-
# Write out our connection information to the file given as the first argument
|
196
|
-
# to this script.
|
197
|
-
File.write(ARGV[0], "#{prefix} #{information}")
|
198
|
-
|
161
|
+
File.write(connection_filepath, JSON.fast_generate(connection_information))
|
199
162
|
listener.join
|
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:
|
4
|
+
version: 4.0.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:
|
11
|
+
date: 2023-07-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: syntax_tree
|
@@ -16,28 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 4.0.1
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 4.0.1
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: syntax_tree-haml
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 2.0.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: 2.0.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: syntax_tree-rbs
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -103,35 +103,67 @@ extra_rdoc_files: []
|
|
103
103
|
files:
|
104
104
|
- CHANGELOG.md
|
105
105
|
- CODE_OF_CONDUCT.md
|
106
|
-
- CONTRIBUTING.md
|
107
106
|
- LICENSE
|
108
107
|
- README.md
|
109
108
|
- exe/rbprettier
|
110
109
|
- lib/prettier.rb
|
111
110
|
- lib/prettier/rake/task.rb
|
112
|
-
- node_modules/prettier/
|
113
|
-
- node_modules/prettier/
|
111
|
+
- node_modules/prettier/LICENSE
|
112
|
+
- node_modules/prettier/README.md
|
113
|
+
- node_modules/prettier/bin/prettier.cjs
|
114
|
+
- node_modules/prettier/doc.d.ts
|
114
115
|
- node_modules/prettier/doc.js
|
115
|
-
- node_modules/prettier/
|
116
|
+
- node_modules/prettier/doc.mjs
|
117
|
+
- node_modules/prettier/index.cjs
|
118
|
+
- node_modules/prettier/index.d.ts
|
119
|
+
- node_modules/prettier/index.mjs
|
120
|
+
- node_modules/prettier/internal/cli.mjs
|
121
|
+
- node_modules/prettier/internal/internal.mjs
|
116
122
|
- node_modules/prettier/package.json
|
117
|
-
- node_modules/prettier/
|
118
|
-
- node_modules/prettier/
|
119
|
-
- node_modules/prettier/
|
120
|
-
- node_modules/prettier/
|
121
|
-
- node_modules/prettier/
|
122
|
-
- node_modules/prettier/
|
123
|
-
- node_modules/prettier/
|
124
|
-
- node_modules/prettier/
|
125
|
-
- node_modules/prettier/
|
126
|
-
- node_modules/prettier/
|
127
|
-
- node_modules/prettier/
|
128
|
-
- node_modules/prettier/
|
129
|
-
- node_modules/prettier/
|
123
|
+
- node_modules/prettier/plugins/acorn.d.ts
|
124
|
+
- node_modules/prettier/plugins/acorn.js
|
125
|
+
- node_modules/prettier/plugins/acorn.mjs
|
126
|
+
- node_modules/prettier/plugins/angular.d.ts
|
127
|
+
- node_modules/prettier/plugins/angular.js
|
128
|
+
- node_modules/prettier/plugins/angular.mjs
|
129
|
+
- node_modules/prettier/plugins/babel.d.ts
|
130
|
+
- node_modules/prettier/plugins/babel.js
|
131
|
+
- node_modules/prettier/plugins/babel.mjs
|
132
|
+
- node_modules/prettier/plugins/estree.d.ts
|
133
|
+
- node_modules/prettier/plugins/estree.js
|
134
|
+
- node_modules/prettier/plugins/estree.mjs
|
135
|
+
- node_modules/prettier/plugins/flow.d.ts
|
136
|
+
- node_modules/prettier/plugins/flow.js
|
137
|
+
- node_modules/prettier/plugins/flow.mjs
|
138
|
+
- node_modules/prettier/plugins/glimmer.d.ts
|
139
|
+
- node_modules/prettier/plugins/glimmer.js
|
140
|
+
- node_modules/prettier/plugins/glimmer.mjs
|
141
|
+
- node_modules/prettier/plugins/graphql.d.ts
|
142
|
+
- node_modules/prettier/plugins/graphql.js
|
143
|
+
- node_modules/prettier/plugins/graphql.mjs
|
144
|
+
- node_modules/prettier/plugins/html.d.ts
|
145
|
+
- node_modules/prettier/plugins/html.js
|
146
|
+
- node_modules/prettier/plugins/html.mjs
|
147
|
+
- node_modules/prettier/plugins/markdown.d.ts
|
148
|
+
- node_modules/prettier/plugins/markdown.js
|
149
|
+
- node_modules/prettier/plugins/markdown.mjs
|
150
|
+
- node_modules/prettier/plugins/meriyah.d.ts
|
151
|
+
- node_modules/prettier/plugins/meriyah.js
|
152
|
+
- node_modules/prettier/plugins/meriyah.mjs
|
153
|
+
- node_modules/prettier/plugins/postcss.d.ts
|
154
|
+
- node_modules/prettier/plugins/postcss.js
|
155
|
+
- node_modules/prettier/plugins/postcss.mjs
|
156
|
+
- node_modules/prettier/plugins/typescript.d.ts
|
157
|
+
- node_modules/prettier/plugins/typescript.js
|
158
|
+
- node_modules/prettier/plugins/typescript.mjs
|
159
|
+
- node_modules/prettier/plugins/yaml.d.ts
|
160
|
+
- node_modules/prettier/plugins/yaml.js
|
161
|
+
- node_modules/prettier/plugins/yaml.mjs
|
162
|
+
- node_modules/prettier/standalone.d.ts
|
163
|
+
- node_modules/prettier/standalone.js
|
164
|
+
- node_modules/prettier/standalone.mjs
|
130
165
|
- package.json
|
131
166
|
- rubocop.yml
|
132
|
-
- src/getInfo.js
|
133
|
-
- src/netcat.js
|
134
|
-
- src/parseSync.js
|
135
167
|
- src/plugin.js
|
136
168
|
- src/server.rb
|
137
169
|
homepage: https://github.com/prettier/plugin-ruby#readme
|
@@ -146,14 +178,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
146
178
|
requirements:
|
147
179
|
- - ">="
|
148
180
|
- !ruby/object:Gem::Version
|
149
|
-
version: 2.7.
|
181
|
+
version: 2.7.0
|
150
182
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
151
183
|
requirements:
|
152
184
|
- - ">="
|
153
185
|
- !ruby/object:Gem::Version
|
154
186
|
version: '0'
|
155
187
|
requirements: []
|
156
|
-
rubygems_version: 3.
|
188
|
+
rubygems_version: 3.4.1
|
157
189
|
signing_key:
|
158
190
|
specification_version: 4
|
159
191
|
summary: prettier plugin for the Ruby programming language
|