diff options
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..a402229 --- /dev/null +++ b/README.md @@ -0,0 +1,106 @@ +# rafta.nvim + +A rafta task client for your favourite editor + +## Concept & Ideas + +### Design + +I love how [oil.nvim] works. The way you edit files feels very vim-like. My +goal is to achieve something very similar with tasks taken from rafta instead +of files. Here's my idea of how it should look (minus the pretty colors): + +``` + An unkpecified task 4 + An very long task about very important ongoing stuff 2 + An incomplete task 1 + Another incomplete task 10 + Guess what, this task ain't done + An incomplete task again 2 + A completed task + A blocked task, bummer + + + + +*** You are offlline, will update next timee rafta.nvim is opened online *** +``` + +- **Status Column**: + - Undefined + - Ongoing + - Pending/Todo + - Done + - Blocked +- **Tags Column** (how many labels are attached to a given tag): + - 1+ tags + - 0 tags +- **Other columns**: + - Recurrence is enabled for that task + - A Planned/Scheduled date is set for that task + - A Deadline exists for that task + - The task has a description (markdown file) +- **Color defines priority** + - 0 (undefined): `#f2f1f0` + - 1 (Highest): `#D84141` + - 2 (Very High): `#D75D47` + - 3 (High): `#DCA056` + - 4 (Medium): `#52C782` + - 5 (Low): `#52A2C7` + - 6 (Lowest): `#665FC4` + +To help the user know if the current task has schedules, deadlines, etc... The +current line should be highlighted differently (since the columns are accross +the screen). + +### Usage + +I don't want to force commands onto users, so I'll provide lua function which +they can configure how they please: + +**Opening the rafta client** (could be used to LazyLoad): +- `open` +- `open_tab` +- `open_split` +- `open_vsplit` + +**Managing Tasks**: +- `set_priority()` +- `sort(pattern string)` I have yet to figure out a spec for this +- `filter(pattern string)` I have yet to figure out a spec for this +- `set_labels()` (edit each label on a separate row in a floating window) +- `set_schedule()` (nvim input window[^1]) +- `set_deadline()` (nvim input window[^1]) +- `set_scheduled()` (nvim input window) +- `view_description()` opens a `.md` file in a new buffer (default: Enter key) +- `toggle_view_deadlines(show boolean)` (nil arg is a true toggle) +- `toggle_view_schedules(show boolean)` +- `toggle_view_priority(show boolean)` Shows priority number (default: hidden) + +- Tasks titles are just edited via insert mode +- Saving the buffer uploads changed tasks (Same goes for descriptions) +- If when coming back online, there is a conflict, a vimdiff could be opened + where each version is represented in a toml-like file (easier to diff for + humans than json). Sections which have no content are ommited (but all + sections alway have the same order for easy diffs) + +``` +[Title] +This is the task title + +[Scheduled] +2015-08-21,19:20 + +[Tags] + +Work +ThatOneProject +TeamBuilding + +[Description] + +# Just append the markdown file here... +``` + + +[^1]: Maybe also offer a datetimepicker floating window also? |