emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[O] org-element-drag-* broken


From: suvayu ali
Subject: [O] org-element-drag-* broken
Date: Wed, 4 Jul 2012 12:36:18 +0200

Hi Nicolas,

I have been trying out the `org-element-drag-backward' and
`org-element-drag-forward' navigation commands. I believe they stopped
working yesterday when I updated my org-mode (Git: dab2505 -> a69f4b8).

When I try to move list items, I get the backtrace shown below. FWIW,
promotion and demotion works.

I hope this helps.


Debugger entered--Lisp error: (error "Cannot swap elements")
  signal(error ("Cannot swap elements"))
  error("Cannot swap elements")
  (if (and specialp (or (not (eq (org-element-type elem-B) (quote
paragraph))) (/= (org-element-property :begin elem-B)
(org-element-property :contents-begin elem-B)))) (error "Cannot swap
elements"))
  (let ((specialp (not (bolp)))) (if (and specialp (or (not (eq
(org-element-type elem-B) (quote paragraph))) (/=
(org-element-property :begin elem-B) (org-element-property
:contents-begin elem-B)))) (error "Cannot swap elements")) (let*
((ind-B (when specialp (goto-char (org-element-property :begin
elem-B)) (org-get-indentation))) (beg-A (org-element-property :begin
elem-A)) (end-A (save-excursion (goto-char (org-element-property :end
elem-A)) (skip-chars-backward "
        \n") (point-at-eol))) (beg-B (org-element-property :begin elem-B))
(end-B (save-excursion (goto-char (org-element-property :end elem-B))
(skip-chars-backward "
        \n") (point-at-eol))) (overlays (cons (mapcar (lambda (ov) (list ov
... ...)) (overlays-in beg-A end-A)) (mapcar (lambda (ov) (list ov ...
...)) (overlays-in beg-B end-B)))) (body-A (buffer-substring beg-A
end-A)) (body-B (delete-and-extract-region beg-B end-B))) (goto-char
beg-B) (when specialp (setq body-B (replace-regexp-in-string "\\`[
        ]*" "" body-B)) (org-indent-to-column ind-B)) (insert body-A) (mapc
(lambda (ov) (move-overlay (car ov) (+ (nth 1 ov) (- beg-B beg-A)) (+
(nth 2 ov) (- beg-B beg-A)))) (car overlays)) (goto-char beg-A)
(delete-region beg-A end-A) (insert body-B) (mapc (lambda (ov)
(move-overlay (car ov) (+ (nth 1 ov) (- beg-A beg-B)) (+ (nth 2 ov) (-
beg-A beg-B)))) (cdr overlays)) (goto-char (org-element-property :end
elem-B))))
  org-element-swap-A-B((paragraph (:begin 1258 :end 1268
:contents-begin 1258 :contents-end 1267 :post-blank 0)) (item (:bullet
"- " :begin 1268 :end 1298 :contents-begin 1270 :contents-end 1298
:checkbox nil :counter nil :tag nil :hiddenp nil :structure ((1256 0
"- " nil nil nil 1268) (1268 0 "- " nil nil nil 1298) (1298 0 "- " nil
nil nil 1307) (1307 0 "- " nil nil nil 1335) (1335 0 "- " nil nil nil
1344)) :post-blank 0)))
  (let ((size-next (- (save-excursion (goto-char (org-element-property
:end next-elem)) (skip-chars-backward "
        \n") (forward-line) (if (and (eolp) (not ...)) (1+ (point)) (point)))
(org-element-property :begin next-elem))) (size-blank (-
(org-element-property :end elem) (save-excursion (goto-char
(org-element-property :end elem)) (skip-chars-backward "
        \n") (forward-line) (point))))) (org-element-swap-A-B elem next-elem)
(goto-char (+ pos size-next size-blank)))
  (let ((next-elem (org-element-at-point))) (when (or
(org-element-nested-p elem next-elem) (and (eq (org-element-type
next-elem) (quote headline)) (not (eq (org-element-type elem) (quote
headline))))) (goto-char pos) (error "Cannot drag element forward"))
(let ((size-next (- (save-excursion (goto-char (org-element-property
:end next-elem)) (skip-chars-backward "
        \n") (forward-line) (if (and ... ...) (1+ ...) (point)))
(org-element-property :begin next-elem))) (size-blank (-
(org-element-property :end elem) (save-excursion (goto-char
(org-element-property :end elem)) (skip-chars-backward "
        \n") (forward-line) (point))))) (org-element-swap-A-B elem next-elem)
(goto-char (+ pos size-next size-blank))))
  (let* ((pos (point)) (elem (org-element-at-point))) (when (=
(point-max) (org-element-property :end elem)) (error "Cannot drag
element forward")) (goto-char (org-element-property :end elem)) (let
((next-elem (org-element-at-point))) (when (or (org-element-nested-p
elem next-elem) (and (eq (org-element-type next-elem) (quote
headline)) (not (eq (org-element-type elem) (quote headline)))))
(goto-char pos) (error "Cannot drag element forward")) (let
((size-next (- (save-excursion (goto-char ...) (skip-chars-backward "
        \n") (forward-line) (if ... ... ...)) (org-element-property :begin
next-elem))) (size-blank (- (org-element-property :end elem)
(save-excursion (goto-char ...) (skip-chars-backward "
        \n") (forward-line) (point))))) (org-element-swap-A-B elem next-elem)
(goto-char (+ pos size-next size-blank)))))
  org-metadown()
  call-interactively(org-metadown nil nil)


-- 
Suvayu

Open source is the future. It sets us free.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]