@haneullabs/prettier-plugin-move 0.3.3
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.
- package/CHANGELOG.md +67 -0
- package/CONTRIBUTING.md +31 -0
- package/README.md +96 -0
- package/bin/prettier-move.js +29 -0
- package/out/cst/annotation.js +64 -0
- package/out/cst/annotation.js.map +1 -0
- package/out/cst/common.js +376 -0
- package/out/cst/common.js.map +1 -0
- package/out/cst/constant.js +92 -0
- package/out/cst/constant.js.map +1 -0
- package/out/cst/enum_definition.js +69 -0
- package/out/cst/enum_definition.js.map +1 -0
- package/out/cst/expression/abort_expression.js +32 -0
- package/out/cst/expression/abort_expression.js.map +1 -0
- package/out/cst/expression/annotation_expression.js +35 -0
- package/out/cst/expression/annotation_expression.js.map +1 -0
- package/out/cst/expression/assign_expression.js +51 -0
- package/out/cst/expression/assign_expression.js.map +1 -0
- package/out/cst/expression/binary_expression.js +70 -0
- package/out/cst/expression/binary_expression.js.map +1 -0
- package/out/cst/expression/block.js +58 -0
- package/out/cst/expression/block.js.map +1 -0
- package/out/cst/expression/block_item.js +25 -0
- package/out/cst/expression/block_item.js.map +1 -0
- package/out/cst/expression/borrow_expression.js +26 -0
- package/out/cst/expression/borrow_expression.js.map +1 -0
- package/out/cst/expression/break_expression.js +27 -0
- package/out/cst/expression/break_expression.js.map +1 -0
- package/out/cst/expression/call_expression.js +25 -0
- package/out/cst/expression/call_expression.js.map +1 -0
- package/out/cst/expression/cast_expression.js +31 -0
- package/out/cst/expression/cast_expression.js.map +1 -0
- package/out/cst/expression/continue_expression.js +26 -0
- package/out/cst/expression/continue_expression.js.map +1 -0
- package/out/cst/expression/dereference_expression.js +27 -0
- package/out/cst/expression/dereference_expression.js.map +1 -0
- package/out/cst/expression/dot_expression.js +66 -0
- package/out/cst/expression/dot_expression.js.map +1 -0
- package/out/cst/expression/expression_list.js +26 -0
- package/out/cst/expression/expression_list.js.map +1 -0
- package/out/cst/expression/identified_expression.js +28 -0
- package/out/cst/expression/identified_expression.js.map +1 -0
- package/out/cst/expression/if_expression.js +133 -0
- package/out/cst/expression/if_expression.js.map +1 -0
- package/out/cst/expression/index.js +74 -0
- package/out/cst/expression/index.js.map +1 -0
- package/out/cst/expression/index_expression.js +28 -0
- package/out/cst/expression/index_expression.js.map +1 -0
- package/out/cst/expression/lambda_expression.js +72 -0
- package/out/cst/expression/lambda_expression.js.map +1 -0
- package/out/cst/expression/let_statement.js +59 -0
- package/out/cst/expression/let_statement.js.map +1 -0
- package/out/cst/expression/loop_expression.js +27 -0
- package/out/cst/expression/loop_expression.js.map +1 -0
- package/out/cst/expression/macro_call_expression.js +66 -0
- package/out/cst/expression/macro_call_expression.js.map +1 -0
- package/out/cst/expression/match_expression.js +86 -0
- package/out/cst/expression/match_expression.js.map +1 -0
- package/out/cst/expression/move_or_copy_expression.js +27 -0
- package/out/cst/expression/move_or_copy_expression.js.map +1 -0
- package/out/cst/expression/name_expression.js +26 -0
- package/out/cst/expression/name_expression.js.map +1 -0
- package/out/cst/expression/pack_expression.js +27 -0
- package/out/cst/expression/pack_expression.js.map +1 -0
- package/out/cst/expression/return_expression.js +44 -0
- package/out/cst/expression/return_expression.js.map +1 -0
- package/out/cst/expression/unary_expression.js +26 -0
- package/out/cst/expression/unary_expression.js.map +1 -0
- package/out/cst/expression/unit_expression.js +17 -0
- package/out/cst/expression/unit_expression.js.map +1 -0
- package/out/cst/expression/vector_expression.js +80 -0
- package/out/cst/expression/vector_expression.js.map +1 -0
- package/out/cst/expression/while_expression.js +42 -0
- package/out/cst/expression/while_expression.js.map +1 -0
- package/out/cst/formatting.js +100 -0
- package/out/cst/formatting.js.map +1 -0
- package/out/cst/function_definition.js +248 -0
- package/out/cst/function_definition.js.map +1 -0
- package/out/cst/literal.js +68 -0
- package/out/cst/literal.js.map +1 -0
- package/out/cst/module.js +158 -0
- package/out/cst/module.js.map +1 -0
- package/out/cst/source_file.js +38 -0
- package/out/cst/source_file.js.map +1 -0
- package/out/cst/struct_definition.js +209 -0
- package/out/cst/struct_definition.js.map +1 -0
- package/out/cst/use_declaration.js +212 -0
- package/out/cst/use_declaration.js.map +1 -0
- package/out/imports-grouping.js +259 -0
- package/out/imports-grouping.js.map +1 -0
- package/out/index.js +97 -0
- package/out/index.js.map +1 -0
- package/out/printer.js +69 -0
- package/out/printer.js.map +1 -0
- package/out/tree.js +371 -0
- package/out/tree.js.map +1 -0
- package/out/utilities.js +251 -0
- package/out/utilities.js.map +1 -0
- package/package.json +34 -0
- package/prettier.config.js +12 -0
- package/src/cst/annotation.ts +71 -0
- package/src/cst/common.ts +430 -0
- package/src/cst/constant.ts +110 -0
- package/src/cst/enum_definition.ts +73 -0
- package/src/cst/expression/abort_expression.ts +35 -0
- package/src/cst/expression/annotation_expression.ts +38 -0
- package/src/cst/expression/assign_expression.ts +66 -0
- package/src/cst/expression/binary_expression.ts +75 -0
- package/src/cst/expression/block.ts +72 -0
- package/src/cst/expression/block_item.ts +29 -0
- package/src/cst/expression/borrow_expression.ts +28 -0
- package/src/cst/expression/break_expression.ts +33 -0
- package/src/cst/expression/call_expression.ts +28 -0
- package/src/cst/expression/cast_expression.ts +35 -0
- package/src/cst/expression/continue_expression.ts +29 -0
- package/src/cst/expression/dereference_expression.ts +33 -0
- package/src/cst/expression/dot_expression.ts +89 -0
- package/src/cst/expression/expression_list.ts +28 -0
- package/src/cst/expression/identified_expression.ts +30 -0
- package/src/cst/expression/if_expression.ts +177 -0
- package/src/cst/expression/index.ts +85 -0
- package/src/cst/expression/index_expression.ts +37 -0
- package/src/cst/expression/lambda_expression.ts +84 -0
- package/src/cst/expression/let_statement.ts +73 -0
- package/src/cst/expression/loop_expression.ts +29 -0
- package/src/cst/expression/macro_call_expression.ts +79 -0
- package/src/cst/expression/match_expression.ts +102 -0
- package/src/cst/expression/move_or_copy_expression.ts +29 -0
- package/src/cst/expression/name_expression.ts +28 -0
- package/src/cst/expression/pack_expression.ts +29 -0
- package/src/cst/expression/return_expression.ts +50 -0
- package/src/cst/expression/unary_expression.ts +28 -0
- package/src/cst/expression/unit_expression.ts +18 -0
- package/src/cst/expression/vector_expression.ts +97 -0
- package/src/cst/expression/while_expression.ts +45 -0
- package/src/cst/formatting.ts +100 -0
- package/src/cst/function_definition.ts +300 -0
- package/src/cst/literal.ts +69 -0
- package/src/cst/module.ts +191 -0
- package/src/cst/source_file.ts +38 -0
- package/src/cst/struct_definition.ts +267 -0
- package/src/cst/use_declaration.ts +238 -0
- package/src/imports-grouping.ts +300 -0
- package/src/index.ts +119 -0
- package/src/printer.ts +93 -0
- package/src/tree.ts +438 -0
- package/src/utilities.ts +387 -0
- package/tree-sitter-move.wasm +0 -0
- package/tsconfig.json +26 -0
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) The Move Contributors
|
|
3
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.default = default_1;
|
|
6
|
+
const prettier_1 = require("prettier");
|
|
7
|
+
const utilities_1 = require("../../utilities");
|
|
8
|
+
const { group, indentIfBreak, line, softline, ifBreak, join } = prettier_1.doc.builders;
|
|
9
|
+
/** The type of the node implemented in this file */
|
|
10
|
+
const NODE_TYPE = 'macro_call_expression';
|
|
11
|
+
function default_1(path) {
|
|
12
|
+
if (path.node.type === NODE_TYPE) {
|
|
13
|
+
return printMacroCallExpression;
|
|
14
|
+
}
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Print `macro_call_expression` node.
|
|
19
|
+
* Inside:
|
|
20
|
+
* - `macro_module_access`
|
|
21
|
+
* - `type_arguments`
|
|
22
|
+
* - `arg_list`
|
|
23
|
+
*/
|
|
24
|
+
function printMacroCallExpression(path, options, print) {
|
|
25
|
+
return path.map((path) => {
|
|
26
|
+
if (path.node.type === 'macro_module_access') {
|
|
27
|
+
return printMacroModuleAccess(path, options, print);
|
|
28
|
+
}
|
|
29
|
+
if (path.node.type === 'arg_list') {
|
|
30
|
+
return printMacroArgsList(path, options, print);
|
|
31
|
+
}
|
|
32
|
+
return print(path);
|
|
33
|
+
}, 'nonFormattingChildren');
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Print `macro_module_access` node.
|
|
37
|
+
* Inside:
|
|
38
|
+
* - `module_access`
|
|
39
|
+
* - `!`
|
|
40
|
+
*/
|
|
41
|
+
function printMacroModuleAccess(path, options, print) {
|
|
42
|
+
return [path.call(print, 'nonFormattingChildren', 0), '!'];
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Special function to print macro arguments list instead of `arg_list`.
|
|
46
|
+
*/
|
|
47
|
+
function printMacroArgsList(path, options, print) {
|
|
48
|
+
if (path.node.type !== 'arg_list') {
|
|
49
|
+
throw new Error('Expected `arg_list` node');
|
|
50
|
+
}
|
|
51
|
+
if (path.node.namedChildCount === 0) {
|
|
52
|
+
return '()';
|
|
53
|
+
}
|
|
54
|
+
const groupId = Symbol('macro_args_list');
|
|
55
|
+
return group((0, utilities_1.list)({
|
|
56
|
+
path,
|
|
57
|
+
options,
|
|
58
|
+
print,
|
|
59
|
+
open: '(',
|
|
60
|
+
close: ')',
|
|
61
|
+
addWhitespace: false,
|
|
62
|
+
shouldBreak: false,
|
|
63
|
+
indentGroup: groupId,
|
|
64
|
+
}), { id: groupId });
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=macro_call_expression.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"macro_call_expression.js","sourceRoot":"","sources":["../../../src/cst/expression/macro_call_expression.ts"],"names":[],"mappings":";AAAA,sCAAsC;AACtC,sCAAsC;;AAWtC,4BAMC;AAbD,uCAA6C;AAC7C,+CAAuC;AACvC,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,cAAG,CAAC,QAAQ,CAAC;AAE7E,oDAAoD;AACpD,MAAM,SAAS,GAAG,uBAAuB,CAAC;AAE1C,mBAAyB,IAAmB;IACxC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,wBAAwB,CAAC;IACpC,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,wBAAwB,CAAC,IAAmB,EAAE,OAAoB,EAAE,KAAc;IACvF,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACrB,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;YAC3C,OAAO,sBAAsB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QACxD,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAChC,OAAO,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QACpD,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC,EAAE,uBAAuB,CAAC,CAAC;AAChC,CAAC;AAED;;;;;GAKG;AACH,SAAS,sBAAsB,CAAC,IAAmB,EAAE,OAAoB,EAAE,KAAc;IACrF,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC/D,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,IAAmB,EAAE,OAAoB,EAAE,KAAc;IACjF,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,KAAK,CAAC,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAE1C,OAAO,KAAK,CACR,IAAA,gBAAI,EAAC;QACD,IAAI;QACJ,OAAO;QACP,KAAK;QACL,IAAI,EAAE,GAAG;QACT,KAAK,EAAE,GAAG;QACV,aAAa,EAAE,KAAK;QACpB,WAAW,EAAE,KAAK;QAClB,WAAW,EAAE,OAAO;KACvB,CAAC,EACF,EAAE,EAAE,EAAE,OAAO,EAAE,CAClB,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) The Move Contributors
|
|
3
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.NODE_TYPE = void 0;
|
|
6
|
+
exports.default = default_1;
|
|
7
|
+
const utilities_1 = require("../../utilities");
|
|
8
|
+
const doc_1 = require("prettier/doc");
|
|
9
|
+
const { join, indent, group, softline, line } = doc_1.builders;
|
|
10
|
+
/** The type of the node implemented in this file */
|
|
11
|
+
exports.NODE_TYPE = 'match_expression';
|
|
12
|
+
function default_1(path) {
|
|
13
|
+
if (path.node.type === exports.NODE_TYPE) {
|
|
14
|
+
return printMatchExpression;
|
|
15
|
+
}
|
|
16
|
+
else if (path.node.type === 'match_arm') {
|
|
17
|
+
return printMatchArm;
|
|
18
|
+
}
|
|
19
|
+
else if (path.node.type === 'match_condition') {
|
|
20
|
+
return printMatchCondition;
|
|
21
|
+
}
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Print `match_expression` node.
|
|
26
|
+
* Inside:
|
|
27
|
+
* - `match`
|
|
28
|
+
* - `(`
|
|
29
|
+
* - `_expression`
|
|
30
|
+
* - `)`
|
|
31
|
+
* - `_match_body`
|
|
32
|
+
*/
|
|
33
|
+
function printMatchExpression(path, options, print) {
|
|
34
|
+
const condNode = path.node.nonFormattingChildren[0];
|
|
35
|
+
const parts = ['match '];
|
|
36
|
+
if (condNode.isBreakableExpression) {
|
|
37
|
+
parts.push('(', path.call(print, 'nonFormattingChildren', 0), ')');
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
parts.push(group([
|
|
41
|
+
'(',
|
|
42
|
+
indent(softline),
|
|
43
|
+
indent(path.call(print, 'nonFormattingChildren', 0)),
|
|
44
|
+
softline,
|
|
45
|
+
')',
|
|
46
|
+
]));
|
|
47
|
+
}
|
|
48
|
+
parts.push(' ', (0, utilities_1.list)({
|
|
49
|
+
path,
|
|
50
|
+
print,
|
|
51
|
+
options,
|
|
52
|
+
open: '{',
|
|
53
|
+
close: '}',
|
|
54
|
+
skipChildren: 1,
|
|
55
|
+
shouldBreak: true,
|
|
56
|
+
}));
|
|
57
|
+
return parts;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Print `match_arm` node.
|
|
61
|
+
*/
|
|
62
|
+
function printMatchArm(path, options, print) {
|
|
63
|
+
const children = path.map(print, 'nonFormattingChildren');
|
|
64
|
+
if (children.length < 2) {
|
|
65
|
+
throw new Error('`match_arm` node should have at least 2 children');
|
|
66
|
+
}
|
|
67
|
+
if (children.length == 2) {
|
|
68
|
+
return group(join(' => ', children));
|
|
69
|
+
}
|
|
70
|
+
if (children.length == 3) {
|
|
71
|
+
return [children[0], ' ', children[1], group([' =>', indent(line), children[2]])];
|
|
72
|
+
}
|
|
73
|
+
throw new Error('`match_arm` node should have at most 3 children');
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Prints `match_condition` node in `match_arm`.
|
|
77
|
+
* Example: `Enum if (x == 1) => 1,`, `if (...)` here is a `match_condition` node.
|
|
78
|
+
*/
|
|
79
|
+
function printMatchCondition(path, options, print) {
|
|
80
|
+
const children = path.node.nonFormattingChildren;
|
|
81
|
+
if (children.length !== 1) {
|
|
82
|
+
throw new Error('`match_condition` expects 1 child');
|
|
83
|
+
}
|
|
84
|
+
return ['if (', path.call(print, 'nonFormattingChildren', 0), ')'];
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=match_expression.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"match_expression.js","sourceRoot":"","sources":["../../../src/cst/expression/match_expression.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) The Move Contributors
|
|
3
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.NODE_TYPE = void 0;
|
|
6
|
+
exports.default = default_1;
|
|
7
|
+
const prettier_1 = require("prettier");
|
|
8
|
+
const {} = prettier_1.doc.builders;
|
|
9
|
+
/** The type of the node implemented in this file */
|
|
10
|
+
exports.NODE_TYPE = 'move_or_copy_expression';
|
|
11
|
+
function default_1(path) {
|
|
12
|
+
if (path.node.type === exports.NODE_TYPE) {
|
|
13
|
+
return printMoveOrCopyExpression;
|
|
14
|
+
}
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Print `move_or_copy_expression` node.
|
|
19
|
+
*/
|
|
20
|
+
function printMoveOrCopyExpression(path, options, print) {
|
|
21
|
+
const ref = path.node.child(0).text == 'move' ? ['move', ' '] : ['copy', ' '];
|
|
22
|
+
return [
|
|
23
|
+
...ref,
|
|
24
|
+
path.call(print, 'nonFormattingChildren', 0), // expression
|
|
25
|
+
];
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=move_or_copy_expression.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"move_or_copy_expression.js","sourceRoot":"","sources":["../../../src/cst/expression/move_or_copy_expression.ts"],"names":[],"mappings":";AAAA,sCAAsC;AACtC,sCAAsC;;;AAUtC,4BAMC;AAZD,uCAA6C;AAC7C,MAAM,EAAE,GAAG,cAAG,CAAC,QAAQ,CAAC;AAExB,oDAAoD;AACvC,QAAA,SAAS,GAAG,yBAAyB,CAAC;AAEnD,mBAAyB,IAAmB;IACxC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,iBAAS,EAAE,CAAC;QAC/B,OAAO,yBAAyB,CAAC;IACrC,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,yBAAyB,CAAC,IAAmB,EAAE,OAAoB,EAAE,KAAc;IACxF,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/E,OAAO;QACH,GAAG,GAAG;QACN,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC,EAAE,aAAa;KAC9D,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) The Move Contributors
|
|
3
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.NODE_TYPE = void 0;
|
|
6
|
+
exports.default = default_1;
|
|
7
|
+
const prettier_1 = require("prettier");
|
|
8
|
+
const {} = prettier_1.doc.builders;
|
|
9
|
+
/** The type of the node implemented in this file */
|
|
10
|
+
exports.NODE_TYPE = 'name_expression';
|
|
11
|
+
function default_1(path) {
|
|
12
|
+
if (path.node.type === exports.NODE_TYPE) {
|
|
13
|
+
return printNameExpression;
|
|
14
|
+
}
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Print `name_expression` node.
|
|
19
|
+
* Inside:
|
|
20
|
+
* - `module_access`
|
|
21
|
+
* - `type_arguments`
|
|
22
|
+
*/
|
|
23
|
+
function printNameExpression(path, options, print) {
|
|
24
|
+
return path.map(print, 'nonFormattingChildren');
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=name_expression.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"name_expression.js","sourceRoot":"","sources":["../../../src/cst/expression/name_expression.ts"],"names":[],"mappings":";AAAA,sCAAsC;AACtC,sCAAsC;;;AAUtC,4BAMC;AAZD,uCAA6C;AAC7C,MAAM,EAAE,GAAG,cAAG,CAAC,QAAQ,CAAC;AAExB,oDAAoD;AACvC,QAAA,SAAS,GAAG,iBAAiB,CAAC;AAE3C,mBAAyB,IAAmB;IACxC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,iBAAS,EAAE,CAAC;QAC/B,OAAO,mBAAmB,CAAC;IAC/B,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,SAAS,mBAAmB,CAAC,IAAmB,EAAE,OAAoB,EAAE,KAAc;IAClF,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;AACpD,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) The Move Contributors
|
|
3
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.NODE_TYPE = void 0;
|
|
6
|
+
exports.default = default_1;
|
|
7
|
+
const prettier_1 = require("prettier");
|
|
8
|
+
const {} = prettier_1.doc.builders;
|
|
9
|
+
/** The type of the node implemented in this file */
|
|
10
|
+
exports.NODE_TYPE = 'pack_expression';
|
|
11
|
+
function default_1(path) {
|
|
12
|
+
if (path.node.type === exports.NODE_TYPE) {
|
|
13
|
+
return printPackExpression;
|
|
14
|
+
}
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Print `pack_expression` node.
|
|
19
|
+
* Inside:
|
|
20
|
+
* - `module_access`
|
|
21
|
+
* - `type_arguments` (optional)
|
|
22
|
+
* - `field_initialize_list`
|
|
23
|
+
*/
|
|
24
|
+
function printPackExpression(path, options, print) {
|
|
25
|
+
return path.map(print, 'nonFormattingChildren');
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=pack_expression.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pack_expression.js","sourceRoot":"","sources":["../../../src/cst/expression/pack_expression.ts"],"names":[],"mappings":";AAAA,sCAAsC;AACtC,sCAAsC;;;AAUtC,4BAMC;AAZD,uCAA6C;AAC7C,MAAM,EAAE,GAAG,cAAG,CAAC,QAAQ,CAAC;AAExB,oDAAoD;AACvC,QAAA,SAAS,GAAG,iBAAiB,CAAC;AAE3C,mBAAyB,IAAmB;IACxC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,iBAAS,EAAE,CAAC;QAC/B,OAAO,mBAAmB,CAAC;IAC/B,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,mBAAmB,CAAC,IAAmB,EAAE,OAAoB,EAAE,KAAc;IAClF,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;AACpD,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) The Move Contributors
|
|
3
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.NODE_TYPE = void 0;
|
|
6
|
+
exports.default = default_1;
|
|
7
|
+
const prettier_1 = require("prettier");
|
|
8
|
+
const { join, indent } = prettier_1.doc.builders;
|
|
9
|
+
/** The type of the node implemented in this file */
|
|
10
|
+
exports.NODE_TYPE = 'return_expression';
|
|
11
|
+
function default_1(path) {
|
|
12
|
+
if (path.node.type === exports.NODE_TYPE) {
|
|
13
|
+
return printReturnExpression;
|
|
14
|
+
}
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Print `return_expression` node.
|
|
19
|
+
*/
|
|
20
|
+
function printReturnExpression(path, options, print) {
|
|
21
|
+
const nodes = path.node.nonFormattingChildren;
|
|
22
|
+
if (nodes.length === 0) {
|
|
23
|
+
return 'return';
|
|
24
|
+
}
|
|
25
|
+
// either label or expression
|
|
26
|
+
if (nodes.length === 1) {
|
|
27
|
+
const expression = nodes[0];
|
|
28
|
+
const printed = path.call(print, 'nonFormattingChildren', 0);
|
|
29
|
+
return ['return ', expression.isBreakableExpression ? printed : indent(printed)];
|
|
30
|
+
}
|
|
31
|
+
// labeled expression
|
|
32
|
+
if (nodes.length === 2) {
|
|
33
|
+
const expression = nodes[1];
|
|
34
|
+
const printedLabel = path.call(print, 'nonFormattingChildren', 0);
|
|
35
|
+
const printedExpression = path.call(print, 'nonFormattingChildren', 1);
|
|
36
|
+
return join(' ', [
|
|
37
|
+
'return',
|
|
38
|
+
printedLabel,
|
|
39
|
+
expression.isBreakableExpression ? printedExpression : indent(printedExpression),
|
|
40
|
+
]);
|
|
41
|
+
}
|
|
42
|
+
throw new Error('Invalid return expression');
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=return_expression.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"return_expression.js","sourceRoot":"","sources":["../../../src/cst/expression/return_expression.ts"],"names":[],"mappings":";AAAA,sCAAsC;AACtC,sCAAsC;;;AAUtC,4BAMC;AAZD,uCAA6C;AAC7C,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,cAAG,CAAC,QAAQ,CAAC;AAEtC,oDAAoD;AACvC,QAAA,SAAS,GAAG,mBAAmB,CAAC;AAE7C,mBAAyB,IAAmB;IACxC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,iBAAS,EAAE,CAAC;QAC/B,OAAO,qBAAqB,CAAC;IACjC,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAAC,IAAmB,EAAE,OAAoB,EAAE,KAAc;IACpF,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC;IAE9C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,6BAA6B;IAC7B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAC;QAC7D,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,qBAAqB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACrF,CAAC;IAED,qBAAqB;IACrB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;QAC7B,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAC;QAClE,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAC;QACvE,OAAO,IAAI,CAAC,GAAG,EAAE;YACb,QAAQ;YACR,YAAY;YACZ,UAAU,CAAC,qBAAqB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC;SACnF,CAAC,CAAC;IACP,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;AACjD,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) The Move Contributors
|
|
3
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.NODE_TYPE = void 0;
|
|
6
|
+
exports.default = default_1;
|
|
7
|
+
const prettier_1 = require("prettier");
|
|
8
|
+
const {} = prettier_1.doc.builders;
|
|
9
|
+
/** The type of the node implemented in this file */
|
|
10
|
+
exports.NODE_TYPE = 'unary_expression';
|
|
11
|
+
function default_1(path) {
|
|
12
|
+
if (path.node.type === exports.NODE_TYPE) {
|
|
13
|
+
return printUnaryExpression;
|
|
14
|
+
}
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Print `unary_expression` node.
|
|
19
|
+
*/
|
|
20
|
+
function printUnaryExpression(path, options, print) {
|
|
21
|
+
return [
|
|
22
|
+
path.call(print, 'nonFormattingChildren', 0),
|
|
23
|
+
path.call(print, 'nonFormattingChildren', 1),
|
|
24
|
+
];
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=unary_expression.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unary_expression.js","sourceRoot":"","sources":["../../../src/cst/expression/unary_expression.ts"],"names":[],"mappings":";AAAA,sCAAsC;AACtC,sCAAsC;;;AAUtC,4BAMC;AAZD,uCAA6C;AAC7C,MAAM,EAAE,GAAG,cAAG,CAAC,QAAQ,CAAC;AAExB,oDAAoD;AACvC,QAAA,SAAS,GAAG,kBAAkB,CAAC;AAE5C,mBAAyB,IAAmB;IACxC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,iBAAS,EAAE,CAAC;QAC/B,OAAO,oBAAoB,CAAC;IAChC,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAAC,IAAmB,EAAE,OAAoB,EAAE,KAAc;IACnF,OAAO;QACH,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC;KAC/C,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) The Move Contributors
|
|
3
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.NODE_TYPE = void 0;
|
|
6
|
+
exports.default = default_1;
|
|
7
|
+
const prettier_1 = require("prettier");
|
|
8
|
+
const {} = prettier_1.doc.builders;
|
|
9
|
+
/** The type of the node implemented in this file */
|
|
10
|
+
exports.NODE_TYPE = 'unit_expression';
|
|
11
|
+
function default_1(path) {
|
|
12
|
+
if (path.node.type === exports.NODE_TYPE) {
|
|
13
|
+
return () => '()';
|
|
14
|
+
}
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=unit_expression.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unit_expression.js","sourceRoot":"","sources":["../../../src/cst/expression/unit_expression.ts"],"names":[],"mappings":";AAAA,sCAAsC;AACtC,sCAAsC;;;AAUtC,4BAMC;AAZD,uCAA6C;AAC7C,MAAM,EAAE,GAAG,cAAG,CAAC,QAAQ,CAAC;AAExB,oDAAoD;AACvC,QAAA,SAAS,GAAG,iBAAiB,CAAC;AAE3C,mBAAyB,IAAmB;IACxC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,iBAAS,EAAE,CAAC;QAC/B,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC;IACtB,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) The Move Contributors
|
|
3
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.NODE_TYPE = void 0;
|
|
6
|
+
exports.default = default_1;
|
|
7
|
+
const prettier_1 = require("prettier");
|
|
8
|
+
const utilities_1 = require("../../utilities");
|
|
9
|
+
const block_1 = require("./block");
|
|
10
|
+
const { group, lineSuffix } = prettier_1.doc.builders;
|
|
11
|
+
/** The type of the node implemented in this file */
|
|
12
|
+
exports.NODE_TYPE = 'vector_expression';
|
|
13
|
+
function default_1(path) {
|
|
14
|
+
if (path.node.type === exports.NODE_TYPE) {
|
|
15
|
+
return printVectorExpression;
|
|
16
|
+
}
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Print `vector_expression` node.
|
|
21
|
+
*/
|
|
22
|
+
function printVectorExpression(path, options, print) {
|
|
23
|
+
if (path.node.namedChildCount === 0) {
|
|
24
|
+
return 'vector[]';
|
|
25
|
+
}
|
|
26
|
+
// Injected print callback for elements in the vector
|
|
27
|
+
const printCb = (path) => printElement(path, options, print);
|
|
28
|
+
const trailing = path.node.trailingComment;
|
|
29
|
+
let trailingComment = '';
|
|
30
|
+
if (trailing?.type === 'line_comment') {
|
|
31
|
+
trailingComment = (0, utilities_1.printTrailingComment)(path, false);
|
|
32
|
+
path.node.disableTrailingComment();
|
|
33
|
+
}
|
|
34
|
+
// Vector without type specified
|
|
35
|
+
// Eg: `vector[....]`
|
|
36
|
+
if (path.node.child(0)?.text == 'vector[') {
|
|
37
|
+
return group([
|
|
38
|
+
'vector',
|
|
39
|
+
(0, utilities_1.list)({ path, print: printCb, options, open: '[', close: ']' }),
|
|
40
|
+
lineSuffix(trailingComment),
|
|
41
|
+
], { shouldBreak: false });
|
|
42
|
+
}
|
|
43
|
+
if (!path.node.nonFormattingChildren[0]?.isTypeParam) {
|
|
44
|
+
throw new Error(`Expected a type parameter in the \`vector_expression\`, got \`${path.node.nonFormattingChildren[0]?.type}\``);
|
|
45
|
+
}
|
|
46
|
+
if (path.node.nonFormattingChildren.slice(1).some((child) => child.isTypeParam)) {
|
|
47
|
+
throw new Error('Expected only one type parameter in the `vector_expression`');
|
|
48
|
+
}
|
|
49
|
+
// Vector with type
|
|
50
|
+
// Eg: `vector<TYPE>[...]`
|
|
51
|
+
return [
|
|
52
|
+
'vector<',
|
|
53
|
+
// do not break the type in vector literal
|
|
54
|
+
// indent(softline),
|
|
55
|
+
group(path.call(print, 'nonFormattingChildren', 0), { shouldBreak: false }),
|
|
56
|
+
'>',
|
|
57
|
+
group((0, utilities_1.list)({
|
|
58
|
+
path,
|
|
59
|
+
print: printCb,
|
|
60
|
+
options,
|
|
61
|
+
open: '[',
|
|
62
|
+
close: ']',
|
|
63
|
+
skipChildren: 1,
|
|
64
|
+
shouldBreak: false,
|
|
65
|
+
})),
|
|
66
|
+
lineSuffix(trailingComment),
|
|
67
|
+
];
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Special print elements in the `vector_expression`.
|
|
71
|
+
*
|
|
72
|
+
* - we want to use breakable blocks for `block` nodes;
|
|
73
|
+
*/
|
|
74
|
+
function printElement(path, options, print) {
|
|
75
|
+
if (path.node.type === 'block') {
|
|
76
|
+
return (0, block_1.printBreakableBlock)(path, options, print);
|
|
77
|
+
}
|
|
78
|
+
return print(path);
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=vector_expression.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vector_expression.js","sourceRoot":"","sources":["../../../src/cst/expression/vector_expression.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) The Move Contributors
|
|
3
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.NODE_TYPE = void 0;
|
|
6
|
+
exports.default = default_1;
|
|
7
|
+
const prettier_1 = require("prettier");
|
|
8
|
+
const { indent, softline, group } = prettier_1.doc.builders;
|
|
9
|
+
/** The type of the node implemented in this file */
|
|
10
|
+
exports.NODE_TYPE = 'while_expression';
|
|
11
|
+
function default_1(path) {
|
|
12
|
+
if (path.node.type === exports.NODE_TYPE) {
|
|
13
|
+
return printWhileExpression;
|
|
14
|
+
}
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Print `while_expression` node.
|
|
19
|
+
*
|
|
20
|
+
* ```
|
|
21
|
+
* // single line
|
|
22
|
+
* while (bool_expr) expr
|
|
23
|
+
*
|
|
24
|
+
* // break condition
|
|
25
|
+
* while (
|
|
26
|
+
* very_long_expr &&
|
|
27
|
+
* very_long_expr
|
|
28
|
+
* ) {
|
|
29
|
+
* expr;
|
|
30
|
+
* }
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
function printWhileExpression(path, options, print) {
|
|
34
|
+
const condition = path.node.nonFormattingChildren[0].isList
|
|
35
|
+
? [indent(softline), path.call(print, 'nonFormattingChildren', 0), softline]
|
|
36
|
+
: [indent(softline), indent(path.call(print, 'nonFormattingChildren', 0)), softline];
|
|
37
|
+
return [
|
|
38
|
+
['while (', group(condition), ') '],
|
|
39
|
+
path.call(print, 'nonFormattingChildren', 1), // body
|
|
40
|
+
];
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=while_expression.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"while_expression.js","sourceRoot":"","sources":["../../../src/cst/expression/while_expression.ts"],"names":[],"mappings":";AAAA,sCAAsC;AACtC,sCAAsC;;;AAUtC,4BAMC;AAZD,uCAA6C;AAC7C,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,cAAG,CAAC,QAAQ,CAAC;AAEjD,oDAAoD;AACvC,QAAA,SAAS,GAAG,kBAAkB,CAAC;AAE5C,mBAAyB,IAAmB;IACxC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,iBAAS,EAAE,CAAC;QAC/B,OAAO,oBAAoB,CAAC;IAChC,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,SAAS,oBAAoB,CAAC,IAAmB,EAAE,OAAoB,EAAE,KAAc;IACnF,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAE,CAAC,MAAM;QACxD,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC;QAC5E,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAEzF,OAAO;QACH,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC;QACnC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC,EAAE,OAAO;KACxD,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) The Move Contributors
|
|
3
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.Formatting = void 0;
|
|
6
|
+
exports.default = default_1;
|
|
7
|
+
exports.startsOnNewLine = startsOnNewLine;
|
|
8
|
+
exports.shouldNewLine = shouldNewLine;
|
|
9
|
+
exports.isFormatting = isFormatting;
|
|
10
|
+
exports.isComment = isComment;
|
|
11
|
+
exports.isEmptyLine = isEmptyLine;
|
|
12
|
+
exports.isNewline = isNewline;
|
|
13
|
+
exports.printLineComment = printLineComment;
|
|
14
|
+
exports.printBlockComment = printBlockComment;
|
|
15
|
+
exports.printEmptyLine = printEmptyLine;
|
|
16
|
+
exports.printNewline = printNewline;
|
|
17
|
+
/**
|
|
18
|
+
* Creates a callback function to print commments and comment-related nodes.
|
|
19
|
+
*
|
|
20
|
+
* @param path
|
|
21
|
+
* @returns
|
|
22
|
+
*/
|
|
23
|
+
function default_1(path) {
|
|
24
|
+
switch (path.node.type) {
|
|
25
|
+
case Formatting.LineComment:
|
|
26
|
+
return printLineComment;
|
|
27
|
+
case Formatting.BlockComment:
|
|
28
|
+
return printBlockComment;
|
|
29
|
+
case Formatting.EmptyLine:
|
|
30
|
+
return printEmptyLine;
|
|
31
|
+
case Formatting.Newline:
|
|
32
|
+
return printNewline;
|
|
33
|
+
default:
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
var Formatting;
|
|
38
|
+
(function (Formatting) {
|
|
39
|
+
Formatting["LineComment"] = "line_comment";
|
|
40
|
+
Formatting["BlockComment"] = "block_comment";
|
|
41
|
+
/**
|
|
42
|
+
* Token that doesn't exist in the grammar but we insert it in
|
|
43
|
+
* the `Tree` representation of CST to represent an empty line.
|
|
44
|
+
*/
|
|
45
|
+
Formatting["EmptyLine"] = "empty_line";
|
|
46
|
+
/**
|
|
47
|
+
* Special node to insert a newline before the next node.
|
|
48
|
+
* We use it to make a call to hardline or not.
|
|
49
|
+
*/
|
|
50
|
+
Formatting["Newline"] = "newline";
|
|
51
|
+
})(Formatting || (exports.Formatting = Formatting = {}));
|
|
52
|
+
function startsOnNewLine(path) {
|
|
53
|
+
return path.previous?.type == Formatting.EmptyLine;
|
|
54
|
+
}
|
|
55
|
+
function shouldNewLine(path) {
|
|
56
|
+
return path.node.nextNamedSibling?.type == Formatting.Newline;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Test if a node is a formatting node.
|
|
60
|
+
*
|
|
61
|
+
* @param node
|
|
62
|
+
* @returns
|
|
63
|
+
*/
|
|
64
|
+
function isFormatting(node) {
|
|
65
|
+
return [
|
|
66
|
+
Formatting.LineComment,
|
|
67
|
+
Formatting.BlockComment,
|
|
68
|
+
Formatting.EmptyLine,
|
|
69
|
+
Formatting.Newline,
|
|
70
|
+
].includes(node.type);
|
|
71
|
+
}
|
|
72
|
+
function isComment(node) {
|
|
73
|
+
return [Formatting.LineComment, Formatting.BlockComment].includes(node?.type);
|
|
74
|
+
}
|
|
75
|
+
function isEmptyLine(node) {
|
|
76
|
+
return Formatting.EmptyLine == node?.type;
|
|
77
|
+
}
|
|
78
|
+
function isNewline(node) {
|
|
79
|
+
return Formatting.Newline == node?.type;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Print `line_comment` node.
|
|
83
|
+
* Comments are handled via the `addLeadingComments` function.
|
|
84
|
+
*/
|
|
85
|
+
function printLineComment(path) {
|
|
86
|
+
return path.node.text;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Print `block_comment` node.
|
|
90
|
+
*/
|
|
91
|
+
function printBlockComment(path) {
|
|
92
|
+
return path.node.text;
|
|
93
|
+
}
|
|
94
|
+
function printEmptyLine(path) {
|
|
95
|
+
return ''; // should not be printed directly, used in `join(hardline)` to act as an extra newline
|
|
96
|
+
}
|
|
97
|
+
function printNewline(path) {
|
|
98
|
+
return ''; // should not be printed, ever
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=formatting.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatting.js","sourceRoot":"","sources":["../../src/cst/formatting.ts"],"names":[],"mappings":";AAAA,sCAAsC;AACtC,sCAAsC;;;AAYtC,4BAaC;AAiBD,0CAEC;AAED,sCAEC;AAQD,oCAOC;AAED,8BAEC;AAED,kCAEC;AAED,8BAEC;AAMD,4CAEC;AAKD,8CAEC;AAED,wCAEC;AAED,oCAEC;AA5FD;;;;;GAKG;AACH,mBAAyB,IAAmB;IACxC,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,UAAU,CAAC,WAAW;YACvB,OAAO,gBAAgB,CAAC;QAC5B,KAAK,UAAU,CAAC,YAAY;YACxB,OAAO,iBAAiB,CAAC;QAC7B,KAAK,UAAU,CAAC,SAAS;YACrB,OAAO,cAAc,CAAC;QAC1B,KAAK,UAAU,CAAC,OAAO;YACnB,OAAO,YAAY,CAAC;QACxB;YACI,OAAO,IAAI,CAAC;IACpB,CAAC;AACL,CAAC;AAED,IAAY,UAaX;AAbD,WAAY,UAAU;IAClB,0CAA4B,CAAA;IAC5B,4CAA8B,CAAA;IAC9B;;;OAGG;IACH,sCAAwB,CAAA;IACxB;;;OAGG;IACH,iCAAmB,CAAA;AACvB,CAAC,EAbW,UAAU,0BAAV,UAAU,QAarB;AAED,SAAgB,eAAe,CAAC,IAAmB;IAC/C,OAAO,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,UAAU,CAAC,SAAS,CAAC;AACvD,CAAC;AAED,SAAgB,aAAa,CAAC,IAAmB;IAC7C,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,IAAI,UAAU,CAAC,OAAO,CAAC;AAClE,CAAC;AAED;;;;;GAKG;AACH,SAAgB,YAAY,CAAC,IAAU;IACnC,OAAO;QACH,UAAU,CAAC,WAAW;QACtB,UAAU,CAAC,YAAY;QACvB,UAAU,CAAC,SAAS;QACpB,UAAU,CAAC,OAAO;KACrB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAkB,CAAC,CAAC;AACxC,CAAC;AAED,SAAgB,SAAS,CAAC,IAAiB;IACvC,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAkB,CAAC,CAAC;AAChG,CAAC;AAED,SAAgB,WAAW,CAAC,IAAiB;IACzC,OAAO,UAAU,CAAC,SAAS,IAAI,IAAI,EAAE,IAAI,CAAC;AAC9C,CAAC;AAED,SAAgB,SAAS,CAAC,IAAiB;IACvC,OAAO,UAAU,CAAC,OAAO,IAAI,IAAI,EAAE,IAAI,CAAC;AAC5C,CAAC;AAED;;;GAGG;AACH,SAAgB,gBAAgB,CAAC,IAAmB;IAChD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAAC,IAAmB;IACjD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AAC1B,CAAC;AAED,SAAgB,cAAc,CAAC,IAAmB;IAC9C,OAAO,EAAE,CAAC,CAAC,sFAAsF;AACrG,CAAC;AAED,SAAgB,YAAY,CAAC,IAAmB;IAC5C,OAAO,EAAE,CAAC,CAAC,8BAA8B;AAC7C,CAAC"}
|