示例#1
0
    def show(self, initial_asking=True):
        self.interface._check_project()
        self.interface._save_buffers(only_current=not self.saveall)
        self._create_refactoring()
        action, result = dialog.show_dialog(
            lisputils.askdata,
            ["perform", "preview", "cancel"],
            self._get_confs(),
            self._get_optionals(),
            initial_asking=initial_asking,
        )
        if action == "cancel":
            lisputils.message("Cancelled!")
            return

        def calculate(handle):
            return self._calculate_changes(result, handle)

        name = "Calculating %s changes" % self.name
        changes = lisputils.runtask(calculate, name=name)
        if action == "perform":
            self._perform(changes)
        if action == "preview":
            if changes is not None:
                diffs = str(changes.get_description())
                lisputils.make_buffer("*rope-preview*", diffs, switch=True, modes=["diff"], window="current")
                if lisputils.yes_or_no("Do the changes? "):
                    self._perform(changes)
                else:
                    lisputils.message("Thrown away!")
                lisputils.hide_buffer("*rope-preview*", delete=False)
            else:
                lisputils.message("No changes!")
示例#2
0
    def _base_findit(self, do_find, optionals, get_kwds):
        self._check_project()
        self._save_buffers()
        resource, offset = self._get_location()

        action, values = dialog.show_dialog(
            lisputils.askdata, ['search', 'cancel'], optionals=optionals)
        if action == 'search':
            kwds = get_kwds(values)
            def calculate(handle):
                resources = refactor._resources(self.project,
                                                values.get('resources'))
                return do_find(self.project, resource, offset,
                               resources=resources, task_handle=handle, **kwds)
            result = lisputils.runtask(calculate, 'Find Occurrences')
            text = []
            for occurrence in result:
                line = '%s : %s' % (occurrence.resource.path, occurrence.offset)
                if occurrence.unsure:
                    line += ' ?'
                text.append(line)
            text = '\n'.join(text) + '\n'
            buffer = lisputils.make_buffer('*rope-occurrences*',
                                           text, switch=True)
            lisp.set_buffer(buffer)
            lisp.local_set_key('\r', lisp.rope_occurrences_goto_occurrence)
            lisp.local_set_key('q', lisp.rope_occurrences_quit)
示例#3
0
    def _base_show_doc(self, prefix, get_doc):
        maxfixes = lisp['ropemacs-codeassist-maxfixes'].value()
        text = self._get_text()
        offset = self._get_offset()
        docs = get_doc(self.project, text, offset,
                       self._get_resource(), maxfixes)

        use_minibuffer = not prefix
        if lisp['ropemacs-separate-doc-buffer'].value():
            use_minibuffer = not use_minibuffer
        if use_minibuffer and docs:
            docs = '\n'.join(docs.split('\n')[:7])
            lisputils.message(docs)
        else:
            fit_lines = lisp["ropemacs-max-doc-buffer-height"].value()
            buffer = lisputils.make_buffer('*rope-pydoc*', docs,
                                           empty_goto=False,
                                           fit_lines=fit_lines)
            lisp.local_set_key('q', lisp.bury_buffer)
        if docs is None:
            lisputils.message('No docs avilable!')