Function: combobulate--yoink

combobulate--yoink is a natively compiled function defined in combobulate-manipulation.el.

Signature

(combobulate--yoink POINT-NODE)

Source Code

;; Defined in /nix/store/b5fvrwzi3zvkabyzx0in6gw1cj963z46-emacs-packages-deps/share/emacs/site-lisp/combobulate-manipulation.el
(defun combobulate--yoink (point-node)
  (let* ((point-sibling (car (reverse (combobulate-nav-get-siblings point-node))))
         (target-node
          (save-excursion
            (combobulate-move-to-node
             (with-navigation-nodes (:procedures (combobulate-read procedures-hierarchy))
               (combobulate-nav-get-parent point-node)))
            (or (combobulate-proxy-node-make-from-nodes (combobulate--get-sibling
                                                         (combobulate-node-at-point)
                                                         'forward))
                (error "No valid sibling node.")))))
    (save-excursion
      (let ((pos-col))
        (combobulate-refactor ()
          (mark-range-move
           (combobulate-node-start target-node)
           (combobulate-node-end target-node)
           (progn
             (setq pos-col (current-indentation))
             ;; find the right place to place the newline and indent.
             (if point-sibling
                 (combobulate-move-to-node point-sibling t)
               (end-of-line))
             (when (combobulate-after-point-blank-p (point))
               (newline)
               (indent-to pos-col))
             (point)))
          (commit))))))