Esempio n. 1
0
    def run(self, edit):
        self.edit = edit
        self.prompt_region = Region(0, self.view.size())
        content = expanduser(self.view.substr(self.prompt_region))
        path, prefix = os.path.split(content) if not isdir(content) else (content, '')
        if not valid(path or content):
            return

        completions = [n for n in os.listdir(path) if n.upper().startswith(prefix.upper()) and isdir(join(path, n))]
        sort_nicely(completions)
        common      = os.path.commonprefix([f.upper() for f in completions])
        new_content = ''

        if not completions:
            return sublime.status_message('No matches')

        if len(completions) == 1:
            new_content = join(path, completions[0]) + os.sep
        elif common and common > prefix:
            new_content = join(path, common)

        if new_content:
            self.fill_prompt(new_content)
        else:
            self.completions = completions
            self.path = path
            self.w = self.view.window() or sublime.active_window()
            return self.w.show_quick_panel(completions, self.on_done)
Esempio n. 2
0
    def worker(self, path):
        self.preview_path = '📁 <a href="dir\v{0}">{0}</a>'.format(path)
        self.subdirs = self.files = self.size = 0
        self.errors = []
        self.open_dirs = []
        self.open_files = []
        self._created, self._accessed, self._modified = get_dates(path)

        def add_err(err): self.errors.append(str(err))

        for index, (root, dirs, files) in enumerate(os.walk(path, onerror=add_err)):
            self.subdirs += len(dirs)
            self.files += len(files)

            if not index:
                sort_nicely(dirs)
                sort_nicely(files)
                self.open_dirs = ['📁 <a href="dir\v%s%s">%s</a>' % (join(root, d), os.sep, d) for d in dirs]
                self.open_files = []

            for f in files:
                fpath = join(root, f)
                if not index:
                    self.open_files.append('≡ <a href="file\v%s">%s</a>' % (fpath, f))
                try:
                    self.size += getsize(fpath)
                except OSError as e:
                    add_err(e)

            if not self.view.is_popup_visible() or self.view.settings().get('dired_stop_preview_thread'):
                return
            sublime.set_timeout_async(self.update_preview(), 1)
        sublime.set_timeout_async(self.update_preview(loading=False), 1)
Esempio n. 3
0
def vid_proto_from_dir(root_dir, vid_name=None):
    vid = {}
    vid['root_path'] = root_dir
    frames = []
    frame_list = [i for i in os.listdir(root_dir) if isimg(i)]
    sort_nicely(frame_list)
    for index, path in enumerate(frame_list):
        frames.append({'frame': index+1,
                       'path': path})
    vid['frames'] = frames
    if not vid_name:
        # infer video namke from root_dir if not provided
        vid_name = stem(root_dir)
    vid['video'] = vid_name
    return vid
Esempio n. 4
0
    def worker(self, path):
        self.preview_path = '📁 <a href="dir\v{0}">{0}</a>'.format(path)
        self.subdirs = self.files = self.size = 0
        self.errors = []
        self.open_dirs = []
        self.open_files = []
        self._created, self._accessed, self._modified = get_dates(path)

        def add_err(err):
            self.errors.append(str(err))

        for index, (root, dirs,
                    files) in enumerate(os.walk(path, onerror=add_err)):
            self.subdirs += len(dirs)
            self.files += len(files)

            if not index:
                sort_nicely(dirs)
                sort_nicely(files)
                self.open_dirs = [
                    '📁 <a href="dir\v%s%s">%s</a>' % (join(root, d), os.sep, d)
                    for d in dirs
                ]
                self.open_files = []

            for f in files:
                fpath = join(root, f)
                if not index:
                    self.open_files.append('≡ <a href="file\v%s">%s</a>' %
                                           (fpath, f))
                try:
                    self.size += getsize(fpath)
                except OSError as e:
                    add_err(e)

            if not self.view.is_popup_visible() or self.view.settings().get(
                    'dired_stop_preview_thread'):
                return
            sublime.set_timeout_async(self.update_preview(), 1)
        sublime.set_timeout_async(self.update_preview(loading=False), 1)