diff --git a/mode/perl.py b/mode/perl.py index 95662d2..94210fd 100644 --- a/mode/perl.py +++ b/mode/perl.py @@ -610,11 +610,11 @@ class PerlContext(context.Context): stack.append(t.string) starting = False elif t.name == 'delimiter' and t.string == '}': - if not stack: - # we are totally hosed. start over. ugh. - self.build_name_map() - return - stack.pop(-1) + if stack: + stack.pop(-1) + else: + # we are totally hosed. ugh. + pass if curr: self.namelines[i] = (curr, tuple(stack)) i += 1 @@ -734,7 +734,6 @@ class Perl(mode.Fundamental): 'perlfunction': PerlFunctionCompleter(None), } format = "%(flag)s %(bname)-18s (%(mname)s) %(indent)s %(cursor)s/%(mark)s %(perc)s [%(func)s]" - #format = "%(flag)s %(bname)-18s (%(mname)s) %(cursor)s/%(mark)s %(perc)s" def get_status_names(self): names = mode.Fundamental.get_status_names(self) c = self.window.logical_cursor() @@ -755,7 +754,7 @@ class Perl(mode.Fundamental): self.add_bindings('close-paren', (')')) self.add_bindings('close-bracket', (']')) self.add_bindings('close-brace', ('}')) - #self.context = PerlContext(self) + self.context = PerlContext(self) self.functions = None self.funclines = None self.perlinc = None @@ -789,13 +788,10 @@ class Perl(mode.Fundamental): return self.perlinc def get_functions(self): - #return self.context.get_names() - return {} + return self.context.get_names() def get_function_names(self): - #return self.context.get_name_list() - return {} + return self.context.get_name_list() def get_line_function(self, y): - #return self.context.get_line_name(y) - return {} + return self.context.get_line_name(y) install = Perl.install