awth13 / org-appear

Toggle visibility of hidden Org mode element parts upon entering and leaving an element
MIT License
364 stars 19 forks source link

Error when toggling org-appear in empty org-mode buffer #20

Closed ilupin closed 3 years ago

ilupin commented 3 years ago

M-x org-appear-mode in an empty org-mode buffer triggers the following error:

Debugger entered--Lisp error: (wrong-type-argument number-or-marker-p nil)
  1-(nil)
  (- (org-element-property :end elem) (1- (org-element-property :post-blank elem)))
  (let* ((elem (org-element-context)) (elem-type (car elem)) (elem-end (- (org-element-property :end elem) (1- (org-element-property :post-blank elem)))) (elem-ignorep (string= (org-element-property :type elem) "cite"))) (if (and (memq elem-type org-appear-elements) (< (point) elem-end) (not elem-ignorep)) elem nil))
  org-appear--current-elem()
  (let ((current-elem (org-appear--current-elem))) (if current-elem (progn (org-appear--hide-invisible current-elem))))
  (cond (org-appear-mode (org-appear--set-elements) (add-hook 'post-command-hook #'org-appear--post-cmd nil t)) (t (let ((current-elem (org-appear--current-elem))) (if current-elem (progn (org-appear--hide-invisible current-elem)))) (remove-hook 'post-command-hook #'org-appear--post-cmd t)))
  (let ((last-message (current-message))) (setq org-appear-mode (cond ((eq arg 'toggle) (not org-appear-mode)) ((and (numberp arg) (< arg 1)) nil) (t t))) (if (boundp 'local-minor-modes) (progn (setq local-minor-modes (delq 'org-appear-mode local-minor-modes)) (if org-appear-mode (progn (setq local-minor-modes (cons 'org-appear-mode local-minor-modes)))))) (cond (org-appear-mode (org-appear--set-elements) (add-hook 'post-command-hook #'org-appear--post-cmd nil t)) (t (let ((current-elem (org-appear--current-elem))) (if current-elem (progn (org-appear--hide-invisible current-elem)))) (remove-hook 'post-command-hook #'org-appear--post-cmd t))) (run-hooks 'org-appear-mode-hook (if org-appear-mode 'org-appear-mode-on-hook 'org-appear-mode-off-hook)) (if (called-interactively-p 'any) (progn nil (if (and (current-message) (not (equal last-message (current-message)))) nil (let ((local " in current buffer")) (message "Org-Appear mode %sabled%s" (if org-appear-mode "en" "dis") local))))))
  org-appear-mode(toggle)
  funcall-interactively(org-appear-mode toggle)
  call-interactively(org-appear-mode record nil)
  command-execute(org-appear-mode record)
  execute-extended-command(nil "org-appear-mode" "org-ap")
  funcall-interactively(execute-extended-command nil "org-appear-mode" "org-ap")
  call-interactively(execute-extended-command nil nil)
  command-execute(execute-extended-command)
awth13 commented 3 years ago

Thank you for posting the issue with detailed error trace, @ilupin! Fixed.