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!")
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)
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!')