diff options
Diffstat (limited to 'runtime/autoload/provider/script_host.py')
-rw-r--r-- | runtime/autoload/provider/script_host.py | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/runtime/autoload/provider/script_host.py b/runtime/autoload/provider/script_host.py index 14208310aa..e0b9ee6012 100644 --- a/runtime/autoload/provider/script_host.py +++ b/runtime/autoload/provider/script_host.py @@ -1,4 +1,4 @@ -"""Legacy python-vim emulation.""" +"""Legacy python/python3-vim emulation.""" import imp import logging import os @@ -35,7 +35,7 @@ class ScriptHost(object): if IS_PYTHON3: self.legacy_vim = self.legacy_vim.with_hook( neovim.DecodeHook( - encoding=nvim.options['encoding'].decode('ascii'))) + encoding=nvim.options['encoding'])) sys.modules['vim'] = self.legacy_vim def setup(self, nvim): @@ -96,7 +96,7 @@ class ScriptHost(object): # Python3 code (exec) must be a string, mixing bytes with # function_def would use bytes.__repr__ instead if isinstance and isinstance(code, bytes): - code = code.decode(nvim.options['encoding'].decode('ascii')) + code = code.decode(nvim.options['encoding']) # define the function function_def = 'def %s(line, linenr):\n %s' % (fname, code,) exec(function_def, self.module.__dict__) @@ -166,6 +166,9 @@ class RedirectStream(object): def writelines(self, seq): self.redirect_handler('\n'.join(seq)) + def flush(self): + pass + class LegacyEvalHook(neovim.SessionHook): @@ -175,8 +178,12 @@ class LegacyEvalHook(neovim.SessionHook): super(LegacyEvalHook, self).__init__(from_nvim=self._string_eval) def _string_eval(self, obj, session, method, kind): - if method == 'vim_eval' and isinstance(obj, (int, long, float)): - return str(obj) + if method == 'vim_eval': + if IS_PYTHON3: + if isinstance(obj, (int, float)): + return str(obj) + elif isinstance(obj, (int, long, float)): + return str(obj) return obj @@ -231,11 +238,11 @@ def discover_runtime_directories(nvim): for path in nvim.list_runtime_paths(): if not os.path.exists(path): continue - path1 = os.path.join(path, b'pythonx') + path1 = os.path.join(path, 'pythonx') if IS_PYTHON3: - path2 = os.path.join(path, b'python3') + path2 = os.path.join(path, 'python3') else: - path2 = os.path.join(path, b'python2') + path2 = os.path.join(path, 'python2') if os.path.exists(path1): rv.append(path1) if os.path.exists(path2): |