aboutsummaryrefslogtreecommitdiff
path: root/TODO.md
blob: 04a0456ab57e95edbd5ea6514f20f646089d2dfc (plain)
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
# 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

* [ ] 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).

## Pager plugins

## Config

* [ ] Boolean:
    * [ ] Show/hide hidden files.
    * [ ] Show/hide folders.
    * [ ] Search processing regexps or not (`text` or `re.escape(text)`).
    * [ ] 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.
* [ ] Objects:
    * [ ] Plugins to load.
    * [ ] Files and folders to ignore.
    * [ ] Theming.

## Chore

* [ ] Move to a separate repository.
* [ ] Publish to PyPi.
* [ ] Create a Debian package.