diff --git a/python/src/com/jetbrains/python/PyParameterInfoHandler.java b/python/src/com/jetbrains/python/PyParameterInfoHandler.java index 6c106bdbeda8..571853ed0a38 100644 --- a/python/src/com/jetbrains/python/PyParameterInfoHandler.java +++ b/python/src/com/jetbrains/python/PyParameterInfoHandler.java @@ -102,6 +102,7 @@ public class PyParameterInfoHandler implements ParameterInfoHandler flat_args = PyUtil.flattenedParensAndLists(arglist.getArguments()); for (PyExpression arg : flat_args) { - can_offer_next &= !(arg instanceof PyKeywordArgument); final boolean must_highlight = arg.getTextRange().contains(current_param_offset); PsiElement seeker = arg; while (seeker != arglist && seeker != null && !result.getPlainMappedParams().containsKey(seeker)) { @@ -228,15 +228,16 @@ public class PyParameterInfoHandler implements ParameterInfoHandler1, 2, x=3, **{'y':4}) +foo(1, 2, x=3, **{'y':4}, ) diff --git a/python/testSrc/com/jetbrains/python/PyParameterInfoTest.java b/python/testSrc/com/jetbrains/python/PyParameterInfoTest.java index d19007ff24df..2c1848a3f09d 100644 --- a/python/testSrc/com/jetbrains/python/PyParameterInfoTest.java +++ b/python/testSrc/com/jetbrains/python/PyParameterInfoTest.java @@ -81,7 +81,7 @@ public class PyParameterInfoTest extends LightMarkedTestCase { } public void testKwdFunction() { - Map marks = loadTest(4); + Map marks = loadTest(5); PsiElement arg1 = marks.get(""); feignCtrlP(arg1.getTextOffset()).check("a, b, **c", new String[]{"a, "}); @@ -99,6 +99,9 @@ public class PyParameterInfoTest extends LightMarkedTestCase { PsiElement arg4 = marks.get(""); feignCtrlP(arg4.getTextOffset()).check("a, b, **c", new String[]{"**c"}); feignCtrlP(arg4.getTextOffset()+1).check("a, b, **c", new String[]{"**c"}); + + PsiElement arg5 = marks.get(""); + feignCtrlP(arg5.getTextOffset()).check("a, b, **c", new String[]{"**c"}); } public void testKwdOutOfOrder() { @@ -361,7 +364,7 @@ public class PyParameterInfoTest extends LightMarkedTestCase { Map marks = loadTest(2); feignCtrlP(marks.get("").getTextOffset()).check("a, b, c=1, d=2, e=3", new String[]{"d=2, "}); - feignCtrlP(marks.get("").getTextOffset()).check("a, b, c=1, d=2, e=3", new String[]{}); // no logical next + feignCtrlP(marks.get("").getTextOffset()).check("a, b, c=1, d=2, e=3", new String[]{"e=3"}); // no logical next } public void testPy3kPastTupleArg() {