Split TODO into sections

This commit is contained in:
contrapunctus 2019-08-13 15:30:23 +05:30
parent dcf6927335
commit 865631b1fe
1 changed files with 17 additions and 14 deletions

View File

@ -2,23 +2,26 @@
2. -report - highlight the current day
* Chronometrist
1. don't suggest nil when asking for first project on first run
2. use variables instead of hardcoded numbers to determine spacing
3. refactor repetitive calls to (format "%04d-%02d-%02d" (elt seq a) (elt seq b) (elt seq c))
4. when starting a project with time of "-" (i.e. not worked on today until now), immediately set time to 0 instead of waiting for the first timer refresh
5. Mouse commands should work only on buttons.
6. Button actions should accept prefix arguments and behave exactly like their keyboard counterparts.
7. mouse-3 should clock-out without asking for reason.
8. Some way to ask for the reason just before starting a project. Even when clocking out, the reason is asked _before_ clocking out,which adds time to the project.
9. Timeclock already _has_ hooks! :| Why do we re-implement them?
- I don't know of a way to know the project being clocked into using timeclock hooks.
- With v0.2.0 Chronometrist also has a before-project-stop-functions, which runs before the project is stopped, and can control whether the project actually is stopped.
10. Optimization. ~chronometrist-refresh~ is expensive in CPU, and ~chronometrist-timer~ runs it every 3 seconds by default. :\
** UX
1. don't suggest nil when asking for first project on first run
2. when starting a project with time of "-" (i.e. not worked on today until now), immediately set time to 0 instead of waiting for the first timer refresh
3. Mouse commands should work only on buttons.
4. Button actions should accept prefix arguments and behave exactly like their keyboard counterparts.
5. mouse-3 should clock-out without asking for reason.
6. Some way to ask for the reason just before starting a project. Even when clocking out, the reason is asked _before_ clocking out,which adds time to the project.
** Code
1. use variables instead of hardcoded numbers to determine spacing
2. refactor repetitive calls to (format "%04d-%02d-%02d" (elt seq a) (elt seq b) (elt seq c))
3. Timeclock already _has_ hooks! :| Why do we re-implement them?
- I don't know of a way to know the project being clocked into using timeclock hooks.
- With v0.2.0 Chronometrist also has a before-project-stop-functions, which runs before the project is stopped, and can control whether the project actually is stopped.
4. Optimization. ~chronometrist-refresh~ is expensive in CPU, and ~chronometrist-timer~ runs it every 3 seconds by default. :\
Ideas -
* Support multiple files, so we read and process lesser data when one of them changes.
* Make file writing async
* Don't refresh from file when clocking in.
* Only write to the file when Emacs is idle or being killed, and store data in memory (in the events hash table) in the meantime
11. Use buttercup instead of ert
12. See if it is possible to store buttons in a variable, so *-print-non-tabular functions can be made shorter and less imperative. (see ~make-text-button~)
5. Use buttercup instead of ert
6. See if it is possible to store buttons in a variable, so *-print-non-tabular functions can be made shorter and less imperative. (see ~make-text-button~)
7. Merge all event-querying functions so that they always operate on an entire hash table (so no 'day' variants),