ポイントがある行のインデントより深い文字列を収得する関数

(defun take-same-indent-string ()
  (let* ((indent (current-indentation))
         (start-point (point))
         (end-point (save-excursion
                      (forward-line)
                      (loop while (and (not (>= indent (current-indentation)))
                                       (not (eobp)))
                            do (forward-line)
                            finally return (point)))))
    (buffer-substring start-point end-point)))

;; 簡易デバッグ用
(defun take-same-indent-string-msg ()
  (interactive)
  (message "%s" (take-same-indent-string)))