Function: senator-transpose-tags-up
senator-transpose-tags-up is an interactive and byte-compiled function
defined in senator.el.gz.
Signature
(senator-transpose-tags-up)
Documentation
Transpose the current tag, and the preceding tag.
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/cedet/semantic/senator.el.gz
;;;###autoload
(defun senator-transpose-tags-up ()
"Transpose the current tag, and the preceding tag."
(interactive)
(semantic-fetch-tags)
(let* ((current-tag (semantic-current-tag))
(prev-tag (save-excursion
(goto-char (semantic-tag-start current-tag))
(semantic-find-tag-by-overlay-prev)))
(ct-parent (semantic-find-tag-parent-by-overlay current-tag))
(pt-parent (semantic-find-tag-parent-by-overlay prev-tag)))
(if (not (eq ct-parent pt-parent))
(error "Cannot transpose tags"))
(let ((txt (buffer-substring (semantic-tag-start current-tag)
(semantic-tag-end current-tag)))
(line (count-lines (semantic-tag-start current-tag)
(point)))
(insert-point nil)
)
(delete-region (semantic-tag-start current-tag)
(semantic-tag-end current-tag))
(delete-blank-lines)
(goto-char (semantic-tag-start prev-tag))
(setq insert-point (point))
(insert txt)
(if (/= (current-column) 0)
(insert "\n"))
(insert "\n")
(goto-char insert-point)
(forward-line line)
)))