Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions gdtoolkit/formatter/context.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,3 +54,4 @@ class ExpressionContext:
prefix_line: int # earliest line number of prefix string
suffix_string: str
suffix_line: int # earliest line number of suffix string
is_inside_list: bool = False
56 changes: 35 additions & 21 deletions gdtoolkit/formatter/expression.py
Original file line number Diff line number Diff line change
Expand Up @@ -440,46 +440,55 @@ def _format_operator_chain_based_expression_to_multiple_lines(
) or (
expression_context.prefix_string.endswith("[")
and expression_context.suffix_string.startswith("]")
)
) or expression_context.is_inside_list
lpar = "" if inside_par else "("
rpar = "" if inside_par else ")"
child_context = context.create_child_context(expression_context.prefix_line)
child_context = (
context
if expression_context.is_inside_list
else context.create_child_context(expression_context.prefix_line)
)
child_expression_context = ExpressionContext(
"",
expression_context.prefix_line,
"",
"" if not expression_context.is_inside_list else expression_context.suffix_string,
expression_context.suffix_line,
is_inside_list=inside_par,
)
fake_meta = Meta()
fake_meta.line = expression_context.prefix_line
fake_meta.end_line = expression_context.suffix_line
fake_expression = Tree(
"contextless_operator_chain_based_expression", expression.children, fake_meta
)
formatted_lines = [
(
expression_context.prefix_line,
"{}{}{}".format(
context.indent_string, expression_context.prefix_string, lpar
),
formatted_lines = [] # type: FormattedLines
# left and right parentheses are added only if the expression is not inside of a list
if not expression_context.is_inside_list:
formatted_lines.append(
(
expression_context.prefix_line,
"{}{}{}".format(
context.indent_string, expression_context.prefix_string, lpar
),
)
)
] # type: FormattedLines
formatted_lines += _format_concrete_expression(
fake_expression, child_expression_context, child_context
)
formatted_lines.append(
(
get_end_line(expression.children[-1]),
"{}{}{}".format(
context.indent_string, rpar, expression_context.suffix_string
),
if not expression_context.is_inside_list:
formatted_lines.append(
(
get_end_line(expression.children[-1]),
"{}{}{}".format(
context.indent_string, rpar, expression_context.suffix_string
),
)
)
)
return formatted_lines


def _format_contextless_operator_chain_based_expression_to_multiple_lines(
expression: Tree, _: ExpressionContext, context: Context
expression: Tree, expression_context: ExpressionContext, context: Context
) -> FormattedLines:
formatted_lines = [] # type: FormattedLines
value = expression.children[0]
Expand All @@ -494,7 +503,7 @@ def _format_contextless_operator_chain_based_expression_to_multiple_lines(
ExpressionContext(
f"{expression_to_str(operator)} ",
get_line(child),
"",
expression_context.suffix_string,
get_end_line(child),
),
context,
Expand All @@ -513,6 +522,7 @@ def _format_comma_separated_list_to_multiple_lines(
expression_context.prefix_line,
"",
expression_context.suffix_line,
is_inside_list=True
)
fake_meta = Meta()
fake_meta.line = expression_context.prefix_line
Expand All @@ -538,7 +548,7 @@ def _format_comma_separated_list_to_multiple_lines(


def _format_contextless_comma_separated_list_to_multiple_lines(
expression: Tree, _: ExpressionContext, context: Context
expression: Tree, expression_context: ExpressionContext, context: Context
) -> FormattedLines:
a_list = expression.children
elements = [node for node in a_list if not is_any_comma(node)]
Expand All @@ -547,7 +557,11 @@ def _format_contextless_comma_separated_list_to_multiple_lines(
for i, element in enumerate(elements):
suffix = "," if i != len(elements) - 1 or trailing_comma_present else ""
child_expression_context = ExpressionContext(
"", get_line(element), suffix, get_end_line(element)
"",
get_line(element),
suffix,
get_end_line(element),
is_inside_list=expression_context.is_inside_list
)
lines = _format_standalone_expression(
element, child_expression_context, context
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
func _ready():
print("Long string with added formatting %d and %s ......................................." % [1, "string"])
print("Long string with added formatting %d and %s ......................................." % [1, "string"], "Long string with added formatting %d and %s ......................................." % [1, "string"])

var very_long_variable_name1_iiiiiiiiiiiiiiiiiiiiii: int = 0
var very_long_variable_name2_iiiiiiiiiiiiiiiiiiiiii: int = 1

print(very_long_variable_name1_iiiiiiiiiiiiiiiiiiiiii + very_long_variable_name2_iiiiiiiiiiiiiiiiiiiiii)
print(very_long_variable_name1_iiiiiiiiiiiiiiiiiiiiii + very_long_variable_name2_iiiiiiiiiiiiiiiiiiiiii, very_long_variable_name1_iiiiiiiiiiiiiiiiiiiiii - very_long_variable_name2_iiiiiiiiiiiiiiiiiiiiii, very_long_variable_name1_iiiiiiiiiiiiiiiiiiiiii * very_long_variable_name2_iiiiiiiiiiiiiiiiiiiiii, very_long_variable_name1_iiiiiiiiiiiiiiiiiiiiii / very_long_variable_name2_iiiiiiiiiiiiiiiiiiiiii, very_long_variable_name1_iiiiiiiiiiiiiiiiiiiiii & very_long_variable_name2_iiiiiiiiiiiiiiiiiiiiii, very_long_variable_name1_iiiiiiiiiiiiiiiiiiiiii | very_long_variable_name2_iiiiiiiiiiiiiiiiiiiiii)

var array1 = ["Long string with added formatting %d and %s ......................................." % [1, "string"], very_long_variable_name1_iiiiiiiiiiiiiiiiiiiiii + very_long_variable_name2_iiiiiiiiiiiiiiiiiiiiii]
print(array1)

var array2 = ["Long string with added formatting %d and %s ......................................." % [1, "string"]]
print(array2)

var array3 = [very_long_variable_name1_iiiiiiiiiiiiiiiiiiiiii + very_long_variable_name2_iiiiiiiiiiiiiiiiiiiiii]
print(array3)

var array4 = [very_long_variable_name1_iiiiiiiiiiiiiiiiiiiiii + very_long_variable_name2_iiiiiiiiiiiiiiiiiiiiii,]
print(array4)
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
func _ready():
print(
"Long string with added formatting %d and %s ......................................."
% [1, "string"]
)
print(
"Long string with added formatting %d and %s ......................................."
% [1, "string"],
"Long string with added formatting %d and %s ......................................."
% [1, "string"]
)

var very_long_variable_name1_iiiiiiiiiiiiiiiiiiiiii: int = 0
var very_long_variable_name2_iiiiiiiiiiiiiiiiiiiiii: int = 1

print(
very_long_variable_name1_iiiiiiiiiiiiiiiiiiiiii
+ very_long_variable_name2_iiiiiiiiiiiiiiiiiiiiii
)
print(
very_long_variable_name1_iiiiiiiiiiiiiiiiiiiiii
+ very_long_variable_name2_iiiiiiiiiiiiiiiiiiiiii,
very_long_variable_name1_iiiiiiiiiiiiiiiiiiiiii
- very_long_variable_name2_iiiiiiiiiiiiiiiiiiiiii,
very_long_variable_name1_iiiiiiiiiiiiiiiiiiiiii
* very_long_variable_name2_iiiiiiiiiiiiiiiiiiiiii,
very_long_variable_name1_iiiiiiiiiiiiiiiiiiiiii
/ very_long_variable_name2_iiiiiiiiiiiiiiiiiiiiii,
very_long_variable_name1_iiiiiiiiiiiiiiiiiiiiii
& very_long_variable_name2_iiiiiiiiiiiiiiiiiiiiii,
very_long_variable_name1_iiiiiiiiiiiiiiiiiiiiii
| very_long_variable_name2_iiiiiiiiiiiiiiiiiiiiii
)

var array1 = [
"Long string with added formatting %d and %s ......................................."
% [1, "string"],
very_long_variable_name1_iiiiiiiiiiiiiiiiiiiiii
+ very_long_variable_name2_iiiiiiiiiiiiiiiiiiiiii
]
print(array1)

var array2 = [
"Long string with added formatting %d and %s ......................................."
% [1, "string"]
]
print(array2)

var array3 = [
very_long_variable_name1_iiiiiiiiiiiiiiiiiiiiii
+ very_long_variable_name2_iiiiiiiiiiiiiiiiiiiiii
]
print(array3)

var array4 = [
very_long_variable_name1_iiiiiiiiiiiiiiiiiiiiii
+ very_long_variable_name2_iiiiiiiiiiiiiiiiiiiiii,
]
print(array4)
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,10 @@ class WeaponSystemBullet:
func foo():
var bullet_scene
assert(
(
(func() -> bool:
var test_instance: Node = bullet_scene.instantiate()
var is_needed_class: bool = test_instance is WeaponSystemBullet
test_instance.free()
return is_needed_class)
. call()
)
(func() -> bool:
var test_instance: Node = bullet_scene.instantiate()
var is_needed_class: bool = test_instance is WeaponSystemBullet
test_instance.free()
return is_needed_class)
. call()
)