It does not make sense to look in non-Org buffers for backlinks of items, but
this was indeed what happend until now: the function `db/org-get-location` only
checked whether the current buffer is associated with a file, and if so uses it
for querying the user for an item to select. This does not make sense, as
`db/org-get-location` is supposed to return a mark to an Org item.
This is now fixed by `db/org-get-location` to also check whether the current
buffer is also an Org buffer. It's as simple as that.
This function is not meant for interactive use, but instead should be used in
source blocks such as
```
(db/org-backlinks-to-item-at-point)
```
This will add a table of all items linking to the current item at point, and cut
be used in item templates, for example.
Background: I tried to achive this functionality with `org-ql` directly, but
somehow failed. This function simply encapsulates the corresponding call to
`org-ql-query`, adding the ID property of item at point automatically.
This allows to keep ideas for later in dedicated NOTE items, to group them
together. Not sure whether this is really a good idea, as it spreads those
ideas around, but let's try it out!
When inserting links multiple times, it's annoying to have to go back to the
original place the link points to and reinsert it into the stored link list.
Using a universal argument to toggle `org-link-keep-stored-after-insertion` is
also not an option, as I keep forgetting to use it.
Instead, by default keep all links after insertion. To be able to handle the
growing list of links, we now provide a function `db/org-clear-stored-links` to
set the list of stored links to the empty list.
We want `org-ql-search`, but need to install `org-ql`, so it's best to simply state
this in the `:ensure` declaration.
The `:commands` specification might be redundant, as `org-ql` comes with an
autoload file. But let's keep it there for clarify purposes.
This includes, among others, a dynamic block to insert the result of a query –
which is exactly what I am looking for. I have to learn a new query language,
though, but it seems as if non-sexp syntax is easy enough; and having a
lisp-like query syntax is undoubtedly a big improvement!
This way, the WIP list faithfully shows all WIP items and gives a better
overview of the current work load. Items will appear twice though when they are
scheduled today or in the past.
This should allow to have TODO subtasks in templates without them appearing in
agenda views, among others.
Tried to update some agenda views, but some configurations may still be missing.
It happens sometimes that the clock is not active, in which case hydra tried to
replace strings in `org-clock-current-task`, then a nil value. Fixed this.
When things are scheduled, they are shown in the time grid portion of the
agenda. When they are scheduled in the future, they will not show up until that
date is due; when they are scheduled in the past or present, they are shown on
the time grid directly. Both situations are sufficient, and it's thus not
necessary to show scheduled items in other lists as well.
Started dates are also WIP, in particular if they have been interrupted. Items
scheduled in the future should only appear on the WIP list when they are due.
I regularly filter the main agenda view for the CONT tag to see my WIP items, so
it's propably meaningful to have this as extra list. It's using some space in
the agenda view, though, so let's see how this will turn out.
This had been used to synchronize my calender with others, but since this
synchronization is not in use anymore, regular exports are unnecessary.
Furthermore, the export makes Emacs unresponsive sometimes, as the export does
not seem to be easily preemtable.
Enabling this somehow caused performance issues in Org Mode buffers, and since I
am not using this syntax, let's just disable it. This setting can be
overwritten via the Customize interface.
This allows to postpone projects into the future when they are not relevant now
but would otherwise be stuck. Because of the scheduling, an automatic reminder
will appear on the agenda when the date is due, upon which the projects is shown
again as stuck. Then new items can be planned, or other measure might be taken.
I think I just did it wrong, so let's try adding a note by calling
`org-add-note` directly. So far it's working better, but I am not quite sure
whether I really did it right this time. In any way, `org-add-note` keeps track
of all the bookkeeping for taking notes, so my code is simpler now :)
This should make the main agenda view into a good overview of everything that
can be done right now, allowing it to choose the next task directly from that
list. The scheduled items then are only meant for information and hiding future
tasks.
I had ≈9500 entries and I think this had been too much, causing noticable lag
when closing Groupd. In particular my email volume is much lower than this.