Add a plugin infrastructure

This commit is contained in:
Dave Halter
2018-07-21 15:03:05 +02:00
parent 7d2b7bb3c1
commit df55f62ad8
4 changed files with 66 additions and 11 deletions
+2
View File
@@ -108,6 +108,8 @@ class Evaluator(object):
self.reset_recursion_limitations()
self.allow_different_encoding = True
from jedi.plugins import plugin_manager
self.plugin_callbacks = plugin_manager.get_callbacks(self)
@property
@evaluator_function_cache()
+11 -11
View File
@@ -53,17 +53,17 @@ class Context(BaseContext):
except stdlib.NotInStdLib:
pass
try:
func = self.py__call__
except AttributeError:
debug.warning("no execution possible %s", self)
return NO_CONTEXTS
else:
context_set = func(arguments)
debug.dbg('execute result: %s in %s', context_set, self)
return context_set
return self.evaluator.execute(self, arguments)
def default(arguments):
try:
func = self.py__call__
except AttributeError:
debug.warning("no execution possible %s", self)
return NO_CONTEXTS
else:
context_set = func(arguments)
debug.dbg('execute result: %s in %s', context_set, self)
return context_set
return self.evaluator.plugin_callbacks.execute(default, arguments)
def execute_evaluated(self, *value_list):
"""