1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
# TODO
## Improvements
* [ ] Cache compression.
* [ ] Program version.
* [ ] Abstract/generalize plugin load logic.
* [ ] `FinderPluginFileNameSearcher.set_path`: check if path exists.
* [ ] `FinderPluginFileXdgOpener.open`: check if file actually exists (and if
it's not a dead symbolic link etc).
* [ ] `FinderMain.set_handlers()`: handle exception when path is neither file
or dir (like a non-existent path).
## UX
* [ ] Keybinds/menu.
* [ ] Refresh list.
* [ ] Change folder.
* [ ] Status bar:
* [ ] Enabled plugins.
## Searcher plugins
* [ ] Files (i.e, files in a folder):
* [x] By file name.
* [ ] By file metadata.
* [ ] By file name and metadata.
* [x] File lines (i.e, lines in a text file, including basic M3U support).
* [ ] CSV, TSV etc (i.e, values in lines in a text file).
* [ ] ODS, XLS etc.
* [ ] Tree-like structures like YAML files (example: Ana(r)chronofiles).
* [ ] RSS, Atom etc.
* [ ] Applications (in current working directory and on `$PATH`).
* [ ] Compressed files (find files and/or lines inside a compressed file).
* [ ] Sessions (like VIM sessions, Firefox profiles, custom session commands etc).
* [ ] BibTeX.
## Fetcher plugins
* [ ] URL.
## Opener plugins
* [ ] Improved heuristics for path detection. Load openers accoordingly.
* [ ] Line corresponds to a file in the filesystem: open it.
* [ ] When opening it, choose the appropriate opener from the available
plugins (either by extension or by detecting it is a plaintext
file) (such as playlist files, a CSV, a folder etc).
* [ ] XDG.
* [ ] Rifle.
* [ ] Ranger (open in folder).
* [ ] Actions (rename etc) with auto git detection.
* [ ] Edit (with git annex unlock support/detection).
* [ ] Finder (open folders and file lists inside finder itself).
* [ ] SQLite databases:
* [ ] Firefox bookmarks (supporting multiple profiles).
## Pager plugins
## Config
* [ ] Boolean:
* [ ] Show/hide hidden files.
* [ ] Show/hide folders.
* [ ] Sorting criteria (reverse sorting).
* [ ] Whether to list folders (and not just files).
* [ ] Follow/unfollow symlinks (but take care to avoid infinite recursion).
* [ ] Editing mode.
* [ ] Prompt string.
* [ ] Case sensitivity.
* [ ] Numeric:
* [ ] Refresh interval.
* [ ] Terminal size polling interval.
* [ ] Autodetection depending on file or dir passed as argument (like
automatically detects a CSV file).
* [ ] Auto-refresh every number of seconds.
* [ ] Filter modes: plain, regexp, fuzzy.
Regexps should basically `text`instead of `re.escape(text)`.
* [ ] Objects:
* [ ] Plugins to load.
* [ ] Files and folders to ignore.
* [ ] Theming.
## Chore
* [ ] Move to a separate repository.
* [ ] Publish to PyPi.
* [ ] Create a Debian package.
|