Fix to not add extra spaces when formatting call (#6652)
This commit is contained in:
@ -55,7 +55,7 @@ fn sum(arr):
|
|||||||
// We use `assert` to check that our `sum` function gives the
|
// We use `assert` to check that our `sum` function gives the
|
||||||
// expected result. It's good to check your work!
|
// expected result. It's good to check your work!
|
||||||
assert(
|
assert(
|
||||||
sum([1, 2, 3]),
|
sum([1, 2, 3]),
|
||||||
isEqualTo = 6,
|
isEqualTo = 6,
|
||||||
tolerance = 0.1,
|
tolerance = 0.1,
|
||||||
error = "1 + 2 + 3 summed is 6",
|
error = "1 + 2 + 3 summed is 6",
|
||||||
|
@ -232205,7 +232205,7 @@
|
|||||||
"unpublished": false,
|
"unpublished": false,
|
||||||
"deprecated": false,
|
"deprecated": false,
|
||||||
"examples": [
|
"examples": [
|
||||||
"// This function adds two numbers.\nfn add(a, b) {\n return a + b\n}\n\n// This function adds an array of numbers.\n// It uses the `reduce` function, to call the `add` function on every\n// element of the `arr` parameter. The starting value is 0.\nfn sum(@arr) {\n return reduce(arr, initial = 0, f = add)\n}\n\n/* The above is basically like this pseudo-code:\nfn sum(arr):\n sumSoFar = 0\n for i in arr:\n sumSoFar = add(sumSoFar, i)\n return sumSoFar */\n\n// We use `assert` to check that our `sum` function gives the\n// expected result. It's good to check your work!\nassert(\n sum([1, 2, 3]),\n isEqualTo = 6,\n tolerance = 0.1,\n error = \"1 + 2 + 3 summed is 6\",\n)",
|
"// This function adds two numbers.\nfn add(a, b) {\n return a + b\n}\n\n// This function adds an array of numbers.\n// It uses the `reduce` function, to call the `add` function on every\n// element of the `arr` parameter. The starting value is 0.\nfn sum(@arr) {\n return reduce(arr, initial = 0, f = add)\n}\n\n/* The above is basically like this pseudo-code:\nfn sum(arr):\n sumSoFar = 0\n for i in arr:\n sumSoFar = add(sumSoFar, i)\n return sumSoFar */\n\n// We use `assert` to check that our `sum` function gives the\n// expected result. It's good to check your work!\nassert(\n sum([1, 2, 3]),\n isEqualTo = 6,\n tolerance = 0.1,\n error = \"1 + 2 + 3 summed is 6\",\n)",
|
||||||
"// This example works just like the previous example above, but it uses\n// an anonymous `add` function as its parameter, instead of declaring a\n// named function outside.\narr = [1, 2, 3]\nsum = reduce(\n arr,\n initial = 0,\n f = fn(i, result_so_far) {\n return i + result_so_far\n },\n)\n\n// We use `assert` to check that our `sum` function gives the\n// expected result. It's good to check your work!\nassert(\n sum,\n isEqualTo = 6,\n tolerance = 0.1,\n error = \"1 + 2 + 3 summed is 6\",\n)",
|
"// This example works just like the previous example above, but it uses\n// an anonymous `add` function as its parameter, instead of declaring a\n// named function outside.\narr = [1, 2, 3]\nsum = reduce(\n arr,\n initial = 0,\n f = fn(i, result_so_far) {\n return i + result_so_far\n },\n)\n\n// We use `assert` to check that our `sum` function gives the\n// expected result. It's good to check your work!\nassert(\n sum,\n isEqualTo = 6,\n tolerance = 0.1,\n error = \"1 + 2 + 3 summed is 6\",\n)",
|
||||||
"// Declare a function that sketches a decagon.\nfn decagon(@radius) {\n // Each side of the decagon is turned this many radians from the previous angle.\n stepAngle = (1 / 10 * TAU): number(rad)\n\n // Start the decagon sketch at this point.\n startOfDecagonSketch = startSketchOn(XY)\n |> startProfile(at = [cos(0) * radius, sin(0) * radius])\n\n // Use a `reduce` to draw the remaining decagon sides.\n // For each number in the array 1..10, run the given function,\n // which takes a partially-sketched decagon and adds one more edge to it.\n fullDecagon = reduce(\n [1..10],\n initial = startOfDecagonSketch,\n f = fn(i, partialDecagon) {\n // Draw one edge of the decagon.\n x = cos(stepAngle * i) * radius\n y = sin(stepAngle * i) * radius\n return line(partialDecagon, end = [x, y])\n },\n )\n\n return fullDecagon\n}\n\n/* The `decagon` above is basically like this pseudo-code:\nfn decagon(radius):\n stepAngle = ((1/10) * TAU): number(rad)\n plane = startSketchOn(XY)\n startOfDecagonSketch = startProfile(plane, at = [(cos(0)*radius), (sin(0) * radius)])\n\n // Here's the reduce part.\n partialDecagon = startOfDecagonSketch\n for i in [1..10]:\n x = cos(stepAngle * i) * radius\n y = sin(stepAngle * i) * radius\n partialDecagon = line(partialDecagon, end = [x, y])\n fullDecagon = partialDecagon // it's now full\n return fullDecagon */\n\n// Use the `decagon` function declared above, to sketch a decagon with radius 5.\ndecagon(5.0)\n |> close()"
|
"// Declare a function that sketches a decagon.\nfn decagon(@radius) {\n // Each side of the decagon is turned this many radians from the previous angle.\n stepAngle = (1 / 10 * TAU): number(rad)\n\n // Start the decagon sketch at this point.\n startOfDecagonSketch = startSketchOn(XY)\n |> startProfile(at = [cos(0) * radius, sin(0) * radius])\n\n // Use a `reduce` to draw the remaining decagon sides.\n // For each number in the array 1..10, run the given function,\n // which takes a partially-sketched decagon and adds one more edge to it.\n fullDecagon = reduce(\n [1..10],\n initial = startOfDecagonSketch,\n f = fn(i, partialDecagon) {\n // Draw one edge of the decagon.\n x = cos(stepAngle * i) * radius\n y = sin(stepAngle * i) * radius\n return line(partialDecagon, end = [x, y])\n },\n )\n\n return fullDecagon\n}\n\n/* The `decagon` above is basically like this pseudo-code:\nfn decagon(radius):\n stepAngle = ((1/10) * TAU): number(rad)\n plane = startSketchOn(XY)\n startOfDecagonSketch = startProfile(plane, at = [(cos(0)*radius), (sin(0) * radius)])\n\n // Here's the reduce part.\n partialDecagon = startOfDecagonSketch\n for i in [1..10]:\n x = cos(stepAngle * i) * radius\n y = sin(stepAngle * i) * radius\n partialDecagon = line(partialDecagon, end = [x, y])\n fullDecagon = partialDecagon // it's now full\n return fullDecagon */\n\n// Use the `decagon` function declared above, to sketch a decagon with radius 5.\ndecagon(5.0)\n |> close()"
|
||||||
]
|
]
|
||||||
|
@ -126,7 +126,7 @@ fn armRestProfile(@plane, offset) {
|
|||||||
|
|
||||||
export fn armRest(@plane, offset) {
|
export fn armRest(@plane, offset) {
|
||||||
path = armRestPath( offsetPlane(plane, offset = offset))
|
path = armRestPath( offsetPlane(plane, offset = offset))
|
||||||
profile = armRestProfile( offsetPlane(-XZ, offset = 20), offset = -offset)
|
profile = armRestProfile(offsetPlane(-XZ, offset = 20), offset = -offset)
|
||||||
sweep(profile, path = path)
|
sweep(profile, path = path)
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
@ -377,7 +377,7 @@ impl CallExpression {
|
|||||||
impl CallExpressionKw {
|
impl CallExpressionKw {
|
||||||
fn recast_args(&self, options: &FormatOptions, indentation_level: usize, ctxt: ExprContext) -> Vec<String> {
|
fn recast_args(&self, options: &FormatOptions, indentation_level: usize, ctxt: ExprContext) -> Vec<String> {
|
||||||
let mut arg_list = if let Some(first_arg) = &self.unlabeled {
|
let mut arg_list = if let Some(first_arg) = &self.unlabeled {
|
||||||
vec![first_arg.recast(options, indentation_level, ctxt)]
|
vec![first_arg.recast(options, indentation_level, ctxt).trim().to_owned()]
|
||||||
} else {
|
} else {
|
||||||
Vec::with_capacity(self.arguments.len())
|
Vec::with_capacity(self.arguments.len())
|
||||||
};
|
};
|
||||||
@ -2584,6 +2584,58 @@ sketch002 = startSketchOn({
|
|||||||
assert_eq!(actual, input);
|
assert_eq!(actual, input);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn unparse_call_inside_function_single_line() {
|
||||||
|
let input = r#"fn foo() {
|
||||||
|
toDegrees(atan(0.5), foo = 1)
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
"#;
|
||||||
|
let ast = crate::parsing::top_level_parse(input).unwrap();
|
||||||
|
let actual = ast.recast(&FormatOptions::new(), 0);
|
||||||
|
assert_eq!(actual, input);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn unparse_call_inside_function_args_multiple_lines() {
|
||||||
|
let input = r#"fn foo() {
|
||||||
|
toDegrees(
|
||||||
|
atan(0.5),
|
||||||
|
foo = 1,
|
||||||
|
bar = 2,
|
||||||
|
baz = 3,
|
||||||
|
qux = 4,
|
||||||
|
)
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
"#;
|
||||||
|
let ast = crate::parsing::top_level_parse(input).unwrap();
|
||||||
|
let actual = ast.recast(&FormatOptions::new(), 0);
|
||||||
|
assert_eq!(actual, input);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn unparse_call_inside_function_single_arg_multiple_lines() {
|
||||||
|
let input = r#"fn foo() {
|
||||||
|
toDegrees(
|
||||||
|
[
|
||||||
|
profile0,
|
||||||
|
profile1,
|
||||||
|
profile2,
|
||||||
|
profile3,
|
||||||
|
profile4,
|
||||||
|
profile5
|
||||||
|
],
|
||||||
|
key = 1,
|
||||||
|
)
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
"#;
|
||||||
|
let ast = crate::parsing::top_level_parse(input).unwrap();
|
||||||
|
let actual = ast.recast(&FormatOptions::new(), 0);
|
||||||
|
assert_eq!(actual, input);
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn recast_objects_with_comments() {
|
fn recast_objects_with_comments() {
|
||||||
use winnow::Parser;
|
use winnow::Parser;
|
||||||
|
@ -605,19 +605,19 @@ flowchart LR
|
|||||||
84 --- 147
|
84 --- 147
|
||||||
84 --- 233
|
84 --- 233
|
||||||
87 --- 169
|
87 --- 169
|
||||||
87 x--> 184
|
87 x--> 183
|
||||||
87 --- 212
|
87 --- 212
|
||||||
87 --- 257
|
87 --- 257
|
||||||
89 --- 168
|
89 --- 168
|
||||||
89 x--> 184
|
89 x--> 183
|
||||||
89 --- 214
|
89 --- 214
|
||||||
89 --- 258
|
89 --- 258
|
||||||
90 --- 167
|
90 --- 167
|
||||||
90 x--> 184
|
90 x--> 183
|
||||||
90 --- 211
|
90 --- 211
|
||||||
90 --- 256
|
90 --- 256
|
||||||
92 --- 166
|
92 --- 166
|
||||||
92 x--> 184
|
92 x--> 183
|
||||||
92 --- 213
|
92 --- 213
|
||||||
92 --- 259
|
92 --- 259
|
||||||
119 --- 162
|
119 --- 162
|
||||||
@ -865,10 +865,10 @@ flowchart LR
|
|||||||
221 <--x 181
|
221 <--x 181
|
||||||
222 <--x 181
|
222 <--x 181
|
||||||
193 <--x 182
|
193 <--x 182
|
||||||
211 <--x 183
|
211 <--x 184
|
||||||
212 <--x 183
|
212 <--x 184
|
||||||
213 <--x 183
|
213 <--x 184
|
||||||
214 <--x 183
|
214 <--x 184
|
||||||
203 <--x 186
|
203 <--x 186
|
||||||
204 <--x 186
|
204 <--x 186
|
||||||
205 <--x 186
|
205 <--x 186
|
||||||
|
@ -241,8 +241,8 @@ flowchart LR
|
|||||||
7["Plane<br>[334, 354, 8]"]
|
7["Plane<br>[334, 354, 8]"]
|
||||||
8["Plane<br>[3807, 3842, 8]"]
|
8["Plane<br>[3807, 3842, 8]"]
|
||||||
9["Plane<br>[3807, 3842, 8]"]
|
9["Plane<br>[3807, 3842, 8]"]
|
||||||
10["Plane<br>[3873, 3902, 8]"]
|
10["Plane<br>[3871, 3900, 8]"]
|
||||||
11["Plane<br>[3873, 3902, 8]"]
|
11["Plane<br>[3871, 3900, 8]"]
|
||||||
12["StartSketchOnPlane<br>[2700, 2720, 8]"]
|
12["StartSketchOnPlane<br>[2700, 2720, 8]"]
|
||||||
13["StartSketchOnPlane<br>[1737, 1757, 8]"]
|
13["StartSketchOnPlane<br>[1737, 1757, 8]"]
|
||||||
14["StartSketchOnPlane<br>[3258, 3278, 8]"]
|
14["StartSketchOnPlane<br>[3258, 3278, 8]"]
|
||||||
@ -268,8 +268,8 @@ flowchart LR
|
|||||||
234["Sweep Extrusion<br>[2618, 2642, 8]"]
|
234["Sweep Extrusion<br>[2618, 2642, 8]"]
|
||||||
235["Sweep Extrusion<br>[3180, 3204, 8]"]
|
235["Sweep Extrusion<br>[3180, 3204, 8]"]
|
||||||
236["Sweep Extrusion<br>[3180, 3204, 8]"]
|
236["Sweep Extrusion<br>[3180, 3204, 8]"]
|
||||||
237["Sweep Sweep<br>[3924, 3951, 8]"]
|
237["Sweep Sweep<br>[3922, 3949, 8]"]
|
||||||
238["Sweep Sweep<br>[3924, 3951, 8]"]
|
238["Sweep Sweep<br>[3922, 3949, 8]"]
|
||||||
239[Wall]
|
239[Wall]
|
||||||
240[Wall]
|
240[Wall]
|
||||||
241[Wall]
|
241[Wall]
|
||||||
|
Reference in New Issue
Block a user