1
0
forked from VimPlug/jedi

Some changes because parso has changed.

This commit is contained in:
Dave Halter
2017-05-22 15:42:42 -04:00
parent 91e753e07a
commit b90589b62e
9 changed files with 21 additions and 26 deletions

View File

@@ -13,9 +13,8 @@ import os
import warnings
import sys
from parso.python import load_grammar
from parso import load_python_grammar
from parso.python import tree
from parso.python import parse
from parso.utils import source_to_unicode, splitlines
from jedi.parser_utils import get_executable_nodes, get_statement_of_position
@@ -125,7 +124,7 @@ class Script(object):
cache.clear_time_caches()
debug.reset_time()
self._grammar = load_grammar(version='%s.%s' % sys.version_info[:2])
self._grammar = load_python_grammar(version='%s.%s' % sys.version_info[:2])
if sys_path is None:
venv = os.getenv('VIRTUAL_ENV')
if venv:
@@ -135,10 +134,9 @@ class Script(object):
@cache.memoize_method
def _get_module_node(self):
return parse(
return self._grammar.parse(
code=self._source,
path=self.path,
grammar=self._grammar,
cache=False, # No disk cache, because the current script often changes.
diff_cache=True,
cache_path=settings.cache_directory

View File

@@ -418,7 +418,7 @@ class Completion(BaseDefinition):
append = '('
if isinstance(self._name, ParamName) and self._stack is not None:
node_names = list(self._stack.get_node_names(self._evaluator.grammar))
node_names = list(self._stack.get_node_names(self._evaluator.grammar._pgen_grammar))
if 'trailer' in node_names and 'argument' not in node_names:
append += '='

View File

@@ -135,14 +135,14 @@ class Completion:
return self._global_completions()
allowed_keywords, allowed_tokens = \
helpers.get_possible_completion_types(grammar, self.stack)
helpers.get_possible_completion_types(grammar._pgen_grammar, self.stack)
completion_names = list(self._get_keyword_completion_names(allowed_keywords))
if token.NAME in allowed_tokens or token.INDENT in allowed_tokens:
# This means that we actually have to do type inference.
symbol_names = list(self.stack.get_node_names(grammar))
symbol_names = list(self.stack.get_node_names(grammar._pgen_grammar))
nodes = list(self.stack.get_nodes())

View File

@@ -133,7 +133,7 @@ def get_stack_at_position(grammar, code_lines, module_node, pos):
safeword = 'ZZZ_USER_WANTS_TO_COMPLETE_HERE_WITH_JEDI'
code = code + safeword
p = Parser(grammar, error_recovery=True)
p = Parser(grammar._pgen_grammar, error_recovery=True)
try:
p.parse(tokens=tokenize_without_endmarker(code))
except EndMarkerReached:
@@ -152,7 +152,7 @@ class Stack(list):
yield node
def get_possible_completion_types(grammar, stack):
def get_possible_completion_types(pgen_grammar, stack):
def add_results(label_index):
try:
grammar_labels.append(inversed_tokens[label_index])
@@ -160,17 +160,17 @@ def get_possible_completion_types(grammar, stack):
try:
keywords.append(inversed_keywords[label_index])
except KeyError:
t, v = grammar.labels[label_index]
t, v = pgen_grammar.labels[label_index]
assert t >= 256
# See if it's a symbol and if we're in its first set
inversed_keywords
itsdfa = grammar.dfas[t]
itsdfa = pgen_grammar.dfas[t]
itsstates, itsfirst = itsdfa
for first_label_index in itsfirst.keys():
add_results(first_label_index)
inversed_keywords = dict((v, k) for k, v in grammar.keywords.items())
inversed_tokens = dict((v, k) for k, v in grammar.tokens.items())
inversed_keywords = dict((v, k) for k, v in pgen_grammar.keywords.items())
inversed_tokens = dict((v, k) for k, v in pgen_grammar.tokens.items())
keywords = []
grammar_labels = []