prettier 2.1.0 → 3.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 +24 -6
- data/README.md +16 -16
- data/exe/rbprettier +2 -2
- data/lib/prettier/rake/task.rb +5 -5
- data/lib/prettier.rb +11 -11
- data/package.json +9 -23
- data/rubocop.yml +6 -6
- data/{dist/parser → src}/getInfo.js +0 -1
- data/{dist/parser → src}/netcat.js +0 -1
- data/src/parseSync.js +212 -0
- data/src/plugin.js +161 -0
- data/{dist/parser → src}/server.rb +45 -31
- metadata +94 -78
- 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 -149
- data/dist/haml/printer.js +0 -336
- 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 -155
- data/dist/rbs/printer.js +0 -525
- data/dist/ruby/embed.js +0 -115
- data/dist/ruby/location.js +0 -19
- data/dist/ruby/nodes/alias.js +0 -60
- data/dist/ruby/nodes/aref.js +0 -51
- data/dist/ruby/nodes/args.js +0 -138
- data/dist/ruby/nodes/arrays.js +0 -122
- data/dist/ruby/nodes/assign.js +0 -37
- data/dist/ruby/nodes/blocks.js +0 -90
- data/dist/ruby/nodes/calls.js +0 -263
- data/dist/ruby/nodes/case.js +0 -50
- data/dist/ruby/nodes/class.js +0 -54
- data/dist/ruby/nodes/commands.js +0 -138
- data/dist/ruby/nodes/conditionals.js +0 -246
- data/dist/ruby/nodes/constants.js +0 -35
- data/dist/ruby/nodes/flow.js +0 -59
- data/dist/ruby/nodes/hashes.js +0 -126
- 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 -70
- data/dist/ruby/nodes/loops.js +0 -75
- data/dist/ruby/nodes/massign.js +0 -60
- data/dist/ruby/nodes/methods.js +0 -50
- data/dist/ruby/nodes/operators.js +0 -68
- data/dist/ruby/nodes/params.js +0 -95
- data/dist/ruby/nodes/patterns.js +0 -119
- data/dist/ruby/nodes/regexp.js +0 -45
- data/dist/ruby/nodes/rescue.js +0 -86
- data/dist/ruby/nodes/return.js +0 -100
- data/dist/ruby/nodes/statements.js +0 -110
- data/dist/ruby/nodes/strings.js +0 -220
- data/dist/ruby/nodes/super.js +0 -26
- data/dist/ruby/nodes/undef.js +0 -31
- data/dist/ruby/nodes.js +0 -177
- data/dist/ruby/parser.js +0 -35
- data/dist/ruby/parser.rb +0 -9134
- data/dist/ruby/printer.js +0 -67
- data/dist/ruby/toProc.js +0 -91
- 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 -34
- data/dist/utils/containsAssignment.js +0 -18
- data/dist/utils/getChildNodes.js +0 -305
- 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/isEmptyParams.js +0 -12
- 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 -14
- data/dist/utils/noIndent.js +0 -11
- data/dist/utils/printEmptyCollection.js +0 -46
- data/dist/utils/skipAssignIndent.js +0 -19
- data/dist/utils.js +0 -32
data/dist/plugin.js
DELETED
@@ -1,143 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
-
};
|
5
|
-
const printer_1 = __importDefault(require("./ruby/printer"));
|
6
|
-
const parser_1 = __importDefault(require("./ruby/parser"));
|
7
|
-
const printer_2 = __importDefault(require("./rbs/printer"));
|
8
|
-
const parser_2 = __importDefault(require("./rbs/parser"));
|
9
|
-
const printer_3 = __importDefault(require("./haml/printer"));
|
10
|
-
const parser_3 = __importDefault(require("./haml/parser"));
|
11
|
-
/*
|
12
|
-
* metadata mostly pulled from linguist and rubocop:
|
13
|
-
* https://github.com/github/linguist/blob/master/lib/linguist/languages.yml
|
14
|
-
* https://github.com/rubocop/rubocop/blob/master/spec/rubocop/target_finder_spec.rb
|
15
|
-
*/
|
16
|
-
const plugin = {
|
17
|
-
languages: [
|
18
|
-
{
|
19
|
-
name: "Ruby",
|
20
|
-
parsers: ["ruby"],
|
21
|
-
extensions: [
|
22
|
-
".arb",
|
23
|
-
".axlsx",
|
24
|
-
".builder",
|
25
|
-
".eye",
|
26
|
-
".fcgi",
|
27
|
-
".gemfile",
|
28
|
-
".gemspec",
|
29
|
-
".god",
|
30
|
-
".jb",
|
31
|
-
".jbuilder",
|
32
|
-
".mspec",
|
33
|
-
".opal",
|
34
|
-
".pluginspec",
|
35
|
-
".podspec",
|
36
|
-
".rabl",
|
37
|
-
".rake",
|
38
|
-
".rb",
|
39
|
-
".rbi",
|
40
|
-
".rbuild",
|
41
|
-
".rbw",
|
42
|
-
".rbx",
|
43
|
-
".ru",
|
44
|
-
".ruby",
|
45
|
-
".thor",
|
46
|
-
".watchr"
|
47
|
-
],
|
48
|
-
filenames: [
|
49
|
-
".irbrc",
|
50
|
-
".pryrc",
|
51
|
-
".simplecov",
|
52
|
-
"Appraisals",
|
53
|
-
"Berksfile",
|
54
|
-
"Brewfile",
|
55
|
-
"Buildfile",
|
56
|
-
"Capfile",
|
57
|
-
"Cheffile",
|
58
|
-
"Dangerfile",
|
59
|
-
"Deliverfile",
|
60
|
-
"Fastfile",
|
61
|
-
"Gemfile",
|
62
|
-
"Guardfile",
|
63
|
-
"Jarfile",
|
64
|
-
"Mavenfile",
|
65
|
-
"Podfile",
|
66
|
-
"Puppetfile",
|
67
|
-
"Rakefile",
|
68
|
-
"Snapfile",
|
69
|
-
"Thorfile",
|
70
|
-
"Vagabondfile",
|
71
|
-
"Vagrantfile",
|
72
|
-
"buildfile"
|
73
|
-
],
|
74
|
-
interpreters: ["jruby", "macruby", "rake", "rbx", "ruby"],
|
75
|
-
linguistLanguageId: 326,
|
76
|
-
vscodeLanguageIds: ["ruby"]
|
77
|
-
},
|
78
|
-
{
|
79
|
-
name: "RBS",
|
80
|
-
parsers: ["rbs"],
|
81
|
-
extensions: [".rbs"]
|
82
|
-
},
|
83
|
-
{
|
84
|
-
name: "HAML",
|
85
|
-
parsers: ["haml"],
|
86
|
-
extensions: [".haml"],
|
87
|
-
vscodeLanguageIds: ["haml"]
|
88
|
-
}
|
89
|
-
],
|
90
|
-
parsers: {
|
91
|
-
ruby: parser_1.default,
|
92
|
-
rbs: parser_2.default,
|
93
|
-
haml: parser_3.default
|
94
|
-
},
|
95
|
-
printers: {
|
96
|
-
ruby: printer_1.default,
|
97
|
-
rbs: printer_2.default,
|
98
|
-
haml: printer_3.default
|
99
|
-
},
|
100
|
-
options: {
|
101
|
-
rubyArrayLiteral: {
|
102
|
-
type: "boolean",
|
103
|
-
category: "Ruby",
|
104
|
-
default: true,
|
105
|
-
description: "When possible, favor the use of string and symbol array literals.",
|
106
|
-
since: "1.0.0"
|
107
|
-
},
|
108
|
-
rubyHashLabel: {
|
109
|
-
type: "boolean",
|
110
|
-
category: "Ruby",
|
111
|
-
default: true,
|
112
|
-
description: "When possible, uses the shortened hash key syntax, as opposed to hash rockets.",
|
113
|
-
since: "1.0.0"
|
114
|
-
},
|
115
|
-
rubyModifier: {
|
116
|
-
type: "boolean",
|
117
|
-
category: "Ruby",
|
118
|
-
default: true,
|
119
|
-
description: "When it fits on one line, allows if, unless, while, and until statements to use the modifier form.",
|
120
|
-
since: "1.0.0"
|
121
|
-
},
|
122
|
-
rubySingleQuote: {
|
123
|
-
type: "boolean",
|
124
|
-
category: "Ruby",
|
125
|
-
default: true,
|
126
|
-
description: "When double quotes are not necessary for interpolation, prefers the use of single quotes for string literals.",
|
127
|
-
since: "1.0.0"
|
128
|
-
},
|
129
|
-
rubyToProc: {
|
130
|
-
type: "boolean",
|
131
|
-
category: "Ruby",
|
132
|
-
default: false,
|
133
|
-
description: "When possible, convert blocks to the more concise Symbol#to_proc syntax.",
|
134
|
-
since: "1.0.0"
|
135
|
-
}
|
136
|
-
},
|
137
|
-
defaultOptions: {
|
138
|
-
printWidth: 80,
|
139
|
-
tabWidth: 2,
|
140
|
-
trailingComma: "none"
|
141
|
-
}
|
142
|
-
};
|
143
|
-
module.exports = plugin;
|
data/dist/prettier.js
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
// If `RBPRETTIER` is set, then this is being run from the `Prettier::run` ruby
|
4
|
-
// method. In that case, we need to pull `prettier` from the node_modules
|
5
|
-
// directly, as it's been shipped with the gem.
|
6
|
-
/* istanbul ignore next */
|
7
|
-
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
8
|
-
const source = require(process.env.RBPRETTIER
|
9
|
-
? "../node_modules/prettier"
|
10
|
-
: "prettier");
|
11
|
-
// Cramming everything together to make it simpler to pull in all of the right
|
12
|
-
// utilities and builders.
|
13
|
-
const builders = source.doc.builders;
|
14
|
-
const exported = { ...builders, ...source.doc.utils, ...source.util };
|
15
|
-
exports.default = exported;
|
data/dist/rbs/parser.js
DELETED
@@ -1,34 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
-
};
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
-
const parseSync_1 = __importDefault(require("../parser/parseSync"));
|
7
|
-
const parser = {
|
8
|
-
// This function is responsible for taking an input string of text and
|
9
|
-
// returning to prettier a JavaScript object that is the equivalent AST that
|
10
|
-
// represents the code stored in that string. We accomplish this by spawning a
|
11
|
-
// new Ruby process of parser.rb and reading JSON off STDOUT.
|
12
|
-
parse(text) {
|
13
|
-
return (0, parseSync_1.default)("rbs", text);
|
14
|
-
},
|
15
|
-
astFormat: "rbs",
|
16
|
-
// This function handles checking whether or not the source string has the
|
17
|
-
// pragma for prettier. This is an optional workflow for incremental adoption.
|
18
|
-
hasPragma(text) {
|
19
|
-
return /^\s*#[^\S\n]*@(format|prettier)\s*(\n|$)/.test(text);
|
20
|
-
},
|
21
|
-
// This function is critical for comments and cursor support, and is
|
22
|
-
// responsible for returning the index of the character within the source
|
23
|
-
// string that is the beginning of the given node.
|
24
|
-
locStart(node) {
|
25
|
-
return node.location.start_pos;
|
26
|
-
},
|
27
|
-
// This function is critical for comments and cursor support, and is
|
28
|
-
// responsible for returning the index of the character within the source
|
29
|
-
// string that is the ending of the given node.
|
30
|
-
locEnd(node) {
|
31
|
-
return node.location.end_pos;
|
32
|
-
}
|
33
|
-
};
|
34
|
-
exports.default = parser;
|
data/dist/rbs/parser.rb
DELETED
@@ -1,155 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
begin
|
4
|
-
require 'rbs'
|
5
|
-
rescue LoadError
|
6
|
-
# If we can't load the rbs gem, then we're going to provide a shim parser that
|
7
|
-
# will warn and bail out.
|
8
|
-
class Prettier::RBSParser
|
9
|
-
def self.parse(text)
|
10
|
-
warn(
|
11
|
-
'The `rbs` gem could not be loaded. Please ensure you have it ' \
|
12
|
-
'installed and that it is available in the gem path.'
|
13
|
-
)
|
14
|
-
|
15
|
-
false
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
return
|
20
|
-
end
|
21
|
-
|
22
|
-
# This was removed at some point, so we need to support both versions.
|
23
|
-
RBS::KEYWORD_RAW =
|
24
|
-
if RBS::Parser.const_defined?(:KEYWORDS_RE)
|
25
|
-
RBS::Parser::KEYWORDS_RE
|
26
|
-
else
|
27
|
-
RBS::Parser::KEYWORDS.keys.join('|')
|
28
|
-
end
|
29
|
-
|
30
|
-
# This enforces that the full matched string is a keyword.
|
31
|
-
RBS::KEYWORD_FULL = /\A#{RBS::KEYWORD_RAW}\z/
|
32
|
-
|
33
|
-
# Monkey-patch this so that we can get the character positions.
|
34
|
-
class RBS::Location
|
35
|
-
def to_json(*args)
|
36
|
-
{
|
37
|
-
start: {
|
38
|
-
line: start_line,
|
39
|
-
column: start_column
|
40
|
-
},
|
41
|
-
end: {
|
42
|
-
line: end_line,
|
43
|
-
column: end_column
|
44
|
-
},
|
45
|
-
start_pos: start_pos,
|
46
|
-
end_pos: end_pos
|
47
|
-
}.to_json(*args)
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
# Monkey-patch this so that we get whether or not it needs to be escaped.
|
52
|
-
class RBS::Types::Function::Param
|
53
|
-
def to_json(*a)
|
54
|
-
escaped = name && RBS::KEYWORD_FULL.match?(name)
|
55
|
-
|
56
|
-
# More modern versions of RBS just include the ` in the name so there's no
|
57
|
-
# need to escape it further.
|
58
|
-
escaped = false if name.to_s.start_with?('`')
|
59
|
-
|
60
|
-
{ type: type, name: name, escaped: escaped }.to_json(*a)
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|
64
|
-
# Monkey-patch this so that we get the name field in the serialized JSON, as
|
65
|
-
# well as information about whether or not we need to escape it.
|
66
|
-
class RBS::AST::Members::MethodDefinition
|
67
|
-
def to_json(*a)
|
68
|
-
{
|
69
|
-
member: :method_definition,
|
70
|
-
name: name,
|
71
|
-
kind: kind,
|
72
|
-
types: types,
|
73
|
-
annotations: annotations,
|
74
|
-
location: location,
|
75
|
-
comment: comment,
|
76
|
-
overload: overload
|
77
|
-
}.to_json(*a)
|
78
|
-
end
|
79
|
-
end
|
80
|
-
|
81
|
-
# Monkey-patch this so that we get the information we need about how to join the
|
82
|
-
# key-value pairs of the record.
|
83
|
-
class RBS::Types::Record
|
84
|
-
def to_json(*a)
|
85
|
-
fields_extra = {}
|
86
|
-
|
87
|
-
# Explicitly not using Enumerable#to_h here to support Ruby 2.5
|
88
|
-
fields.each do |key, type|
|
89
|
-
if key.is_a?(Symbol) && key.match?(/\A[A-Za-z_][A-Za-z_]*\z/) &&
|
90
|
-
!key.match?(RBS::KEYWORD_RAW)
|
91
|
-
fields_extra[key] = { type: type, joiner: :label }
|
92
|
-
else
|
93
|
-
fields_extra[key.inspect] = { type: type, joiner: :rocket }
|
94
|
-
end
|
95
|
-
end
|
96
|
-
|
97
|
-
{ class: :record, fields: fields_extra, location: location }.to_json(*a)
|
98
|
-
end
|
99
|
-
end
|
100
|
-
|
101
|
-
if defined?(RBS::AST::Declarations::ModuleTypeParams)
|
102
|
-
# This class was removed in rbs 2.0. Monkeypatch < 2.0 to give the same json
|
103
|
-
# output
|
104
|
-
class RBS::AST::Declarations::ModuleTypeParams
|
105
|
-
def to_json(*a)
|
106
|
-
params.to_json(*a)
|
107
|
-
end
|
108
|
-
end
|
109
|
-
|
110
|
-
# make this look like the new AST::TypeParam json
|
111
|
-
class RBS::AST::Declarations::ModuleTypeParams::TypeParam
|
112
|
-
def to_json(*a)
|
113
|
-
{ name: name, variance: variance, unchecked: skip_validation }.to_json(*a)
|
114
|
-
end
|
115
|
-
end
|
116
|
-
|
117
|
-
# https://github.com/ruby/rbs/commit/3ccdcb1f3ac5dcb866280f745866a852658195e6
|
118
|
-
class RBS::MethodType
|
119
|
-
# promote the array of symbols into TypeParam looking-things
|
120
|
-
def to_json(*a)
|
121
|
-
type_param_objects =
|
122
|
-
type_params.map do |name|
|
123
|
-
{
|
124
|
-
name: name,
|
125
|
-
variance: 'invariant',
|
126
|
-
unchecked: 'false',
|
127
|
-
upper_bound: nil
|
128
|
-
# location - harder to get this but not needed
|
129
|
-
}
|
130
|
-
end
|
131
|
-
|
132
|
-
{
|
133
|
-
type_params: type_param_objects,
|
134
|
-
type: type,
|
135
|
-
block: block,
|
136
|
-
location: location
|
137
|
-
}.to_json(*a)
|
138
|
-
end
|
139
|
-
end
|
140
|
-
end
|
141
|
-
|
142
|
-
# The main parser interface.
|
143
|
-
module Prettier
|
144
|
-
class RBSParser
|
145
|
-
def self.parse(text)
|
146
|
-
{
|
147
|
-
declarations: RBS::Parser.parse_signature(text),
|
148
|
-
location: {
|
149
|
-
start_pos: 0,
|
150
|
-
end_pos: text.length
|
151
|
-
}
|
152
|
-
}
|
153
|
-
end
|
154
|
-
end
|
155
|
-
end
|