Example #1
0
 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')
Example #2
0
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
Example #3
0
 def create_refactoring_operation(self, project, resource, start, end):
     return ExtractMethod(project, resource, start, end)
Example #4
0
 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)
Example #5
0
 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)