prettier 1.5.0 → 1.5.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +49 -2
  3. data/README.md +22 -12
  4. data/node_modules/prettier/index.js +53 -53
  5. data/node_modules/prettier/parser-angular.js +46 -0
  6. data/node_modules/prettier/parser-babel.js +1 -0
  7. data/node_modules/prettier/parser-espree.js +1 -0
  8. data/node_modules/prettier/parser-flow.js +1 -0
  9. data/node_modules/prettier/parser-glimmer.js +1 -0
  10. data/node_modules/prettier/parser-graphql.js +1 -0
  11. data/node_modules/prettier/parser-html.js +113 -0
  12. data/node_modules/prettier/parser-markdown.js +19 -0
  13. data/node_modules/prettier/parser-meriyah.js +1 -0
  14. data/node_modules/prettier/parser-postcss.js +1 -0
  15. data/node_modules/prettier/parser-typescript.js +1 -0
  16. data/node_modules/prettier/parser-yaml.js +15 -0
  17. data/package.json +4 -4
  18. data/rubocop.yml +3 -0
  19. data/src/haml/nodes/tag.js +45 -6
  20. data/src/haml/parser.js +2 -2
  21. data/src/haml/parser.rb +8 -3
  22. data/src/parser/netcat.js +0 -2
  23. data/src/parser/parseSync.js +151 -14
  24. data/src/parser/server.rb +7 -2
  25. data/src/plugin.js +6 -0
  26. data/src/rbs/parser.js +2 -2
  27. data/src/rbs/parser.rb +7 -3
  28. data/src/rbs/printer.js +14 -4
  29. data/src/ruby/embed.js +7 -5
  30. data/src/ruby/nodes/args.js +67 -19
  31. data/src/ruby/nodes/arrays.js +36 -33
  32. data/src/ruby/nodes/commands.js +1 -1
  33. data/src/ruby/nodes/heredocs.js +5 -3
  34. data/src/ruby/parser.js +2 -2
  35. data/src/ruby/parser.rb +81 -6
  36. data/src/ruby/printer.js +8 -3
  37. data/src/utils.js +1 -1
  38. data/src/utils/inlineEnsureParens.js +8 -1
  39. data/src/utils/literallineWithoutBreakParent.js +7 -0
  40. metadata +16 -7
  41. data/src/parser/getLang.js +0 -32
  42. data/src/parser/getNetcat.js +0 -50
  43. data/src/parser/requestParse.js +0 -74
  44. data/src/utils/literalLineNoBreak.js +0 -7
data/src/ruby/printer.js CHANGED
@@ -38,7 +38,8 @@ const noComments = [
38
38
  "args_add_star",
39
39
  "mlhs",
40
40
  "mlhs_add_post",
41
- "mlhs_add_star"
41
+ "mlhs_add_star",
42
+ "mlhs_paren"
42
43
  ];
43
44
 
44
45
  // Certain nodes are used more for organizational purposed than for actually
@@ -97,8 +98,12 @@ function getCommentChildNodes(node) {
97
98
 
98
99
  return parts;
99
100
  }
100
- default:
101
- return node.body;
101
+ default: {
102
+ if (Array.isArray(node.body)) {
103
+ return node.body.filter((child) => child && typeof child === "object");
104
+ }
105
+ return [];
106
+ }
102
107
  }
103
108
  }
104
109
 
data/src/utils.js CHANGED
@@ -5,7 +5,7 @@ module.exports = {
5
5
  isEmptyStmts: require("./utils/isEmptyStmts"),
6
6
  hasAncestor: require("./utils/hasAncestor"),
7
7
  literal: require("./utils/literal"),
8
- literalLineNoBreak: require("./utils/literalLineNoBreak"),
8
+ literallineWithoutBreakParent: require("./utils/literallineWithoutBreakParent"),
9
9
  makeCall: require("./utils/makeCall"),
10
10
  noIndent: require("./utils/noIndent"),
11
11
  printEmptyCollection: require("./utils/printEmptyCollection"),
@@ -1,4 +1,11 @@
1
- const needsParens = ["args", "assign", "assoc_new", "massign", "opassign"];
1
+ const needsParens = [
2
+ "args",
3
+ "assign",
4
+ "assoc_new",
5
+ "call",
6
+ "massign",
7
+ "opassign"
8
+ ];
2
9
 
3
10
  // If you have a modifier statement (for instance an inline if statement or an
4
11
  // inline while loop) there are times when you need to wrap the entire statement
@@ -0,0 +1,7 @@
1
+ const literallineWithoutBreakParent = {
2
+ type: "line",
3
+ hard: true,
4
+ literal: true
5
+ };
6
+
7
+ module.exports = literallineWithoutBreakParent;
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: 1.5.0
4
+ version: 1.5.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kevin Deisz
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-01-22 00:00:00.000000000 Z
11
+ date: 2021-03-25 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description:
14
14
  email:
@@ -28,6 +28,18 @@ files:
28
28
  - lib/prettier/rake/task.rb
29
29
  - node_modules/prettier/bin-prettier.js
30
30
  - node_modules/prettier/index.js
31
+ - node_modules/prettier/parser-angular.js
32
+ - node_modules/prettier/parser-babel.js
33
+ - node_modules/prettier/parser-espree.js
34
+ - node_modules/prettier/parser-flow.js
35
+ - node_modules/prettier/parser-glimmer.js
36
+ - node_modules/prettier/parser-graphql.js
37
+ - node_modules/prettier/parser-html.js
38
+ - node_modules/prettier/parser-markdown.js
39
+ - node_modules/prettier/parser-meriyah.js
40
+ - node_modules/prettier/parser-postcss.js
41
+ - node_modules/prettier/parser-typescript.js
42
+ - node_modules/prettier/parser-yaml.js
31
43
  - node_modules/prettier/third-party.js
32
44
  - package.json
33
45
  - rubocop.yml
@@ -44,11 +56,8 @@ files:
44
56
  - src/haml/parser.js
45
57
  - src/haml/parser.rb
46
58
  - src/haml/printer.js
47
- - src/parser/getLang.js
48
- - src/parser/getNetcat.js
49
59
  - src/parser/netcat.js
50
60
  - src/parser/parseSync.js
51
- - src/parser/requestParse.js
52
61
  - src/parser/server.rb
53
62
  - src/plugin.js
54
63
  - src/prettier.js
@@ -100,7 +109,7 @@ files:
100
109
  - src/utils/isEmptyBodyStmt.js
101
110
  - src/utils/isEmptyStmts.js
102
111
  - src/utils/literal.js
103
- - src/utils/literalLineNoBreak.js
112
+ - src/utils/literallineWithoutBreakParent.js
104
113
  - src/utils/makeCall.js
105
114
  - src/utils/noIndent.js
106
115
  - src/utils/printEmptyCollection.js
@@ -124,7 +133,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
124
133
  - !ruby/object:Gem::Version
125
134
  version: '0'
126
135
  requirements: []
127
- rubygems_version: 3.2.3
136
+ rubygems_version: 3.1.4
128
137
  signing_key:
129
138
  specification_version: 4
130
139
  summary: prettier plugin for the Ruby programming language
@@ -1,32 +0,0 @@
1
- // In order to properly parse ruby code, we need to tell the ruby process to
2
- // parse using UTF-8. Unfortunately, the way that you accomplish this looks
3
- // differently depending on your platform.
4
- /* istanbul ignore next */
5
- function getLang() {
6
- const { env, platform } = process;
7
- const envValue = env.LC_ALL || env.LC_CTYPE || env.LANG;
8
-
9
- // If an env var is set for the locale that already includes UTF-8 in the
10
- // name, then assume we can go with that.
11
- if (envValue && envValue.includes("UTF-8")) {
12
- return envValue;
13
- }
14
-
15
- // Otherwise, we're going to guess which encoding to use based on the system.
16
- // This is probably not the best approach in the world, as you could be on
17
- // linux and not have C.UTF-8, but in that case you're probably passing an env
18
- // var for it. This object below represents all of the possible values of
19
- // process.platform per:
20
- // https://nodejs.org/api/process.html#process_process_platform
21
- return {
22
- aix: "C.UTF-8",
23
- darwin: "en_US.UTF-8",
24
- freebsd: "C.UTF-8",
25
- linux: "C.UTF-8",
26
- openbsd: "C.UTF-8",
27
- sunos: "C.UTF-8",
28
- win32: ".UTF-8"
29
- }[platform];
30
- }
31
-
32
- module.exports = getLang;
@@ -1,50 +0,0 @@
1
- const { spawnSync } = require("child_process");
2
- const os = require("os");
3
-
4
- // Checks to see if an executable is available.
5
- function hasCommand(name) {
6
- let result;
7
-
8
- if (os.type() === "Windows_NT") {
9
- result = spawnSync("where", [name]);
10
- } else {
11
- result = spawnSync("command", ["-v", name]);
12
- }
13
-
14
- return result.status === 0;
15
- }
16
-
17
- // Finds an netcat-like adapter to use for sending data to a socket. We order
18
- // these by likelihood of being found so we can avoid some shell-outs.
19
- function getCommandAndArg() {
20
- if (hasCommand("nc")) {
21
- return ["nc", "-U"];
22
- }
23
-
24
- if (hasCommand("telnet")) {
25
- return ["telnet", "-u"];
26
- }
27
-
28
- if (hasCommand("ncat")) {
29
- return ["ncat", "-U"];
30
- }
31
-
32
- if (hasCommand("socat")) {
33
- return ["socat", "-"];
34
- }
35
-
36
- return ["node", require.resolve("./netcat.js")];
37
- }
38
-
39
- let command;
40
- let arg;
41
-
42
- function getNetcat() {
43
- if (!command) {
44
- [command, arg] = getCommandAndArg();
45
- }
46
-
47
- return { command, arg };
48
- }
49
-
50
- module.exports = getNetcat;
@@ -1,74 +0,0 @@
1
- const { spawn, spawnSync, execSync } = require("child_process");
2
- const path = require("path");
3
- const { existsSync, mkdtempSync } = require("fs");
4
- const process = require("process");
5
- const os = require("os");
6
-
7
- const getNetcat = require("./getNetcat");
8
- const getLang = require("./getLang");
9
-
10
- let sockfile = process.env.PRETTIER_RUBY_HOST;
11
-
12
- // Spawn the parser.rb subprocess. We do this since booting Ruby is slow, and we
13
- // can re-use the parser process multiple times since it is statelesss.
14
- function spawnParseServer() {
15
- const server = spawn(
16
- "ruby",
17
- [path.join(__dirname, "./server.rb"), sockfile],
18
- {
19
- env: Object.assign({}, process.env, { LANG: getLang() }),
20
- detached: true,
21
- stdio: "inherit"
22
- }
23
- );
24
-
25
- process.on("exit", () => {
26
- try {
27
- process.kill(-server.pid);
28
- } catch (e) {
29
- // ignore
30
- }
31
- });
32
-
33
- server.unref();
34
- const now = new Date();
35
-
36
- // Wait for server to go live.
37
- while (!existsSync(sockfile) && new Date() - now < 3000) {
38
- execSync("sleep 0.1");
39
- }
40
- }
41
-
42
- // Ensures that a parser server is currently running by checking against the
43
- // sockfile variable. If it is not, create a temporary directory to house the
44
- // sockfile and spawn the ruby process.
45
- function ensureParseServer() {
46
- if (sockfile) {
47
- return;
48
- }
49
-
50
- const tmpDir = mkdtempSync(path.join(os.tmpdir(), "prettier-ruby"));
51
- sockfile = path.join(tmpDir, `${process.pid}.sock`);
52
-
53
- spawnParseServer();
54
- }
55
-
56
- // Sends a request to the parse server to parse the given content.
57
- function requestParse(parser, source) {
58
- ensureParseServer();
59
-
60
- const { command, arg } = getNetcat();
61
- const { stdout, stderr, status } = spawnSync(command, [arg, sockfile], {
62
- input: `${parser}|${source}`,
63
- maxBuffer: 15 * 1024 * 1024
64
- });
65
-
66
- return {
67
- command,
68
- stdout: stdout.toString(),
69
- stderr: stderr.toString(),
70
- status
71
- };
72
- }
73
-
74
- module.exports = requestParse;
@@ -1,7 +0,0 @@
1
- const literalLineNoBreak = {
2
- type: "line",
3
- hard: true,
4
- literal: true
5
- };
6
-
7
- module.exports = literalLineNoBreak;