Closed Thaodan closed 3 months ago
Hello,
I don't understand. Please start from the beginning and explain the problem in context. As well, please provide a minimal reproducible example. And, of course, include the versions of all relevant software. You know, all the standard bug-report info.
I think i have the same issue, at least removing habit fixes it:
Config in org-agenda-custom-commands:
("t" "test"
((agenda "" ((org-agenda-span 'day)
(org-super-agenda-groups
'((:name "Timeline"
:time-grid t)
(:habit t)
)
)))))
Shows without debug:
if: ‘org-element-at-point’ cannot be used in non-Org buffer #<buffer *Org Agenda(t)*> (org-agenda-mode)
Trace: https://gist.github.com/k11m1/fa6d819d247ef9e8b69d31bf0e659f2a
Removing (:habit t)
makes the error go away.
I am using Latest doom emacs (as of 2023-09-25), on Arch Linux.
@k11m1 Thanks. Until this is fixed, you'll have to either not use the habit selector, or use Org 9.6.
@alphapapa No problem. I am not using the habit selector actively so disabling it for me fixed all the problems.
Adam Porter @.***> writes:
@k11m1 Thanks. Until this is fixed, you'll have to either not use the habit selector, or use Org 9.6.
Another option is to comment out the check in org-element.el that causes the issue.
Adam Porter @.***> writes: @k11m1 Thanks. Until this is fixed, you'll have to either not use the habit selector, or use Org 9.6. Another option is to comment out the check in org-element.el that causes the issue.
Sure, just be sure to recompile that file afterward, otherwise you'll get reduced performance from its being interpreted.
The root cause is https://github.com/emacs-straight/org-mode/commit/f1359546ad7dee9698b75ca25ad453e6f054bd06.
Determining whether something is a habit will involve a call to org-element-at-point
, which now errors when not in org-mode
. This is normally not a problem, as agenda items processed in their home buffer in org-mode
. But there's (at least) one exception: Hourly lines/separators in the time grid (like 10:00 .....
) aren't real org items, and they're "processed" in the org-agenda
buffer in org-agenda-mode
.
The simple fix is to evaluate whether an item is a habit only (when (derived-mode-p 'org-mode))
. See https://git.savannah.gnu.org/cgit/emacs/org-mode.git/commit/?id=a1fa52197 for a similar fix inside org.
I had a similar issue with a org-agenda-prefix-format
that makes a call to (org-get-category)
.
Please see https://git.savannah.gnu.org/cgit/emacs/org-mode.git/commit/?id=fac55324accbcab08dfebbde8295b2f1b4b9f45e, which demotes the error to a warning.
AFAICT the problem here is shown in these lines from the backtrace:
org-is-habit-p(nil)
(if (org-is-habit-p (org-super-agenda--get-marker item))
That shows that (org-super-agenda--get-marker item)
is returning nil for the item rather than the item's marker. If it were returning the marker, org-is-habit-p
would call org-entry-get
with the marker, which uses org-with-point-at
, which changes to the marker's buffer, which would mean being in the org-mode
buffer, which would mean no problem.
org-super-agenda--get-marker
is expanded to (org-find-text-property-in-string 'org-marker s)
, so the problem appears to be that the string from the agenda buffer does not have an org-marker
property.
So could someone who's experiencing this problem please, e.g. do C-u C-x =
on an entry in the agenda buffer and share whether the org-marker
property is set to a marker? As well, check for an org-hd-marker
property (AFAIK the agenda used to set both, but...).
Besides that, I can't reproduce this problem (or any problem) with the habit selector using Org 9.7.5 and Emacs 29.4 and org-super-agenda from master
. I don't know what happened, or if something else fixed it. Anyway, closing this now. Feel free to chime in if it's still a problem.
Description
Opening the agenda (org-agenda) for the current week or day results in the backtrace shown below. (C-c a a). Custom agenda commands are only affected if they have habbits inside them.
I think the habbit
:habit t
selector triggers the bug.Environment
Org-Agenda and Super-Agenda setings
Notes:
Similar to https://github.com/alphapapa/org-web-tools/issues/56 but for org-super-agenda.
Backtrace