mirror of
https://github.com/davidhalter/jedi.git
synced 2025-12-07 22:44:27 +08:00
Fix some whitespace refactoring when inlining
This commit is contained in:
@@ -184,17 +184,20 @@ def inline(grammar, names):
|
|||||||
name.tree_name.prefix + s
|
name.tree_name.prefix + s
|
||||||
|
|
||||||
path = definitions[0].get_root_context().py__file__()
|
path = definitions[0].get_root_context().py__file__()
|
||||||
file_to_node_changes.setdefault(path, {})[expr_stmt] = \
|
changes = file_to_node_changes.setdefault(path, {})
|
||||||
_remove_indent_and_newline_of_prefix(expr_stmt.get_first_leaf().prefix)
|
changes[expr_stmt] = _remove_indent_of_prefix(expr_stmt.get_first_leaf().prefix)
|
||||||
|
next_leaf = expr_stmt.get_next_leaf()
|
||||||
|
|
||||||
|
# Most of the time we have to remove the newline at the end of the
|
||||||
|
# statement, but if there's a comment we might not need to.
|
||||||
|
if next_leaf.prefix.strip(' \t') == '' \
|
||||||
|
and (next_leaf.type == 'newline' or next_leaf == ';'):
|
||||||
|
changes[next_leaf] = ''
|
||||||
return Refactoring(grammar, file_to_node_changes)
|
return Refactoring(grammar, file_to_node_changes)
|
||||||
|
|
||||||
|
|
||||||
def _remove_indent_and_newline_of_prefix(prefix):
|
def _remove_indent_of_prefix(prefix):
|
||||||
r"""
|
r"""
|
||||||
Removes the last indentation of a prefix, e.g. " \n \n " becomes " \n \n".
|
Removes the last indentation of a prefix, e.g. " \n \n " becomes " \n \n".
|
||||||
"""
|
"""
|
||||||
lines = split_lines(prefix, keepends=True)[:-1]
|
return ''.join(split_lines(prefix, keepends=True)[:-1])
|
||||||
if lines and lines[-1].endswith('\n'):
|
|
||||||
# Remove the newline
|
|
||||||
lines[-1] = lines[-1][:-1]
|
|
||||||
return ''.join(lines)
|
|
||||||
|
|||||||
@@ -41,9 +41,8 @@ test(foobarb)
|
|||||||
# ++++++++++++++++++++++++++++++++++++++++++++++++++
|
# ++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
--- /home/dave/source/jedi/test/refactor/inline.py
|
--- /home/dave/source/jedi/test/refactor/inline.py
|
||||||
+++ /home/dave/source/jedi/test/refactor/inline.py
|
+++ /home/dave/source/jedi/test/refactor/inline.py
|
||||||
@@ -1,4 +1,4 @@
|
@@ -1,4 +1,3 @@
|
||||||
-foobarb: int = 1
|
-foobarb: int = 1
|
||||||
+
|
|
||||||
#? 5
|
#? 5
|
||||||
-test(foobarb)
|
-test(foobarb)
|
||||||
+test(1)
|
+test(1)
|
||||||
@@ -112,3 +111,79 @@ if 1:
|
|||||||
- a = 1, 2
|
- a = 1, 2
|
||||||
- return test(100, a)
|
- return test(100, a)
|
||||||
+ return test(100, (1, 2))
|
+ return test(100, (1, 2))
|
||||||
|
# -------------------------------------------------- multiplication-add-parens1
|
||||||
|
a = 1+2
|
||||||
|
#? 11
|
||||||
|
test(100 * a)
|
||||||
|
# ++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
--- /home/dave/source/jedi/test/refactor/inline.py
|
||||||
|
+++ /home/dave/source/jedi/test/refactor/inline.py
|
||||||
|
@@ -1,4 +1,3 @@
|
||||||
|
-a = 1+2
|
||||||
|
#? 11
|
||||||
|
-test(100 * a)
|
||||||
|
+test(100 * (1+2))
|
||||||
|
# -------------------------------------------------- multiplication-add-parens2
|
||||||
|
a = 1+2
|
||||||
|
#? 11
|
||||||
|
(x, 100 * a)
|
||||||
|
# ++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
--- /home/dave/source/jedi/test/refactor/inline.py
|
||||||
|
+++ /home/dave/source/jedi/test/refactor/inline.py
|
||||||
|
@@ -1,4 +1,3 @@
|
||||||
|
-a = 1+2
|
||||||
|
#? 11
|
||||||
|
-(x, 100 * a)
|
||||||
|
+(x, 100 * (1+2))
|
||||||
|
# -------------------------------------------------- multiplication-add-parens3
|
||||||
|
x
|
||||||
|
a = 1+2
|
||||||
|
#? 9
|
||||||
|
(100 ** a)
|
||||||
|
# ++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
--- /home/dave/source/jedi/test/refactor/inline.py
|
||||||
|
+++ /home/dave/source/jedi/test/refactor/inline.py
|
||||||
|
@@ -1,5 +1,4 @@
|
||||||
|
x
|
||||||
|
-a = 1+2
|
||||||
|
#? 9
|
||||||
|
-(100 ** a)
|
||||||
|
+(100 ** (1+2))
|
||||||
|
# -------------------------------------------------- no-add-parens1
|
||||||
|
x
|
||||||
|
a = 1+2
|
||||||
|
#? 5
|
||||||
|
test(a)
|
||||||
|
# ++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
--- /home/dave/source/jedi/test/refactor/inline.py
|
||||||
|
+++ /home/dave/source/jedi/test/refactor/inline.py
|
||||||
|
@@ -1,5 +1,4 @@
|
||||||
|
x
|
||||||
|
-a = 1+2
|
||||||
|
#? 5
|
||||||
|
-test(a)
|
||||||
|
+test(1+2)
|
||||||
|
# -------------------------------------------------- no-add-parens2
|
||||||
|
a = 1+2
|
||||||
|
#? 9
|
||||||
|
test(3, a)
|
||||||
|
# ++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
--- /home/dave/source/jedi/test/refactor/inline.py
|
||||||
|
+++ /home/dave/source/jedi/test/refactor/inline.py
|
||||||
|
@@ -1,4 +1,3 @@
|
||||||
|
-a = 1+2
|
||||||
|
#? 9
|
||||||
|
-test(3, a)
|
||||||
|
+test(3, 1+2)
|
||||||
|
# -------------------------------------------------- no-add-parens3
|
||||||
|
a = 1|2
|
||||||
|
#? 5
|
||||||
|
(3, a)
|
||||||
|
# ++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
--- /home/dave/source/jedi/test/refactor/inline.py
|
||||||
|
+++ /home/dave/source/jedi/test/refactor/inline.py
|
||||||
|
@@ -1,4 +1,3 @@
|
||||||
|
-a = 1|2
|
||||||
|
#? 5
|
||||||
|
-(3, a)
|
||||||
|
+(3, 1|2)
|
||||||
|
|||||||
Reference in New Issue
Block a user