Update custom IDs

This commit is contained in:
contrapunctus 2022-05-03 10:44:59 +05:30
parent 339d5da1e7
commit be32efd73b
1 changed files with 21 additions and 21 deletions

View File

@ -95,7 +95,7 @@ One of the earliest 'optimizations' of great importance turned out to simply be
*** Preserve hash table state for some commands
:PROPERTIES:
:CUSTOM_ID: preserve-hash-table-state-for-some-commands
:CUSTOM_ID: preserve-hash-table-state-some-commands
:END:
NOTE - this has been replaced with a more general optimization - see next section.
@ -153,14 +153,14 @@ There are a few different approaches of dealing with them. (Currently, Chronomet
*** Check the code of the first event of the day (timeclock format)
:PROPERTIES:
:DESCRIPTION: When the code of the first event in the day is "o", it's a midnight-spanning event.
:CUSTOM_ID: check-the-code-of-the-first-event-of-the-day-(timeclock-format)
:CUSTOM_ID: check-code-of-first-event-of-day
:END:
+ Advantage - very simple to detect
+ Disadvantage - "in" and "out" events must be represented separately
*** Split them at the file level
:PROPERTIES:
:CUSTOM_ID: split-them-at-the-file-level
:CUSTOM_ID: split-in-file
:END:
+ Advantage - operation is performed only once for each such event + simpler data-consuming code + reduced post-parsing load.
+ What happens when the user changes their day-start-time? The split-up events are now split wrongly, and the second event may get split /again./
@ -176,14 +176,14 @@ This strategy is implemented in the [[#program-backend-plist-group][plist-group]
*** Split them at the hash-table-level
:PROPERTIES:
:CUSTOM_ID: split-them-at-the-hash-table-level
:CUSTOM_ID: split-in-hash-table
:END:
Handled by ~sexp-events-populate~
+ Advantage - simpler data-consuming code.
*** Split them at the data-consumer level (e.g. when calculating time for one day/getting events for one day)
:PROPERTIES:
:CUSTOM_ID: split-them-at-the-data-consumer-level-(e.g.-when-calculating-time-for-one-day-getting-events-for-one-day)
:CUSTOM_ID: split-at-data-consumer-level
:END:
+ Advantage - reduced repetitive post-parsing load.
@ -380,7 +380,7 @@ There are many operations which are file-oriented, whereas I have tried to treat
** generic loop interface for iterating over records
:PROPERTIES:
:CUSTOM_ID: generic-loop-interface-for-iterating-over-records
:CUSTOM_ID: generic-loop-interface-iterating-over-records
:END:
Of all the ways to work with Chronometrist data, both as part of the program and as part of my occasional "queries", my favorite was to use =cl-loop=.
@ -403,7 +403,7 @@ The macro still exists in its non-generic form as =loop-sexp-file=, providing a
* How-to guides for maintainers
:PROPERTIES:
:CUSTOM_ID: how-to-guides-for-maintainers
:CUSTOM_ID: how-to-guides-maintainers
:END:
** How to set up Emacs to contribute
:PROPERTIES:
@ -474,7 +474,7 @@ Use =org-babel= (=org-babel-tangle= / =org-babel-tangle-file=), /not/ =literate-
* The Program
:PROPERTIES:
:CUSTOM_ID: the-program
:CUSTOM_ID: program
:END:
** chronometrist :package:
:PROPERTIES:
@ -546,7 +546,7 @@ Use =org-babel= (=org-babel-tangle= / =org-babel-tangle-file=), /not/ =literate-
*** *user-configuration-file* :custom:variable:
:PROPERTIES:
:CUSTOM_ID: *user-configuration-file*
:CUSTOM_ID: user-configuration-file
:END:
#+BEGIN_SRC lisp
(defvar *user-configuration-file*
@ -555,7 +555,7 @@ Use =org-babel= (=org-babel-tangle= / =org-babel-tangle-file=), /not/ =literate-
*** *user-data-file* :custom:variable:
:PROPERTIES:
:CUSTOM_ID: *user-data-file*
:CUSTOM_ID: user-data-file
:END:
#+BEGIN_SRC lisp
(defvar *user-data-file* (merge-pathnames "chronometrist" *xdg-data-dir*)
@ -574,7 +574,7 @@ Use =org-babel= (=org-babel-tangle= / =org-babel-tangle-file=), /not/ =literate-
*** *day-start-time* :custom:variable:
:PROPERTIES:
:CUSTOM_ID: *day-start-time*
:CUSTOM_ID: day-start-time
:END:
=chronometrist-events-maybe-split= refers to this, but I'm not sure this has the desired effect at the moment—haven't even tried using it.
#+BEGIN_SRC lisp
@ -868,7 +868,7 @@ which span midnights."
*** *task-list* :custom:variable:
:PROPERTIES:
:VALUE: list
:CUSTOM_ID: *task-list*
:CUSTOM_ID: task-list
:END:
#+BEGIN_SRC lisp
(defvar *task-list* nil
@ -1089,7 +1089,7 @@ The backend may use no files, a single file, or multiple files. Thus, =backend=
**** *backends-alist* :variable:
:PROPERTIES:
:CUSTOM_ID: *backends-alist*
:CUSTOM_ID: backends-alist
:END:
#+BEGIN_SRC lisp
(defvar *backends-alist* nil
@ -1101,7 +1101,7 @@ EIEIO object such as one returned by `make-instance'.")
**** *active-backend* :custom:variable:
:PROPERTIES:
:CUSTOM_ID: *active-backend*
:CUSTOM_ID: active-backend-variable
:END:
#+BEGIN_SRC lisp
(defvar *active-backend* :sqlite
@ -1112,7 +1112,7 @@ Value must be a keyword corresponding to a key in
**** active-backend :reader:
:PROPERTIES:
:CUSTOM_ID: active-backend
:CUSTOM_ID: active-backend-function
:END:
#+BEGIN_SRC lisp
(defun active-backend ()
@ -1137,7 +1137,7 @@ be replaced."
**** task-list :function:
:PROPERTIES:
:CUSTOM_ID: task-list
:CUSTOM_ID: task-list-1
:END:
#+BEGIN_SRC lisp
(defun task-list ()
@ -1361,7 +1361,7 @@ entire (unsplit) record must be returned."))
**** task-records-for-date :generic:function:
:PROPERTIES:
:CUSTOM_ID: task-records-for-date
:CUSTOM_ID: task-records-date
:END:
#+BEGIN_SRC lisp
(declaim (ftype (function (chronometrist:backend
@ -1383,7 +1383,7 @@ Return nil if BACKEND contains no records.")
***** task-records-for-date :before:method:
:PROPERTIES:
:CUSTOM_ID: task-records-for-date-1
:CUSTOM_ID: before-task-records-for-date
:END:
#+BEGIN_SRC lisp
#+(or)
@ -1571,7 +1571,7 @@ These can be implemented in terms of the minimal protocol above.
*** Common definitions for s-expression backends
:PROPERTIES:
:CUSTOM_ID: common-definitions-for-s-expression-backends
:CUSTOM_ID: common-definitions-sexp-backends
:END:
**** file-backend-mixin :mixin:class:
:PROPERTIES:
@ -1807,7 +1807,7 @@ expression first)."
**** indices and hashes
:PROPERTIES:
:CUSTOM_ID: indices-and-hashes
:CUSTOM_ID: indices-hashes
:END:
#+BEGIN_SRC lisp
(defun rest-start (file)
@ -2534,7 +2534,7 @@ Return value is either a list in the form
***** task-records-for-date :reader:method:
:PROPERTIES:
:CUSTOM_ID: task-records-for-date-2
:CUSTOM_ID: plist-group-task-records-for-date
:END:
#+BEGIN_SRC lisp
(defmethod chronometrist:task-records-for-date