(Sorry to everyone, seems my subscription to this list did not go through so I haven't been received your answers. I just stumbled across them via the gmane archive. Thus the reply-to-self.)

Gordon, Frank, thanks for taking the time to answer.
I originally tried to define a command as Gordon mentioned (see below), but this lead to two separate undo steps (pasting and indenting). Regarding evil-paste-pop I think I like the :paste-command suggestion most, I may end up implementing that. As I am short on time currently, I likely won't get to it this month.

(evil-define-command evil-paste-before-adjusting-indent
  (count &optional register yank-handler)
  "Like `evil-paste-before' but adjusts the indent to the current line."
  :suppress-operator t
  (interactive "P<x>")
  (evil-paste-before count register yank-handler)
  (my-evil-adjust-indent-after-paste 'before))




On Fri, Jun 27, 2014 at 2:26 PM, Johann Klähn <kljohann@gmail.com> wrote:
Hi there,
I would like to work on a patch to add support for ]p and [p to evil. I have some working code (see below) to adjust the indent after a call to evil-paste-after / evil-paste-before, but I would appreciate tips on how to integrate this with existing evil code (especially so that ]p will be a single undo step, that evil-paste-pop still works, …).

All the best,
Johann

(defun get-common-indent-in-region (start end)
  (setq end (copy-marker end))
  (unwind-protect
      (let (indentation)
        (save-excursion
          (goto-char start)
          (or (bolp) (forward-line 1))
          (while (< (point) end)
            (skip-chars-forward " \t")
            (setq indentation
                  (cons (current-column) indentation))
            (forward-line 1)))
        (apply #'min indentation))
    (move-marker end nil)))

(defun my-evil-adjust-indent-afer-paste ()
  (interactive)

  (unless (memq last-command
                '(evil-paste-after
                  evil-paste-before))
    (error "Previous command was not a line-wise evil-paste: %s" last-command))

  (let* ((start (evil-get-marker ?\[))
         (end (evil-get-marker ?\]))
         (common (get-common-indent-in-region start end))
         (this
          (save-excursion
            (cond
             ((eq last-command 'evil-paste-before)
              (goto-char end)
              (forward-line 1))
             (t
              (goto-char start)
              (forward-line -1)))
            (skip-chars-forward " \t")
            (current-column))))
    (indent-rigidly start end (- this common))))