コード例 #1
0
ファイル: state.py プロジェクト: fenduru/Vintageous
    def _run_parser_via_panel(self):
        """
        Returns `True` if the current parser needs to be run via a panel.

        If needed, it runs the input-panel-based parser.
        """
        if not self.input_parsers:
            return False
        parser_def = inputs.get(self, self.input_parsers[-1])
        if parser_def.type == input_types.VIA_PANEL:
            # Let the input-collection command collect input.
            sublime.active_window().run_command(parser_def.command)
            return True
        return False
コード例 #2
0
    def _run_parser_via_panel(self):
        """
        Returns `True` if the current parser needs to be run via a panel.

        If needed, it runs the input-panel-based parser.
        """
        if not self.input_parsers:
            return False
        parser_def = inputs.get(self, self.input_parsers[-1])
        if parser_def.type == input_types.VIA_PANEL:
            # Let the input-collection command collect input.
            sublime.active_window().run_command(parser_def.command)
            return True
        return False
コード例 #3
0
    def process_user_input(self, key):
        """
        Returns `True` if the current input parser is satistied by @key.
        """
        if not self.input_parsers:
            return

        _logger().info('[State] active input parsers: {0}'.format(
            self.input_parsers))

        parser_def = inputs.get(self, self.input_parsers[-1])
        # TODO: use translate_key?
        # XXX: Why can't we use the same logic as below?
        if key.lower() == '<cr>':
            _logger().info('[State] <cr> pressed, removing 1 parser')
            self.pop_parser()

            if parser_def.on_done:
                _logger().info('[State] running post parser: {0}'.format(
                    parser_def.on_done))
                self.view.window().run_command(parser_def.on_done,
                                               {'key': key})

            return True

        self.user_input += key

        if (self.input_parsers and callable(parser_def.command)
                and parser_def.command(key)):
            _logger().info('[State] parser satisfied, removing one parser')
            self.pop_parser()

            if parser_def.on_done:
                _logger().info('[State] running post parser: {0}'.format(
                    parser_def.on_done))
                self.view.window().run_command(parser_def.on_done,
                                               {'key': key})

            return True

        else:
            _logger().info('[State] more input expected by parser')
            # we need to keep collecting input
            return True
コード例 #4
0
ファイル: state.py プロジェクト: fenduru/Vintageous
    def process_user_input(self, key):
        """
        Returns `True` if the current input parser is satistied by @key.
        """
        if not self.input_parsers:
            return

        _logger().info('[State] active input parsers: {0}'.format(self.input_parsers))

        parser_def = inputs.get(self, self.input_parsers[-1])
        # TODO: use translate_key?
        # XXX: Why can't we use the same logic as below?
        if key.lower() == '<cr>':
            _logger().info('[State] <cr> pressed, removing 1 parser')
            self.pop_parser()

            if parser_def.on_done:
                _logger().info('[State] running post parser: {0}'
                                                .format(parser_def.on_done))
                self.view.window().run_command(parser_def.on_done, {'key': key})

            return True

        self.user_input += key

        if (self.input_parsers and callable(parser_def.command)
                               and parser_def.command(key)):
            _logger().info('[State] parser satisfied, removing one parser')
            self.pop_parser()

            if parser_def.on_done:
                _logger().info('[State] running post parser: {0}'
                                                .format(parser_def.on_done))
                self.view.window().run_command(parser_def.on_done, {'key': key})

            return True

        else:
            _logger().info('[State] more input expected by parser')
            # we need to keep collecting input
            return True