Example #1
0
def discover(directory):
    directory = os.path.expanduser(directory) # The tilde does not work with os.chdir
    os.chdir(directory)
    
    # Discovering tests using unittest framework
    loader = TestLoader()
    tests = loader.discover(directory, top_level_dir=directory)
    result = EmacsTestResult()
    
    # Create a buffer (if it not exists) and put the formatted results
    # inside it
    let = Let()
    lisp.get_buffer_create("unittest")
    let.push_excursion()
    lisp.set_buffer("unittest")
    lisp.erase_buffer()
    tests.run(result)
    lisp.insert("\n")
    lisp.insert("Errors:\n")
    for test, traceback in result.errors:
        lisp.insert(str(test))
        lisp.insert(traceback)
    let.pop_excursion()
    
    lisp.pop_to_buffer("unittest")
    lisp.compilation_mode()
    lisp.beginning_of_buffer()
Example #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)
Example #3
0
def discover(directory):
    directory = os.path.expanduser(
        directory)  # The tilde does not work with os.chdir
    os.chdir(directory)

    # Discovering tests using unittest framework
    loader = TestLoader()
    tests = loader.discover(directory, top_level_dir=directory)
    result = EmacsTestResult()

    # Create a buffer (if it not exists) and put the formatted results
    # inside it
    let = Let()
    lisp.get_buffer_create("unittest")
    let.push_excursion()
    lisp.set_buffer("unittest")
    lisp.erase_buffer()
    tests.run(result)
    lisp.insert("\n")
    lisp.insert("Errors:\n")
    for test, traceback in result.errors:
        lisp.insert(str(test))
        lisp.insert(traceback)
    let.pop_excursion()

    lisp.pop_to_buffer("unittest")
    lisp.compilation_mode()
    lisp.beginning_of_buffer()
Example #4
0
    def _make_buffer(self,
                     name,
                     contents,
                     empty_goto=True,
                     switch=False,
                     window='other',
                     modes=[],
                     fit_lines=None):
        """Make an emacs buffer

        `window` can be one of `None`, 'current' or 'other'.
        """
        new_buffer = lisp.get_buffer_create(name)
        lisp.set_buffer(new_buffer)
        lisp.toggle_read_only(-1)
        lisp.erase_buffer()
        if contents or empty_goto:
            lisp.insert(contents)
            for mode in modes:
                lisp[mode + '-mode']()
            lisp.buffer_disable_undo(new_buffer)
            lisp.toggle_read_only(1)
            if switch:
                if window == 'current':
                    lisp.switch_to_buffer(new_buffer)
                else:
                    lisp.switch_to_buffer_other_window(new_buffer)
                lisp.goto_char(lisp.point_min())
            elif window == 'other':
                new_window = lisp.display_buffer(new_buffer)
                lisp.set_window_point(new_window, lisp.point_min())
                if fit_lines and lisp.fboundp(lisp['fit-window-to-buffer']):
                    lisp.fit_window_to_buffer(new_window, fit_lines)
                    lisp.bury_buffer(new_buffer)
        return new_buffer
Example #5
0
def new_from_buffer(buffer, language):
    """Pastes the contents of buffer"""
    lisp.set_buffer(buffer)
    code = unicode(lisp.buffer_string())
    #code = lisp.buffer_substring(lisp.point_min(), lisp.point_max())
    filename = lisp.buffer_file_name()
    new_paste(code, language, filename=filename)
Example #6
0
def new_from_buffer(buffer, language):
    """Pastes the contents of buffer"""
    lisp.set_buffer(buffer)
    code = unicode(lisp.buffer_string())
    #code = lisp.buffer_substring(lisp.point_min(), lisp.point_max())
    filename = lisp.buffer_file_name()
    new_paste(code, language, filename=filename)
Example #7
0
    def _make_buffer(self, name, contents, empty_goto=True, switch=False,
                     window='other', modes=[], fit_lines=None):
        """Make an emacs buffer

        `window` can be one of `None`, 'current' or 'other'.
        """
        new_buffer = lisp.get_buffer_create(name)
        lisp.set_buffer(new_buffer)
        lisp.toggle_read_only(-1)
        lisp.erase_buffer()
        if contents or empty_goto:
            lisp.insert(contents)
            for mode in modes:
                lisp[mode + '-mode']()
            lisp.buffer_disable_undo(new_buffer)
            lisp.toggle_read_only(1)
            if switch:
                if window == 'current':
                    lisp.switch_to_buffer(new_buffer)
                else:
                    lisp.switch_to_buffer_other_window(new_buffer)
                lisp.goto_char(lisp.point_min())
            elif window == 'other':
                new_window = lisp.display_buffer(new_buffer)
                lisp.set_window_point(new_window, lisp.point_min())
                if fit_lines and lisp.fboundp(lisp['fit-window-to-buffer']):
                    lisp.fit_window_to_buffer(new_window, fit_lines)
                    lisp.bury_buffer(new_buffer)
        return new_buffer
Example #8
0
    def show_occurrences(self, locations):
        buffer = self._make_buffer('*rope-occurrences*', "", switch=False)
        lisp.set_buffer(buffer)
        lisp.toggle_read_only(0)

        trunc_length = len(lisp.rope_get_project_root())

        lisp.insert('List of occurrences:\n')
        for location in locations:
            code_line = self.read_line_from_file(location.filename, location.lineno).rstrip()
            filename = location.filename[trunc_length:]
            lineno = str(location.lineno)
            offset = str(location.offset)

            lisp.insert(filename + ":" + lineno + ":" + code_line + " " + offset)

            beginning = lisp.line_beginning_position()
            end = beginning + len(filename)

            lisp.add_text_properties(beginning, end, [lisp.face, lisp.button])
            lisp.add_text_properties(beginning, end, [lisp.mouse_face, lisp.highlight,
                                                      lisp.help_echo, "mouse-2: visit this file in other window"])

            lisp.insert("\n")

        lisp.toggle_read_only(1)

        lisp.set(lisp["next-error-function"], lisp.rope_occurrences_next)
        lisp.local_set_key('\r', lisp.rope_occurrences_goto)
        lisp.local_set_key((lisp.mouse_1,), lisp.rope_occurrences_goto)
        lisp.local_set_key('q', lisp.delete_window)
Example #9
0
def _revertSavedFiles(savedFiles):
    global currently_saving
    currently_saving = 1
    for file in savedFiles:
        buf = lisp.find_buffer_visiting(file)
        if buf:
            lisp.set_buffer(buf)
            lisp.revert_buffer(None,1)
    currently_saving = 0
Example #10
0
def _revertSavedFiles(savedFiles):
    global currently_saving
    currently_saving = 1
    for file in savedFiles:
        buf = lisp.find_buffer_visiting(file)
        if buf:
            lisp.set_buffer(buf)
            lisp.revert_buffer(None, 1)
    currently_saving = 0
Example #11
0
 def pop_excursion(self):
     method, (buffer, point_marker, mark_marker) = self.stack[-1]
     assert method == 'excursion', self.stack[-1]
     del self.stack[-1]
     lisp.set_buffer(buffer)
     lisp.goto_char(point_marker)
     lisp.set_mark(mark_marker)
     lisp.set_marker(point_marker, None)
     if mark_marker is not None:   # needed for xemacs
         lisp.set_marker(mark_marker, None)
Example #12
0
 def pop_excursion(self):
     method, (buffer, point_marker, mark_marker) = self.stack[-1]
     assert method == 'excursion', self.stack[-1]
     del self.stack[-1]
     lisp.set_buffer(buffer)
     lisp.goto_char(point_marker)
     lisp.set_mark(mark_marker)
     lisp.set_marker(point_marker, None)
     if mark_marker is not None:  # needed for xemacs
         lisp.set_marker(mark_marker, None)
Example #13
0
def insert_in_other_buffer(bufname, text):
     """Creates/erases a buffer with the given name, opens it in a
     separate visible  pane, and pastes the given text into it."""
     
     lisp.get_buffer_create(bufname)
     lisp.display_buffer(bufname, 1)
     old_buf = lisp.current_buffer()
     lisp.set_buffer(bufname)
     lisp.erase_buffer()
     lisp.insert(text)
     lisp.set_buffer(old_buf)
Example #14
0
def insert_in_other_buffer(bufname, text):
    """Creates/erases a buffer with the given name, opens it in a
     separate visible  pane, and pastes the given text into it."""

    lisp.get_buffer_create(bufname)
    lisp.display_buffer(bufname, 1)
    old_buf = lisp.current_buffer()
    lisp.set_buffer(bufname)
    lisp.erase_buffer()
    lisp.insert(text)
    lisp.set_buffer(old_buf)
Example #15
0
 def save_files(self, filenames):
     ask = self.get('confirm_saving')
     initial = lisp.current_buffer()
     for filename in filenames:
         buffer = lisp.find_buffer_visiting(filename)
         if buffer:
             if lisp.buffer_modified_p(buffer):
                 if not ask or lisp.y_or_n_p('Save %s buffer?' % filename):
                     lisp.set_buffer(buffer)
                     lisp.save_buffer()
     lisp.set_buffer(initial)
Example #16
0
 def show_occurrences(self, locations):
     text = []
     for location in locations:
         line = '%s : %s   %s %s' % (location.filename, location.lineno,
                                     location.note, location.offset)
         text.append(line)
     text = '\n'.join(text) + '\n'
     buffer = self._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.delete_window)
Example #17
0
 def save_files(self, filenames):
     ask = self.get('confirm_saving')
     initial = lisp.current_buffer()
     for filename in filenames:
         buffer = lisp.find_buffer_visiting(filename)
         if buffer:
             if lisp.buffer_modified_p(buffer):
                 if not ask or lisp.y_or_n_p('Save %s buffer?' % filename):
                     lisp.set_buffer(buffer)
                     lisp.save_buffer()
     lisp.set_buffer(initial)
Example #18
0
 def show_occurrences(self, locations):
     text = ['List of occurrences:', '']
     for location in locations:
         line = '%s : %s   %s %s' % (location.filename, location.lineno,
                                     location.note, location.offset)
         text.append(line)
     text = '\n'.join(text) + '\n'
     buffer = self._make_buffer('*rope-occurrences*', text, switch=False)
     lisp.set_buffer(buffer)
     lisp.toggle_read_only(1)
     lisp.set(lisp["next-error-function"], lisp.rope_occurrences_next)
     lisp.local_set_key('\r', lisp.rope_occurrences_goto)
     lisp.local_set_key('q', lisp.delete_window)
Example #19
0
 def show_occurrences(self, locations):
     text = ['List of occurrences:', '']
     for location in locations:
         line = '%s : %s   %s %s' % (location.filename, location.lineno,
                                     location.note, location.offset)
         text.append(line)
     text = '\n'.join(text) + '\n'
     buffer = self._make_buffer('*rope-occurrences*', text, switch=False)
     lisp.set_buffer(buffer)
     lisp.toggle_read_only(1)
     lisp.set(lisp["next-error-function"], lisp.rope_occurrences_next)
     lisp.local_set_key('\r', lisp.rope_occurrences_goto)
     lisp.local_set_key('q', lisp.delete_window)
Example #20
0
 def reload_files(self, filenames, moves={}):
     if self.filename() in moves:
         initial = None
     else:
         initial = lisp.current_buffer()
     for filename in filenames:
         buffer = lisp.find_buffer_visiting(filename)
         if buffer:
             if filename in moves:
                 lisp.kill_buffer(buffer)
                 lisp.find_file(moves[filename])
             else:
                 lisp.set_buffer(buffer)
                 lisp.revert_buffer(False, True)
     if initial is not None:
         lisp.set_buffer(initial)
Example #21
0
 def reload_files(self, filenames, moves={}):
     if self.filename() in moves:
         initial = None
     else:
         initial = lisp.current_buffer()
     for filename in filenames:
         buffer = lisp.find_buffer_visiting(filename)
         if buffer:
             if filename in moves:
                 lisp.kill_buffer(buffer)
                 lisp.find_file(moves[filename])
             else:
                 lisp.set_buffer(buffer)
                 lisp.revert_buffer(False, True)
     if initial is not None:
         lisp.set_buffer(initial)
Example #22
0
 def _save_buffers(self, only_current=False):
     ask = lisp['ropemacs-confirm-saving'].value()
     initial = lisp.current_buffer()
     current_buffer = lisp.current_buffer()
     if only_current:
         buffers = [current_buffer]
     else:
         buffers = lisp.buffer_list()
     for buffer in buffers:
         filename = lisp.buffer_file_name(buffer)
         if filename:
             if self._is_python_file(filename) and \
                lisp.buffer_modified_p(buffer):
                 if not ask or lisp.y_or_n_p('Save %s buffer?' % filename):
                     lisp.set_buffer(buffer)
                     lisp.save_buffer()
     lisp.set_buffer(initial)
Example #23
0
 def _reload_buffers_for_changes(self, changed_resources,
                                 moved_resources={}):
     if self._get_resource() in moved_resources:
         initial = None
     else:
         initial = lisp.current_buffer()
     for resource in changed_resources:
         buffer = lisp.find_buffer_visiting(str(resource.real_path))
         if buffer:
             if resource.exists():
                 lisp.set_buffer(buffer)
                 lisp.revert_buffer(False, True)
             elif resource in moved_resources:
                 new_resource = moved_resources[resource]
                 lisp.kill_buffer(buffer)
                 lisp.find_file(new_resource.real_path)
     if initial is not None:
         lisp.set_buffer(initial)
Example #24
0
    def pop_mark(self):
        marker_ring = self.get('marker_ring')
        if lisp.ring_empty_p(marker_ring):
            self.message("There are no more marked buffers in \
the rope-marker-ring")
        else:
            oldbuf = lisp.current_buffer()
            marker = lisp.ring_remove(marker_ring, 0)
            marker_buffer = lisp.marker_buffer(marker)
            if marker_buffer is None:
                lisp.message("The marked buffer has been deleted")
                return
            marker_point  = lisp.marker_position(marker)
            lisp.set_buffer(marker_buffer)
            lisp.goto_char(marker_point)
            #Kill that marker so it doesn't slow down editing.
            lisp.set_marker(marker, None, None)
            if not lisp.eq(oldbuf, marker_buffer):
                lisp.switch_to_buffer(marker_buffer)
Example #25
0
    def pop_mark(self):
        marker_ring = self.get('marker_ring')
        if lisp.ring_empty_p(marker_ring):
            self.message("There are no more marked buffers in \
the rope-marker-ring")
        else:
            oldbuf = lisp.current_buffer()
            marker = lisp.ring_remove(marker_ring, 0)
            marker_buffer = lisp.marker_buffer(marker)
            if marker_buffer is None:
                lisp.message("The marked buffer has been deleted")
                return
            marker_point  = lisp.marker_position(marker)
            lisp.set_buffer(marker_buffer)
            lisp.goto_char(marker_point)
            #Kill that marker so it doesn't slow down editing.
            lisp.set_marker(marker, None, None)
            if not lisp.eq(oldbuf, marker_buffer):
                lisp.switch_to_buffer(marker_buffer)
Example #26
0
 def t():
     lisp.message(msg)
     lisp.set_buffer("*LogBuffer*")
     lisp.goto_line(lisp.point_max())
     lisp.insert(msg + "\n")
Example #27
0
    line = utils.cursor_line_number()

    # The +1 is because we prefer to have the result of an assignation when the cursor is on it, not one line later.
    var_info = jarvis.commands.external_inspect_vars(filename, line + 1)

    var_info = utils.inspect_format(var_info)

    found = False
    for window in lisp.window_list():
        buffer = lisp.window_buffer(window)
        if lisp.buffer_name(buffer) == BUFFER_NAME:
            found = True


    buffer = lisp.get_buffer_create(BUFFER_NAME)
    lisp.set_buffer(buffer)
    lisp.erase_buffer()
    lisp.insert(str(var_info))

    if not found:
        lisp.split_window_vertically(-10)
        lisp.other_window(1)
        lisp.switch_to_buffer(buffer)
        lisp.goto_line(1)
        lisp.other_window(1)

#    if not timer_installed:

    timer_installed = utils.get_command_global_var(VAR_KEY, False)
    if not timer_installed:
        utils.set_command_global_var(VAR_KEY, True)
Example #28
0
    # Sample code : break on whitespace
    line = utils.cursor_line_number()

    # The +1 is because we prefer to have the result of an assignation when the cursor is on it, not one line later.
    var_info = jarvis.commands.external_inspect_vars(filename, line + 1)

    var_info = utils.inspect_format(var_info)

    found = False
    for window in lisp.window_list():
        buffer = lisp.window_buffer(window)
        if lisp.buffer_name(buffer) == BUFFER_NAME:
            found = True

    buffer = lisp.get_buffer_create(BUFFER_NAME)
    lisp.set_buffer(buffer)
    lisp.erase_buffer()
    lisp.insert(str(var_info))

    if not found:
        lisp.split_window_vertically(-10)
        lisp.other_window(1)
        lisp.switch_to_buffer(buffer)
        lisp.goto_line(1)
        lisp.other_window(1)

#    if not timer_installed:

    timer_installed = utils.get_command_global_var(VAR_KEY, False)
    if not timer_installed:
        utils.set_command_global_var(VAR_KEY, True)
Example #29
0
 def t():
     lisp.message(msg)
     lisp.set_buffer("*LogBuffer*")
     lisp.goto_line(lisp.point_max())
     lisp.insert(msg+"\n")