Пример #1
0
class PythonRefactorRename(sublime_plugin.TextCommand):

    def run(self, edit, block=False):
        self.view.run_command("save")
        self.original_loc = self.view.rowcol(self.view.sel()[0].a)
        with ropemate.ropecontext(self.view) as context:
            self.sel = self.view.sel()[0]
            word = self.view.substr(self.view.word(self.sel.b))

            self.rename = Rename(context.project, context.resource, self.sel.b)
            self.view.window().show_input_panel(
                "New name", word, self.new_name_entered, None, None)

    def new_name_entered(self, new_name):
        with ropemate.ropecontext(self.view) as context:
            if new_name is None or new_name == self.rename.old_name:
                return
            changes = self.rename.get_changes(new_name, in_hierarchy=True)
            self.handle = TaskHandle(name="rename_handle")
            self.handle.add_observer(self.refactoring_done)
            context.project.do(changes, task_handle=self.handle)

    def refactoring_done(self):
        percent_done = self.handle.current_jobset().get_percent_done()
        if percent_done == 100:
            self.view.run_command('revert')

            row, col = self.original_loc
            path = self.view.file_name() + ":%i:%i" % (row + 1, col + 1)
            self.view.window().open_file(
                path, sublime.ENCODED_POSITION)
Пример #2
0
 def __init__(self, view, context, changes):
     self.view = view
     self.context = context
     self.changes = changes
     self.handler = TaskHandle(name='organizer_imports_handler')
     self.handler.add_observer(self.finish)
     threading.Thread.__init__(self)
Пример #3
0
class PythonRefactorExtractMethod(sublime_plugin.TextCommand):
    def run(self, edit, block=False):
        self.view.run_command("save")
        self.original_loc = self.view.rowcol(self.view.sel()[0].a)
        with ropemate.ropecontext(self.view) as context:
            self.sel = self.view.sel()[0]
            # word = self.view.substr(self.view.word(self.sel.b))

            self.extract = ExtractMethod(context.project, context.resource,
                                         self.sel.a, self.sel.b)
            self.view.window().show_input_panel("New method name", "",
                                                self.new_name_entered, None,
                                                None)

    def new_name_entered(self, new_name):
        with ropemate.ropecontext(self.view) as context:
            if new_name is None:
                return
            changes = self.extract.get_changes(new_name)
            print changes
            self.handle = TaskHandle(name="extract_handle")
            self.handle.add_observer(self.refactoring_done)
            context.project.do(changes, task_handle=self.handle)

    def refactoring_done(self):
        percent_done = self.handle.current_jobset().get_percent_done()
        if percent_done == 100:
            self.view.run_command('revert')

            row, col = self.original_loc
            path = self.view.file_name() + ":%i:%i" % (row + 1, col + 1)
            self.view.window().open_file(path, sublime.ENCODED_POSITION)
Пример #4
0
 def new_name_entered(self, new_name):
     with ropemate.ropecontext(self.view) as context:
         if new_name is None or new_name == self.rename.old_name:
             return
         changes = self.rename.get_changes(new_name, in_hierarchy=True)
         self.handle = TaskHandle(name="rename_handle")
         self.handle.add_observer(self.refactoring_done)
         context.project.do(changes, task_handle=self.handle)
Пример #5
0
 def input_callback(self, input_str):
     with ropemate.context_for(self.view) as context:
         if input_str is None:
             return
         changes = self.get_changes(input_str)
         self.handle = TaskHandle(name="refactoring_handle")
         self.handle.add_observer(self.refactoring_done)
         context.project.do(changes, task_handle=self.handle)
Пример #6
0
 def new_name_entered(self, new_name):
     with ropemate.ropecontext(self.view) as context:
         if new_name is None:
             return
         changes = self.extract.get_changes(new_name)
         print changes
         self.handle = TaskHandle(name="extract_handle")
         self.handle.add_observer(self.refactoring_done)
         context.project.do(changes, task_handle=self.handle)
Пример #7
0
class ProgressHandler(object):
    """ Handle task progress. """
    def __init__(self, msg):
        self.handle = TaskHandle(name="refactoring_handle")
        self.handle.add_observer(self)
        self.message = msg

    def __call__(self):
        """ Show current progress. """
        percent_done = self.handle.current_jobset().get_percent_done()
        env.message('%s - done %s%%' % (self.message, percent_done))
Пример #8
0
class ProgressHandler(object):

    """ Handle task progress. """

    def __init__(self, msg):
        self.handle = TaskHandle(name="refactoring_handle")
        self.handle.add_observer(self)
        self.message = msg

    def __call__(self):
        """ Show current progress. """
        percent_done = self.handle.current_jobset().get_percent_done()
        env.message('%s - done %s%%' % (self.message, percent_done))
Пример #9
0
class AbstractPythonRefactoring(object):
    '''Some common functionality for the rope refactorings.
    Implement __init__, default_input, get_changes and
    create_refactoring_operation in the subclasses to add a new refactoring.'''
    def __init__(self, message):
        self.message = message

    def run(self, edit, block=False):
        self.view.run_command("save")
        self.original_loc = self.view.rowcol(self.view.sel()[0].a)
        with ropemate.context_for(self.view) as context:
            self.sel = self.view.sel()[0]

            self.refactoring = self.create_refactoring_operation(
                context.project, context.resource, self.sel.a, self.sel.b)
            self.view.window().show_input_panel(
                self.message,
                self.default_input(),
                self.input_callback,
                None,
                None
            )

    def input_callback(self, input_str):
        with ropemate.context_for(self.view) as context:
            if input_str is None:
                return
            changes = self.get_changes(input_str)
            self.handle = TaskHandle(name="refactoring_handle")
            self.handle.add_observer(self.refactoring_done)
            context.project.do(changes, task_handle=self.handle)

    def refactoring_done(self):
        percent_done = self.handle.current_jobset().get_percent_done()
        if percent_done == 100:
            self.view.run_command('revert')

            row, col = self.original_loc
            path = self.view.file_name() + ":%i:%i" % (row + 1, col + 1)
            self.view.window().open_file(path, sublime.ENCODED_POSITION)

    def default_input(self):
        raise NotImplementedError

    def get_changes(self, input_str):
        raise NotImplementedError

    def create_refactoring_operation(self, project, resource, start, end):
        raise NotImplementedError
Пример #10
0
 def __init__(self, view, context, changes):
     self.view = view
     self.context = context
     self.changes = changes
     self.handler = TaskHandle(name='organizer_imports_handler')
     self.handler.add_observer(self.finish)
     threading.Thread.__init__(self)
Пример #11
0
class AbstractPythonRefactoring(object):
    '''Some common functionality for the rope refactorings.
    Implement __init__, default_input, get_changes and
    create_refactoring_operation in the subclasses to add a new refactoring.'''
    def __init__(self, message):
        self.message = message

    def run(self, edit, block=False):
        self.view.run_command("save")
        self.original_loc = self.view.rowcol(self.view.sel()[0].a)
        with ropemate.context_for(self.view) as context:
            self.sel = self.view.sel()[0]

            self.refactoring = self.create_refactoring_operation(
                context.project, context.resource, self.sel.a, self.sel.b)
            self.view.window().show_input_panel(self.message,
                                                self.default_input(),
                                                self.input_callback, None,
                                                None)

    def input_callback(self, input_str):
        with ropemate.context_for(self.view) as context:
            if input_str is None:
                return
            changes = self.get_changes(input_str)
            self.handle = TaskHandle(name="refactoring_handle")
            self.handle.add_observer(self.refactoring_done)
            context.project.do(changes, task_handle=self.handle)

    def refactoring_done(self):
        percent_done = self.handle.current_jobset().get_percent_done()
        if percent_done == 100:
            self.view.run_command('revert')

            row, col = self.original_loc
            path = self.view.file_name() + ":%i:%i" % (row + 1, col + 1)
            self.view.window().open_file(path, sublime.ENCODED_POSITION)

    def default_input(self):
        raise NotImplementedError

    def get_changes(self, input_str):
        raise NotImplementedError

    def create_refactoring_operation(self, project, resource, start, end):
        raise NotImplementedError
Пример #12
0
 def input_callback(self, input_str):
     with ropemate.context_for(self.view) as context:
         if input_str is None:
             return
         changes = self.get_changes(input_str)
         self.handle = TaskHandle(name="refactoring_handle")
         self.handle.add_observer(self.refactoring_done)
         context.project.do(changes, task_handle=self.handle)
Пример #13
0
        class Worker(threading.Thread):
            def __init__(self, view, context, changes):
                self.view = view
                self.context = context
                self.changes = changes
                self.handler = TaskHandle(name='organizer_imports_handler')
                self.handler.add_observer(self.finish)
                threading.Thread.__init__(self)

            def run(self):
                self.context.project.do(self.changes, task_handle=self.handler)

            def finish(self):

                percent_done = self.handler.current_jobset().get_percent_done()
                if percent_done == 100:
                    sublime.set_timeout(self.view.run_command('revert'), 10)
Пример #14
0
 def new_name_entered(self, new_name):
     with ropemate.ropecontext(self.view) as context:
         if new_name is None or new_name == self.rename.old_name:
             return
         changes = self.rename.get_changes(new_name, in_hierarchy=True)
         self.handle = TaskHandle(name="rename_handle")
         self.handle.add_observer(self.refactoring_done)
         context.project.do(changes, task_handle=self.handle)
Пример #15
0
        class Worker(threading.Thread):
            def __init__(self, view, context, changes):
                self.view = view
                self.context = context
                self.changes = changes
                self.handler = TaskHandle(name="organizer_imports_handler")
                self.handler.add_observer(self.finish)
                threading.Thread.__init__(self)

            def run(self):
                self.context.project.do(self.changes, task_handle=self.handler)

            def finish(self):

                percent_done = self.handler.current_jobset().get_percent_done()
                if percent_done == 100:
                    sublime.set_timeout(self.view.run_command("revert"), 10)
Пример #16
0
 def new_name_entered(self, new_name):
     with ropemate.ropecontext(self.view) as context:
         if new_name is None:
             return
         changes = self.extract.get_changes(new_name)
         print changes
         self.handle = TaskHandle(name="extract_handle")
         self.handle.add_observer(self.refactoring_done)
         context.project.do(changes, task_handle=self.handle)
Пример #17
0
 def __init__(self, msg):
     """ Init progress handler. """
     self.handle = TaskHandle(name="refactoring_handle")
     self.handle.add_observer(self)
     self.message = msg
Пример #18
0
 def __init__(self, msg):
     """ Init progress handler. """
     self.handle = TaskHandle(name="refactoring_handle")
     self.handle.add_observer(self)
     self.message = msg
Пример #19
0
 def __init__(self, msg):
     self.handle = TaskHandle(name="refactoring_handle")
     self.handle.add_observer(self)
     self.message = msg
Пример #20
0
 def __init__(self, msg):
     self.handle = TaskHandle(name="refactoring_handle")
     self.handle.add_observer(self)
     self.message = msg