def onRefactor(self): renamed = ExtractMethod(self.project, self.resource, self._startOffset, self._endOffset) changes = renamed.get_changes(self._newName, self._similar, self._global) for item in changes.changes: if isinstance(item, rope.base.change.ChangeContents): self.changes.append( Change(item.resource.real_path, ChangeType.EDIT, get_diff(item))) else: raise Exception('Unknown Change')
def extract_method(): with ropemate.context as context: try: offset_length = len(os.environ.get('TM_SELECTED_TEXT', '')) if offset_length == 0: tooltip("You have to selected some code to extract it as a method") return context.input offset = caret_position(context.input)-offset_length extractor = ExtractMethod(context.project, context.resource, offset, offset+offset_length) func_name = get_input("Extracted method's name") if func_name is None: tooltip("Enter a name for the extraced function!") return context.input changes = extractor.get_changes(func_name) result = changes.changes[0].new_contents except Exception, e: tooltip(e) return context.input return result
def create_refactoring_operation(self, project, resource, start, end): return ExtractMethod(project, resource, start, end)
def extract_method(self, project_path, file_path, start, end, source, new_name): project, resource = self._get_resource(project_path, file_path, source) rename = ExtractMethod(project, resource, start, end) changes = rename.get_changes(new_name) project.do(changes)
def refactor_extract_method(self, start, end, name, make_global): """Extract region as a method.""" refactor = ExtractMethod(self.project, self.resource, start, end) changes = refactor.get_changes(name, similar=True, global_=make_global) return translate_changes(changes)