Example #1
0
 def _on_error_event(self, kind, msg):
     # error from nvim due to async request
     # like nvim.command(..., async_=True)
     errmsg = "{}: Async request caused an error:\n{}\n".format(
         self.name, decode_if_bytes(msg))
     self.nvim.err_write(errmsg, async_=True)
     return errmsg
Example #2
0
    def _on_notification(self, name, args):
        """Handle a msgpack-rpc notification."""
        if IS_PYTHON3:
            name = decode_if_bytes(name)
        handler = self._notification_handlers.get(name, None)
        if not handler:
            msg = self._missing_handler_error(name, 'notification')
            error(msg)
            self._on_async_err(msg + "\n")
            return

        debug('calling notification handler for "%s", args: "%s"', name, args)
        handler(*args)
Example #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
Example #4
0
 def _on_specs_request(self, path):
     if IS_PYTHON3:
         path = decode_if_bytes(path)
     if path in self._load_errors:
         self.nvim.out_write(self._load_errors[path] + '\n')
     return self._specs.get(path, 0)