# -*- mode: snippet -*-
# contributor: sh-ow <sh-ow@users.noreply.github.com>
# name: commentblock
# key: cob
# --
${1:$(let* ((col (current-column))
           (str "")
           (lastcom (substring (yas-trimmed-comment-start) -1))
           (start (yas-trimmed-comment-start))
           (end (yas-trimmed-comment-end))
           (over (- (+ (string-width yas-text) (length start) (length end) col) 77)))
         (while (< (length str) (+ (- 79 (length start) (length end) col) (if (> over 0) over 0)))
                (setq str (concat str lastcom)))
       (concat start str end))}
${1:$(let* ((col (current-column))
           (str "")
           (start (yas-trimmed-comment-start))
           (end (yas-trimmed-comment-end)))
         (while (< (length str) (ffloor (/ (- 78.0 (+ col (length start) (string-width yas-text) (length end))) 2.0)))
                (setq str (concat str " ")))
        (concat start str))} ${1:comment} ${1:$(let* ((col (current-column))
                                                     (str "")
                                                     (start (yas-trimmed-comment-start))
                                                     (end (yas-trimmed-comment-end)))
                                                   (while (< (length str) (- 79.0 (if (eq (mod (string-width yas-text) 2) 1) (- col 1) col) (length end)))
                                                          (setq str (concat str " ")))
                                                 (concat str end))}
${1:$(let* ((col (current-column))
           (str "")
           (lastcom (substring (yas-trimmed-comment-start) -1))
           (start (yas-trimmed-comment-start))
           (end (yas-trimmed-comment-end))
           (over (- (+ (string-width yas-text) (length start) (length end) col) 77)))
         (while (< (length str) (+ (- 79 (length start) (length end) col) (if (> over 0) over 0)))
                (setq str (concat str lastcom)))
       (concat start str end))}$0