alphapapa/org-ql

temp buffer created in wrong mode error

vigilancetech-com opened this issue · 4 comments

when I create this org buffer:

#+title: Test
* heading one
** NEXT subheading foo
stuff it
** subheading bar
* heading two
** NEXT subheading fubar
more stuff
** subheading foo
some stuff here
** subheading barfoo

then I run org-ql-view selecting Overview: NEXT tasks I get this error:

org-element-at-point: ‘org-element-at-point’ cannot be used in non-Org buffer #<buffer  *temp*-47842> (fundamental-mode)

debug stacktrace:

Debugger entered--Lisp error: (error "‘org-element-at-point’ cannot be used in non-Org b...")
  error("`org-element-at-point' cannot be used in non-Org b..." #<buffer  *temp*-496347> fundamental-mode)
  org-element-at-point(nil)
  org--property-local-values("STYLE" nil nil)
  org-entry-get(nil "STYLE" selective)
  org-is-habit-p()
  (if (org-is-habit-p) (progn (org-habit-parse-todo)))
  (save-restriction (widen) (goto-char (or --mepom (point))) (if (org-is-habit-p) (progn (org-habit-parse-todo))))
  (save-excursion (save-restriction (widen) (goto-char (or --mepom (point))) (if (org-is-habit-p) (progn (org-habit-parse-todo)))))
  (save-excursion (cond ((markerp --mepom) (set-buffer (marker-buffer --mepom))) ((numberp --mepom)) (t (if (let* ((parray (and t ...))) (if parray (let* (...) (if ... ... ...)) (let* (...) (cond ... ... ...)))) (progn (set-buffer (let* (...) (if parray ... ...))))) (setq --mepom (let* ((parray (and t ...))) (if parray (let* (...) (if ... ... ...)) (let* (...) (cond ... ... ...))))))) (save-excursion (save-restriction (widen) (goto-char (or --mepom (point))) (if (org-is-habit-p) (progn (org-habit-parse-todo))))))
  (let ((--mepom (let* ((parray (and t (let* ... ...)))) (if parray (let* ((val ...)) (if (eq val ...) 'nil (let ... val))) (let* ((val ...)) (cond (... ...) (... ...) (t ...))))))) (save-excursion (cond ((markerp --mepom) (set-buffer (marker-buffer --mepom))) ((numberp --mepom)) (t (if (let* ((parray ...)) (if parray (let* ... ...) (let* ... ...))) (progn (set-buffer (let* ... ...)))) (setq --mepom (let* ((parray ...)) (if parray (let* ... ...) (let* ... ...)))))) (save-excursion (save-restriction (widen) (goto-char (or --mepom (point))) (if (org-is-habit-p) (progn (org-habit-parse-todo)))))))
  (let* ((properties (car (cdr element))) (properties (let* ((--cl-var-- properties) (key nil) (val nil) (--cl-var--) (symbol nil) (--cl-var-- nil) (--cl-var-- t)) (while (consp --cl-var--) (progn (setq --cl-var-- --cl-var--) (setq key (car-safe ...)) (setq val (car --cl-var--))) (setq symbol (intern (cl-subseq ... 1))) (if (member symbol '...) (progn) (setq --cl-var-- (nconc ... --cl-var--))) (setq --cl-var-- (cdr (cdr --cl-var--))) (setq --cl-var-- nil)) (nreverse --cl-var--))) (title (let ((it (org-ql-view--add-faces element))) (let ((it (org-element--property :raw-value it nil nil))) (org-link-display-format it)))) (todo-keyword (let ((result (org-element--property :todo-keyword element nil nil))) (if result (progn (let (...) (org-ql-view--add-todo-face it)))))) (tag-list (if org-use-tag-inheritance (let* ((marker (and t ...))) (if marker (save-current-buffer (set-buffer ...) (save-excursion ...)) (progn (display-warning ... ...) (org-element--property :tags element nil nil)))) (org-element--property :tags element nil nil))) (tag-string (if tag-list (progn (let ((it tag-list)) (let (...) (let ... ...)))))) (priority-string (let ((result (let (...) (if result ...)))) (if result (progn (org-ql-view--add-priority-face result))))) (habit-property (let ((--mepom (let* (...) (if parray ... ...)))) (save-excursion (cond ((markerp --mepom) (set-buffer ...)) ((numberp --mepom)) (t (if ... ...) (setq --mepom ...))) (save-excursion (save-restriction (widen) (goto-char ...) (if ... ...)))))) (due-string (let* ((val (org-element--property :relative-due-date element nil nil))) (if (null val) (let nil "") (let ((string val)) (format " %s " (org-add-props string nil ... ...)))))) (string (s-join " " (-non-nil (list todo-keyword priority-string title due-string tag-string))))) (remove-list-of-text-properties 0 (length string) '(line-prefix) string) (let ((it string)) (let ((it (concat "  " it))) (org-add-props it properties 'org-agenda-type 'search 'todo-state todo-keyword 'tags tag-list 'org-habit-p habit-property))))
  (if (not element) "" (let* ((properties (car (cdr element))) (properties (let* ((--cl-var-- properties) (key nil) (val nil) (--cl-var--) (symbol nil) (--cl-var-- nil) (--cl-var-- t)) (while (consp --cl-var--) (progn (setq --cl-var-- --cl-var--) (setq key ...) (setq val ...)) (setq symbol (intern ...)) (if (member symbol ...) (progn) (setq --cl-var-- ...)) (setq --cl-var-- (cdr ...)) (setq --cl-var-- nil)) (nreverse --cl-var--))) (title (let ((it (org-ql-view--add-faces element))) (let ((it ...)) (org-link-display-format it)))) (todo-keyword (let ((result (org-element--property :todo-keyword element nil nil))) (if result (progn (let ... ...))))) (tag-list (if org-use-tag-inheritance (let* ((marker ...)) (if marker (save-current-buffer ... ...) (progn ... ...))) (org-element--property :tags element nil nil))) (tag-string (if tag-list (progn (let (...) (let ... ...))))) (priority-string (let ((result (let ... ...))) (if result (progn (org-ql-view--add-priority-face result))))) (habit-property (let ((--mepom (let* ... ...))) (save-excursion (cond (... ...) (...) (t ... ...)) (save-excursion (save-restriction ... ... ...))))) (due-string (let* ((val (org-element--property :relative-due-date element nil nil))) (if (null val) (let nil "") (let (...) (format " %s " ...))))) (string (s-join " " (-non-nil (list todo-keyword priority-string title due-string tag-string))))) (remove-list-of-text-properties 0 (length string) '(line-prefix) string) (let ((it string)) (let ((it (concat "  " it))) (org-add-props it properties 'org-agenda-type 'search 'todo-state todo-keyword 'tags tag-list 'org-habit-p habit-property)))))
  org-ql-view--format-element((headline (:standard-properties [386 386 434 462 462 0 (:title) nil nil nil nil nil nil 5 #<buffer ent.org> nil nil nil] :pre-blank 0 :raw-value [org-element-deferred org-element--headline-raw-value (16 47) nil] :title #("figure out where I am currently" 0 31 (face org-scheduled-previously)) :level 5 :priority 65 :tags nil :todo-keyword #("NEXT" 0 4 (face org-todo)) :todo-type todo :footnote-section-p [org-element-deferred org-element--headline-footnote-section-p nil nil] :archivedp [org-element-deferred org-element--headline-archivedp nil nil] :commentedp nil :org-marker #<marker at 386 in ent.org> :org-hd-marker #<marker at 386 in ent.org> :scheduled (timestamp (:standard-properties [445 nil nil nil 461 0 nil nil nil nil nil nil nil nil nil nil nil nil] :type active :range-type nil :raw-value "<2023-09-02 Sat>" :year-start 2023 :month-start 9 :day-start 2 :hour-start nil :minute-start nil :year-end 2023 :month-end 9 :day-end 2 :hour-end nil :minute-end nil)) :relative-due-date #("19d ago" 0 7 (help-echo "<2023-09-02 Sat>")))))
  -map(org-ql-view--format-element ((headline (:standard-properties ... :pre-blank 0 :raw-value ... :title ... :level 5 :priority 65 :tags nil :todo-keyword ... :todo-type todo :footnote-section-p ... :archivedp ... :commentedp nil :org-marker #<marker at 386 in ent.org> ...)) (headline (:standard-properties ... :pre-blank 0 :raw-value ... :title ... :level 2 :priority 65 :tags nil :todo-keyword ... :todo-type todo :footnote-section-p ... :archivedp ... :commentedp nil :org-marker #<marker at 1879 in misc.org> ...)) (headline (:standard-properties ... :pre-blank 0 :raw-value ... :title ... :level 2 :priority 65 :tags nil :todo-keyword ... :todo-type todo :footnote-section-p ... :archivedp ... :commentedp nil :org-marker #<marker at 124 in ent.org> ...)) (headline (:standard-properties ... :pre-blank 0 :raw-value ... :title ... :level 5 :priority nil :tags ... :todo-keyword ... :todo-type todo :footnote-section-p ... :archivedp ... :commentedp nil :org-marker #<marker at 3032 in misc.org> ...)) (headline (:standard-properties ... :pre-blank 0 :raw-value ... :title ... :level 3 :priority nil :tags ... :todo-keyword ... :todo-type todo :footnote-section-p ... :archivedp ... :commentedp nil :org-marker #<marker at 1526 in mgmt.org> ...)) (headline (:standard-properties ... :pre-blank 0 :raw-value ... :title ... :level 2 :priority nil :tags ... :todo-keyword ... :todo-type todo :footnote-section-p ... :archivedp ... :commentedp nil :org-marker #<marker at 1219 in misc.org> ...)) (headline (:standard-properties ... :pre-blank 0 :raw-value ... :title ... :level 2 :priority nil :tags ... :todo-keyword ... :todo-type todo :footnote-section-p ... :archivedp ... :commentedp nil :org-marker #<marker at 1383 in misc.org> ...)) (headline (:standard-properties ... :pre-blank 0 :raw-value ... :title ... :level 6 :priority nil :tags ... :todo-keyword ... :todo-type todo :footnote-section-p ... :archivedp ... :commentedp nil :org-marker #<marker at 772 in mgmt.org> ...)) (headline (:standard-properties ... :pre-blank 0 :raw-value ... :title ... :level 4 :priority nil :tags nil :todo-keyword ... :todo-type todo :footnote-section-p ... :archivedp ... :commentedp nil :org-marker #<marker at 2221 in prod.org> ...)) (headline (:standard-properties ... :pre-blank 0 :raw-value ... :title ... :level 4 :priority nil :tags nil :todo-keyword ... :todo-type todo :footnote-section-p ... :archivedp ... :commentedp nil :org-marker #<marker at 3001 in prod.org> ...)) (headline (:standard-properties ... :pre-blank 0 :raw-value ... :title ... :level 2 :priority nil :tags ... :todo-keyword ... :todo-type todo :footnote-section-p ... :archivedp ... :commentedp nil :org-marker #<marker at 1660 in mgmt.org> ...)) (headline (:standard-properties ... :pre-blank 0 :raw-value ... :title ... :level 2 :priority nil :tags nil :todo-keyword ... :todo-type todo :footnote-section-p ... :archivedp ... :commentedp nil :org-marker #<marker at 1979 in misc.org> ...)) (headline (:standard-properties ... :pre-blank 0 :raw-value ... :title ... :level 3 :priority nil :tags nil :todo-keyword ... :todo-type todo :footnote-section-p ... :archivedp ... :commentedp nil :org-marker #<marker at 2728 in misc.org> ...)) (headline (:standard-properties ... :pre-blank 0 :raw-value ... :title ... :level 4 :priority nil :tags nil :todo-keyword ... :todo-type todo :footnote-section-p ... :archivedp ... :commentedp nil :org-marker #<marker at 2887 in misc.org> ...)) (headline (:standard-properties ... :pre-blank 0 :raw-value ... :title ... :level 4 :priority nil :tags nil :todo-keyword ... :todo-type todo :footnote-section-p ... :archivedp ... :commentedp nil :org-marker #<marker at 3801 in misc.org> ...)) (headline (:standard-properties ... :pre-blank 0 :raw-value ... :title ... :level 4 :priority nil :tags nil :todo-keyword ... :todo-type todo :footnote-section-p ... :archivedp ... :commentedp nil :org-marker #<marker at 3836 in misc.org> ...)) (headline (:standard-properties ... :pre-blank 0 :raw-value ... :title ... :level 6 :priority nil :tags nil :todo-keyword ... :todo-type todo :footnote-section-p ... :archivedp ... :commentedp nil :org-marker #<marker at 2636 in prod.org> ...))))
  org-ql-search(org-agenda-files (todo "NEXT") :super-groups nil :narrow nil :sort (date priority) :title "Overview: NEXT tasks" :buffer nil)
  (let* ((buffers-files (plist-get view :buffers-files)) (query (plist-get view :query)) (sort (plist-get view :sort)) (narrow (plist-get view :narrow)) (super-groups (plist-get view :super-groups)) (title (plist-get view :title)) (super-groups (cond ((symbolp super-groups) (symbol-value super-groups)) ((listp super-groups) super-groups)))) (org-ql-search buffers-files query :super-groups super-groups :narrow narrow :sort sort :title title :buffer org-ql-view-buffer))
  (cond ((functionp view) (call-interactively view)) ((listp view) (let* ((buffers-files (plist-get view :buffers-files)) (query (plist-get view :query)) (sort (plist-get view :sort)) (narrow (plist-get view :narrow)) (super-groups (plist-get view :super-groups)) (title (plist-get view :title)) (super-groups (cond ((symbolp super-groups) (symbol-value super-groups)) ((listp super-groups) super-groups)))) (org-ql-search buffers-files query :super-groups super-groups :narrow narrow :sort sort :title title :buffer org-ql-view-buffer))))
  (let* ((view (alist-get name org-ql-views nil nil #'string=)) (window (let (needle) (let ((list (window-list)) (i 0) elt) (while (if list (progn ... ...)) (let (... ...) (ignore it it-index)) (progn (setq i ...) (setq list ...)))) needle)) (org-ql-view-display-buffer-action (if (and window (not org-ql-view-display-buffer-action)) (progn (cons #'display-buffer-same-window nil))))) (if window (progn (select-window window))) (cond ((functionp view) (call-interactively view)) ((listp view) (let* ((buffers-files (plist-get view :buffers-files)) (query (plist-get view :query)) (sort (plist-get view :sort)) (narrow (plist-get view :narrow)) (super-groups (plist-get view :super-groups)) (title (plist-get view :title)) (super-groups (cond (... ...) (... super-groups)))) (org-ql-search buffers-files query :super-groups super-groups :narrow narrow :sort sort :title title :buffer org-ql-view-buffer)))))
  org-ql-view("Overview: NEXT tasks")
  funcall-interactively(org-ql-view "Overview: NEXT tasks")
  command-execute(org-ql-view record)
  counsel-M-x-action("org-ql-view")
  #f(compiled-function (x) #<bytecode -0x18f5c60da6b4fe00>)("org-ql-view")
  ivy-call()
  #<subr ivy-read>("M-x " ("toggle-debug-on-error" "org-ql-view" "find-library" "eshell" "org-ql-find" "org-ql-search" "calc" "comment-region" "which-key-show-top-level" "indent-region" "yas-visit-snippet-file" "evil-redo" "next-line" "org-cycle" "bookmark-set" "bookmark-jump" "yas-describe-tables" "+doom-dashboard/open" "completion-help-at-point" "org-insert-structure-template" "cd" "5x5" "amx" "arp" "dbx" "dig" "erc" "ert" "eww" "ftp" "gdb" "irc" "jdb" "man" "mpc" "pdb" "pwd" "rsh" "sdb" "xdb" "diff" "dirs" "ffap" "gnus" "grep" "help" "ielm" "info" "life" "lsp!" ...) :predicate counsel--M-x-externs-predicate :require-match t :history counsel-M-x-history :action counsel-M-x-action :keymap (keymap (67108908 . counsel--info-lookup-symbol) (67108910 . counsel-find-symbol)) :initial-input nil :caller counsel-M-x :sort t)
  apply(#<subr ivy-read> ("M-x " ("toggle-debug-on-error" "org-ql-view" "find-library" "eshell" "org-ql-find" "org-ql-search" "calc" "comment-region" "which-key-show-top-level" "indent-region" "yas-visit-snippet-file" "evil-redo" "next-line" "org-cycle" "bookmark-set" "bookmark-jump" "yas-describe-tables" "+doom-dashboard/open" "completion-help-at-point" "org-insert-structure-template" "cd" "5x5" "amx" "arp" "dbx" "dig" "erc" "ert" "eww" "ftp" "gdb" "irc" "jdb" "man" "mpc" "pdb" "pwd" "rsh" "sdb" "xdb" "diff" "dirs" "ffap" "gnus" "grep" "help" "ielm" "info" "life" "lsp!" ...) :predicate counsel--M-x-externs-predicate :require-match t :history counsel-M-x-history :action counsel-M-x-action :keymap (keymap (67108908 . counsel--info-lookup-symbol) (67108910 . counsel-find-symbol)) :initial-input nil :caller counsel-M-x :sort t))
  #f(advice ivy-prescient--enable-sort-commands :filter-args #<subr ivy-read>)("M-x " ("toggle-debug-on-error" "org-ql-view" "find-library" "eshell" "org-ql-find" "org-ql-search" "calc" "comment-region" "which-key-show-top-level" "indent-region" "yas-visit-snippet-file" "evil-redo" "next-line" "org-cycle" "bookmark-set" "bookmark-jump" "yas-describe-tables" "+doom-dashboard/open" "completion-help-at-point" "org-insert-structure-template" "cd" "5x5" "amx" "arp" "dbx" "dig" "erc" "ert" "eww" "ftp" "gdb" "irc" "jdb" "man" "mpc" "pdb" "pwd" "rsh" "sdb" "xdb" "diff" "dirs" "ffap" "gnus" "grep" "help" "ielm" "info" "life" "lsp!" ...) :predicate counsel--M-x-externs-predicate :require-match t :history counsel-M-x-history :action counsel-M-x-action :keymap (keymap (67108908 . counsel--info-lookup-symbol) (67108910 . counsel-find-symbol)) :initial-input nil :caller counsel-M-x)
  ivy-posframe--read(#f(advice ivy-prescient--enable-sort-commands :filter-args #<subr ivy-read>) "M-x " ("toggle-debug-on-error" "org-ql-view" "find-library" "eshell" "org-ql-find" "org-ql-search" "calc" "comment-region" "which-key-show-top-level" "indent-region" "yas-visit-snippet-file" "evil-redo" "next-line" "org-cycle" "bookmark-set" "bookmark-jump" "yas-describe-tables" "+doom-dashboard/open" "completion-help-at-point" "org-insert-structure-template" "cd" "5x5" "amx" "arp" "dbx" "dig" "erc" "ert" "eww" "ftp" "gdb" "irc" "jdb" "man" "mpc" "pdb" "pwd" "rsh" "sdb" "xdb" "diff" "dirs" "ffap" "gnus" "grep" "help" "ielm" "info" "life" "lsp!" ...) :predicate counsel--M-x-externs-predicate :require-match t :history counsel-M-x-history :action counsel-M-x-action :keymap (keymap (67108908 . counsel--info-lookup-symbol) (67108910 . counsel-find-symbol)) :initial-input nil :caller counsel-M-x)
  apply(ivy-posframe--read #f(advice ivy-prescient--enable-sort-commands :filter-args #<subr ivy-read>) ("M-x " ("toggle-debug-on-error" "org-ql-view" "find-library" "eshell" "org-ql-find" "org-ql-search" "calc" "comment-region" "which-key-show-top-level" "indent-region" "yas-visit-snippet-file" "evil-redo" "next-line" "org-cycle" "bookmark-set" "bookmark-jump" "yas-describe-tables" "+doom-dashboard/open" "completion-help-at-point" "org-insert-structure-template" "cd" "5x5" "amx" "arp" "dbx" "dig" "erc" "ert" "eww" "ftp" "gdb" "irc" "jdb" "man" "mpc" "pdb" "pwd" "rsh" "sdb" "xdb" "diff" "dirs" "ffap" "gnus" "grep" "help" "ielm" "info" "life" "lsp!" ...) :predicate counsel--M-x-externs-predicate :require-match t :history counsel-M-x-history :action counsel-M-x-action :keymap (keymap (67108908 . counsel--info-lookup-symbol) (67108910 . counsel-find-symbol)) :initial-input nil :caller counsel-M-x))
  ivy-read("M-x " ("toggle-debug-on-error" "org-ql-view" "find-library" "eshell" "org-ql-find" "org-ql-search" "calc" "comment-region" "which-key-show-top-level" "indent-region" "yas-visit-snippet-file" "evil-redo" "next-line" "org-cycle" "bookmark-set" "bookmark-jump" "yas-describe-tables" "+doom-dashboard/open" "completion-help-at-point" "org-insert-structure-template" "cd" "5x5" "amx" "arp" "dbx" "dig" "erc" "ert" "eww" "ftp" "gdb" "irc" "jdb" "man" "mpc" "pdb" "pwd" "rsh" "sdb" "xdb" "diff" "dirs" "ffap" "gnus" "grep" "help" "ielm" "info" "life" "lsp!" ...) :predicate counsel--M-x-externs-predicate :require-match t :history counsel-M-x-history :action counsel-M-x-action :keymap (keymap (67108908 . counsel--info-lookup-symbol) (67108910 . counsel-find-symbol)) :initial-input nil :caller counsel-M-x)
  counsel-M-x()
  funcall-interactively(counsel-M-x)
  command-execute(counsel-M-x)

it appears to be happening here:

Edebug: org-is-habit-p
Error running timer ‘org-reveal’: (error "‘org-element-at-point’ cannot be used in non-Org buffer #<buffer org-habit.el> (emacs-lisp-mode)") [5 times]

it looks like org-entry-get is passing a nil epom down to org--property-local-values which is choking on it. Maybe if that's passed in as nil it should be set to point? But where?

putting this patch in makes it work, but it still throws the error:

modified   org-ql-search.el
@@ -180,6 +180,7 @@ necessary."
   ;; to or exit from the `let', even though `make-local-variable' is actually done in
   ;; `org-ql-view--display'.  So we do all this within a temp buffer, which works around it.
   (with-temp-buffer
+    (org-mode)
     (let* ((query (cl-etypecase query
                     (string (if (or (string-prefix-p "(" query)
                                     (string-prefix-p "\"" query))

now the stack trace looks like:

Debugger entered--Lisp error: (error "‘org-element-at-point’ cannot be used in non-Org b...")
  error("`org-element-at-point' cannot be used in non-Org b..." #<buffer *Org QL View: Overview: NEXT tasks*> org-agenda-mode)
  org-element-at-point(nil cached)
  org-before-first-heading-p()
  org-back-to-heading-or-point-min(t)
  org-fold-show-entry()
  org-fold-show-set-visibility(canonical)
  org-reveal((4))
  apply(org-reveal (4))
  timer-event-handler([t 25869 17934 961838 nil org-reveal ((4)) nil 957000 nil])

Please see #364 (comment).

And when reporting a bug please be sure to report the versions of the relevant software.