Exemplo n.º 1
0
    def continue_refreshing(self, edit, path, names, goto=None):
        status = status = u" ­Юїє [?: Help] "
        path_in_project = any(folder == self.path[:-1] for folder in self.view.window().folders())
        status += 'Project root, ' if path_in_project else ''
        show_hidden = self.view.settings().get('dired_show_hidden_files', True)
        status += 'Hidden: On' if show_hidden else 'Hidden: Off'
        self.view.set_status("__FileBrowser__", status)

        if not show_hidden:
            if sublime.platform() == 'windows':
                names = [name for name in names if not (name.startswith('.') or  has_hidden_attribute(join(path, name)))]
            else:
                names = [name for name in names if not name.startswith('.')]
        sort_nicely(names)

        f = []

        # generating dirs list first
        for name in names:
            if isdir(join(path, name)):
                name = u"РќИ " + name + os.sep
                f.append(name)

        # generating files list
        for name in names:
            if not isdir(join(path, name)):
                name = u"РЅА " + name
                f.append(name)

        marked = set(self.get_marked())

        name = jump_names().get(path)
        caption = u"{0} Рєњ {1}".format(name, path) if name else path
        text = [ caption ]
        text.append(len(caption)*(u'Рђћ'))
        if not f or self.show_parent():
            text.append(PARENT_SYM)
        text.extend(f)

        self.view.set_read_only(False)

        self.view.erase(edit, Region(0, self.view.size()))
        self.view.insert(edit, 0, '\n'.join(text))
        self.view.set_syntax_file('Packages/FileBrowser/dired.hidden-tmLanguage')
        self.view.settings().set('dired_count', len(f))

        if marked:
            # Even if we have the same filenames, they may have moved so we have to manually
            # find them again.
            regions = []
            for line in self.view.lines(self.fileregion()):
                filename = self._remove_ui(RE_FILE.match(self.view.substr(line)).group(1))
                if filename in marked:
                    name_region = Region(line.a + 2, line.b) # do not mark UI elements
                    regions.append(name_region)
            self.view.add_regions('marked', regions, 'dired.marked', '', MARK_OPTIONS)
        else:
            self.view.erase_regions('marked')

        self.view.set_read_only(True)

        # Place the cursor.
        if f:
            pt = self.fileregion(with_parent_link=True).a
            if goto:
                if isdir(join(path, goto)) and not goto.endswith(os.sep):
                    goto = u"РќИ " + goto + os.sep
                else:
                    goto = u"РЅА " + goto
                try:
                    line = f.index(goto) + (3 if self.show_parent() else 2)
                    pt = self.view.text_point(line, 2)
                except ValueError:
                    pass

            self.view.sel().clear()
            self.view.sel().add(Region(pt, pt))
            self.view.show_at_center(Region(pt, pt))
        else: # empty folder?
            pt = self.view.text_point(2, 0)
            self.view.sel().clear()
            self.view.sel().add(Region(pt, pt))
Exemplo n.º 2
0
    def continue_refreshing(self, edit, path, names, goto=None):
        status = status = u" ­Юїє [?: Help] "
        path_in_project = any(folder == self.path[:-1]
                              for folder in self.view.window().folders())
        status += 'Project root, ' if path_in_project else ''
        show_hidden = self.view.settings().get('dired_show_hidden_files', True)
        status += 'Hidden: On' if show_hidden else 'Hidden: Off'
        self.view.set_status("__FileBrowser__", status)

        if not show_hidden:
            names = [name for name in names if not self.is_hidden(name)]
        sort_nicely(names)

        f = []

        # generating dirs list first
        for name in names:
            if isdir(join(path, name)):
                name = u"РќИ " + name + os.sep
                f.append(name)

        # generating files list
        for name in names:
            if not isdir(join(path, name)):
                name = u"РЅА " + name
                f.append(name)

        marked = set(self.get_marked())

        name = jump_names().get(path)
        caption = u"{0} Рєњ {1}".format(name, path) if name else path
        text = [caption]
        text.append(len(caption) * (u'Рђћ'))
        if not f or self.show_parent():
            text.append(PARENT_SYM)
        text.extend(f)

        self.view.set_read_only(False)

        self.view.erase(edit, Region(0, self.view.size()))
        self.view.insert(edit, 0, '\n'.join(text))
        self.view.set_syntax_file(
            'Packages/FileBrowser/dired.hidden-tmLanguage')
        self.view.settings().set('dired_count', len(f))

        if marked:
            # Even if we have the same filenames, they may have moved so we have to manually
            # find them again.
            regions = []
            for line in self.view.lines(self.fileregion()):
                filename = self._remove_ui(
                    RE_FILE.match(self.view.substr(line)).group(1))
                if filename in marked:
                    name_region = Region(line.a + 2,
                                         line.b)  # do not mark UI elements
                    regions.append(name_region)
            self.view.add_regions('marked', regions, 'dired.marked', '',
                                  MARK_OPTIONS)
        else:
            self.view.erase_regions('marked')

        self.view.set_read_only(True)

        # Place the cursor.
        if f:
            pt = self.fileregion(with_parent_link=True).a
            if goto:
                if isdir(join(path, goto)) and not goto.endswith(os.sep):
                    goto = u"РќИ " + goto + os.sep
                else:
                    goto = u"РЅА " + goto
                try:
                    line = f.index(goto) + (3 if self.show_parent() else 2)
                    pt = self.view.text_point(line, 2)
                except ValueError:
                    pass

            self.view.sel().clear()
            self.view.sel().add(Region(pt, pt))
            self.view.show_at_center(Region(pt, pt))
        else:  # empty folder?
            pt = self.view.text_point(2, 0)
            self.view.sel().clear()
            self.view.sel().add(Region(pt, pt))
Exemplo n.º 3
0
    def continue_refreshing(self, edit, path, names, goto=None):
        f = []

        # generating dirs list first
        for name in names:
            if isdir(join(path, name)):
                try:
                    name = "РќИ ".decode(ECODING) + name + os.sep
                except:
                    name = "РќИ " + name + os.sep
                f.append(name)

        # generating files list
        for name in names:
            if not isdir(join(path, name)):
                try:
                    name = "РЅА ".decode(ECODING) + name
                except:
                    name = "РЅА " + name
                f.append(name)

        marked = set(self.get_marked())

        name = jump_names().get(path)
        caption = "{0} -> {1}".format(name, path) if name else path
        text = [ caption ]
        try:
            text.append(len(caption)*('Рђћ'.decode(ECODING)))
        except:
            text.append(len(caption)*('Рђћ'))
        if not f or self.show_parent():
            text.append(PARENT_SYM)
        text.extend(f)

        self.view.set_read_only(False)

        self.view.erase(edit, Region(0, self.view.size()))
        self.view.insert(edit, 0, '\n'.join(text))
        self.view.set_syntax_file('Packages/FileBrowser/dired.hidden-tmLanguage')
        self.view.settings().set('dired_count', len(f))

        if marked:
            # Even if we have the same filenames, they may have moved so we have to manually
            # find them again.
            regions = []
            for line in self.view.lines(self.fileregion()):
                filename = self._remove_ui(RE_FILE.match(self.view.substr(line)).group(1))
                if filename in marked:
                    name_region = Region(line.a + 2, line.b) # do not mark UI elements
                    regions.append(name_region)
            self.view.add_regions('marked', regions, 'dired.marked', '', MARK_OPTIONS)
        else:
            self.view.erase_regions('marked')

        self.view.set_read_only(True)

        # Place the cursor.
        if f:
            pt = self.fileregion(with_parent_link=True).a
            if goto:
                if isdir(join(path, goto)) and not goto.endswith(os.sep):
                    try:
                        goto = "РќИ ".decode(ECODING) + goto + os.sep
                    except:
                        goto = "РќИ " + goto + os.sep
                else:
                    try:
                        goto = "РЅА ".decode(ECODING) + goto
                    except:
                        goto = "РЅА " + goto
                try:
                    line = f.index(goto) + (3 if self.show_parent() else 2)
                    pt = self.view.text_point(line, 2)
                except ValueError:
                    pass

            self.view.sel().clear()
            self.view.sel().add(Region(pt, pt))
            self.view.show_at_center(Region(pt, pt))
        else: # empty folder?
            pt = self.view.text_point(2, 0)
            self.view.sel().clear()
            self.view.sel().add(Region(pt, pt))
Exemplo n.º 4
0
    def continue_refreshing(self, edit, path, names, goto=None, indent=''):
        status = u" ­Юїє [?: Help] "
        path_in_project = any(folder == self.path[:-1] for folder in self.view.window().folders())
        status += 'Project root, ' if path_in_project else ''
        show_hidden = self.view.settings().get('dired_show_hidden_files', True)
        status += 'Hidden: On' if show_hidden else 'Hidden: Off'
        self.view.set_status("__FileBrowser__", status)

        if not show_hidden:
            names = [name for name in names if not self.is_hidden(name)]
        sort_nicely(names)

        f = self.ls(path, names, goto=goto if indent else '', indent=indent)

        marked = set(self.get_marked())

        self.view.set_read_only(False)

        if indent:
            line = self.view.line(self.view.sel()[0])
            name_point = self.view.extract_scope(line.b - 1).a
        if indent and f:
            icon_region = Region(name_point - 2, name_point - 1)
            self.view.replace(edit, icon_region, u'РќЙ')
            self.view.insert(edit, line.b, '\n'+'\n'.join(f))
            dired_count = self.view.settings().get('dired_count', 0)
            self.view.settings().set('dired_count', int(dired_count) + len(f))
        elif indent:
            self.view.insert(edit, self.view.line(self.view.sel()[0]).b, '\t<empty>')
        else:
            name = jump_names().get(path)
            caption = u"{0} Рєњ {1}".format(name, path) if name else path
            text = [ caption ]
            text.append(len(caption)*(u'Рђћ'))
            if not f or self.show_parent():
                text.append(PARENT_SYM)
            text.extend(f)

            self.view.erase(edit, Region(0, self.view.size()))
            self.view.insert(edit, 0, '\n'.join(text))
            self.view.settings().set('dired_count', len(f))

        if marked:
            # Even if we have the same filenames, they may have moved so we have to manually
            # find them again.
            regions = []
            for line in self.view.lines(self.fileregion()):
                filename = self._remove_ui(RE_FILE.match(self.view.substr(line)).group(1))
                if filename in marked:
                    name_region = Region(line.a + 2, line.b) # do not mark UI elements
                    regions.append(name_region)
            self.view.add_regions('marked', regions, 'dired.marked', '', MARK_OPTIONS)
        else:
            self.view.erase_regions('marked')

        self.view.set_read_only(True)

        # Place the cursor.
        if f and not indent:
            pt = self.fileregion(with_parent_link=True).a
            if goto:
                if isdir(join(path, goto)) and not goto.endswith(os.sep):
                    goto = u"РќИ " + goto + os.sep
                else:
                    goto = u"РЅА " + goto
                try:
                    line = f.index(goto) + (3 if self.show_parent() else 2)
                    pt = self.view.text_point(line, 2)
                except ValueError:
                    pass

            self.view.sel().clear()
            self.view.sel().add(Region(pt, pt))
            self.view.show_at_center(Region(pt, pt))
        elif not f and not indent: # empty folder?
            pt = self.view.text_point(2, 0)
            self.view.sel().clear()
            self.view.sel().add(Region(pt, pt))
        else:
            self.view.sel().clear()
            self.view.sel().add(Region(name_point, name_point))
            self.view.show_at_center(name_point)