Beispiel #1
0
 def python_execute(self, script, range_start, range_stop):
     """Handle the `python` ex command."""
     self._set_current_range(range_start, range_stop)
     try:
         exec(script, self.module.__dict__)
     except Exception:
         raise ErrorResponse(format_exc_skip(1))
Beispiel #2
0
 def python_execute_file(self, file_path, range_start, range_stop):
     """Handle the `pyfile` ex command."""
     self._set_current_range(range_start, range_stop)
     with open(file_path, 'rb') as f:
         script = compile(f.read(), file_path, 'exec')
         try:
             exec(script, self.module.__dict__)
         except Exception:
             raise ErrorResponse(format_exc_skip(1))
Beispiel #3
0
    def _on_request(self, name, args):
        """Handle a msgpack-rpc request."""
        if IS_PYTHON3:
            name = decode_if_bytes(name)
        handler = self._request_handlers.get(name, None)
        if not handler:
            msg = self._missing_handler_error(name, 'request')
            error(msg)
            raise ErrorResponse(msg)

        debug('calling request handler for "%s", args: "%s"', name, args)
        rv = handler(*args)
        debug("request handler for '%s %s' returns: %s", name, args, rv)
        return rv
Beispiel #4
0
 def _wrap_function(self, fn, sync, decode, nvim_bind, name, *args):
     if decode:
         args = walk(decode_if_bytes, args, decode)
     if nvim_bind is not None:
         args.insert(0, nvim_bind)
     try:
         return fn(*args)
     except Exception:
         if sync:
             msg = ("error caught in request handler '{} {}':\n{}".format(
                 name, args, format_exc_skip(1)))
             raise ErrorResponse(msg)
         else:
             msg = ("error caught in async handler '{} {}'\n{}\n".format(
                 name, args, format_exc_skip(1)))
             self._on_async_err(msg + "\n")