mirror of
https://github.com/davidhalter/jedi.git
synced 2025-12-06 22:14: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
|
||||
|
||||
path = definitions[0].get_root_context().py__file__()
|
||||
file_to_node_changes.setdefault(path, {})[expr_stmt] = \
|
||||
_remove_indent_and_newline_of_prefix(expr_stmt.get_first_leaf().prefix)
|
||||
changes = file_to_node_changes.setdefault(path, {})
|
||||
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)
|
||||
|
||||
|
||||
def _remove_indent_and_newline_of_prefix(prefix):
|
||||
def _remove_indent_of_prefix(prefix):
|
||||
r"""
|
||||
Removes the last indentation of a prefix, e.g. " \n \n " becomes " \n \n".
|
||||
"""
|
||||
lines = split_lines(prefix, keepends=True)[:-1]
|
||||
if lines and lines[-1].endswith('\n'):
|
||||
# Remove the newline
|
||||
lines[-1] = lines[-1][:-1]
|
||||
return ''.join(lines)
|
||||
return ''.join(split_lines(prefix, keepends=True)[:-1])
|
||||
|
||||
@@ -41,9 +41,8 @@ test(foobarb)
|
||||
# ++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
--- /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
|
||||
+
|
||||
#? 5
|
||||
-test(foobarb)
|
||||
+test(1)
|
||||
@@ -112,3 +111,79 @@ if 1:
|
||||
- a = 1, 2
|
||||
- return test(100, a)
|
||||
+ 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