From 5f25f244ca777628a8de03f0ccad004b95b9453d Mon Sep 17 00:00:00 2001 From: Takafumi Arakaki Date: Sat, 3 Nov 2012 23:41:31 +0100 Subject: [PATCH] Add Function.get_call_signature --- jedi/parsing.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/jedi/parsing.py b/jedi/parsing.py index 94140fbe..dfb6212e 100644 --- a/jedi/parsing.py +++ b/jedi/parsing.py @@ -385,6 +385,31 @@ class Function(Scope): debug.warning("multiple names in param %s" % n) return n + def get_call_signature(self, width=72): + """ + Generate call signature of this function. + + :param width: Fold lines if a line is longer than this value. + :type width: int + + :rtype: str + """ + l = self.name.names[-1] + '(' + lines = [] + for (i, p) in enumerate(self.params): + code = p.get_code(False) + if i != len(self.params) - 1: + code += ', ' + if len(l + code) > width: + lines.append(l[:-1] if l[-1] == ' ' else l) + l = code + else: + l += code + if l: + lines.append(l) + lines[-1] += ')' + return '\n'.join(lines) + class Flow(Scope): """