From 2dd08594fcbc51f637d2514963c249413e1f4d0f Mon Sep 17 00:00:00 2001 From: Dave Halter Date: Thu, 5 Feb 2015 14:37:24 +0100 Subject: [PATCH] Simplify the indent calculation in the fast parser. --- jedi/parser/fast.py | 27 ++++++--------------------- 1 file changed, 6 insertions(+), 21 deletions(-) diff --git a/jedi/parser/fast.py b/jedi/parser/fast.py index b5e36926..da1506f3 100644 --- a/jedi/parser/fast.py +++ b/jedi/parser/fast.py @@ -6,7 +6,7 @@ finished (and still not working as I want), I won't document it any further. import re from itertools import chain -from jedi._compatibility import use_metaclass, unicode +from jedi._compatibility import use_metaclass from jedi import settings from jedi.parser import Parser from jedi.parser import tree as pr @@ -67,7 +67,6 @@ class FastModule(pr.Module): pass - class MergedNamesDict(object): def __init__(self, dicts): self.dicts = dicts @@ -174,31 +173,17 @@ class ParserNode(object): self._content_scope.names_dict = MergedNamesDict(dcts) def parent_until_indent(self, indent=None): - if indent is None or self._indent >= indent and self.parent: - if self.parent is not None: - self.close() - return self.parent.parent_until_indent(indent) + if (indent is None or self._indent >= indent) and self.parent is not None: + self.close() + return self.parent.parent_until_indent(indent) return self @property def _indent(self): if not self.parent: return 0 - module = self.parser.module - try: - el = module.subscopes[0] - except IndexError: - try: - el = module.statements[0] - except IndexError: - try: - el = module.imports[0] - except IndexError: - try: - el = [r for r in module.returns if r is not None][0] - except IndexError: - el = module.children[0] - return el.start_pos[1] + + return self.parser.module.children[0].start_pos[1] def add_node(self, node, line_offset): """Adding a node means adding a node that was already added earlier"""