alphapapa / org-ql

A searching tool for Org-mode, including custom query languages, commands, saved searches and agenda-like views, etc.
GNU General Public License v3.0
1.4k stars 110 forks source link

temp buffer created in wrong mode error #374

Closed vigilancetech-com closed 1 year ago

vigilancetech-com commented 1 year ago

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)
vigilancetech-com commented 1 year ago

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]
vigilancetech-com commented 1 year ago

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?

vigilancetech-com commented 1 year ago

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])
alphapapa commented 1 year ago

Please see https://github.com/alphapapa/org-ql/issues/364#issuecomment-1716287315.

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