Beispiel #1
0
    def command(self, data, handlers, url):
        acid_session = self.nvim.vars.get('acid_current_session')

        if get_customization_variable(self.nvim, 'acid_log_messages', 0):
            handlers = (i
                        for i in (*handlers, self.get_handler('Log').configure(
                            **self.context())))

        if not 'op' in data:
            data.update({'op': 'eval'})

        if acid_session:
            data.update({'session': acid_session})

        if url not in self.sessions.sessions and url not in self.fired_urls:
            self.nvim.command("doautocmd User AcidPreConnectNrepl")
            self.fired_urls.add(url)

        send(self.sessions, url, handlers, data)
Beispiel #2
0
    def call(cls, acid, context, *args):
        inst = cls.__instances__[cls.name]

        payload = inst.prepare_payload(*args)

        if payload is None:
            return

        if not 'op' in payload:
            payload.update({'op': cls.op})

        handlers_var = "{}_command_handler".format(convert_case(inst.cmd_name))

        custom = get_customization_variable(acid.nvim, handlers_var,
                                            inst.handlers)

        handlers = (inst.start_handler(context, context['handlers'].get(h),
                                       *args) for h, *args in items(custom))

        acid.command(payload, handlers)