Function: vhdl-align-region-groups
vhdl-align-region-groups is an interactive and byte-compiled function
defined in vhdl-mode.el.gz.
Signature
(vhdl-align-region-groups BEG END &optional SPACING NO-MESSAGE NO-COMMENTS)
Documentation
Align region, treat groups of lines separately.
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/vhdl-mode.el.gz
(defun vhdl-align-region-groups (beg end &optional spacing
no-message no-comments)
"Align region, treat groups of lines separately."
(interactive "r\nP")
(save-excursion
(goto-char beg)
(beginning-of-line)
(setq beg (point))
(goto-char end)
(setq end (point-marker))
(untabify beg end)
(let ((orig (copy-marker beg))
pos
(vhdl--progress-reporter
(if no-message
;; Preserve a potential progress reporter from
;; when called from `vhdl-align-region' call.
vhdl--progress-reporter
(when vhdl-progress-interval
(make-progress-reporter "Aligning..." beg (copy-marker end))))))
(when (nth 0 vhdl-beautify-options)
(vhdl-fixup-whitespace-region beg end t))
(goto-char beg)
(if (not vhdl-align-groups)
;; align entire region
(progn (vhdl-align-region-1 beg end spacing)
(unless no-comments
(vhdl-align-inline-comment-region-1 beg end)))
;; align groups
(while (and (< beg end)
(re-search-forward vhdl-align-group-separate end t))
(setq pos (point-marker))
(vhdl-align-region-1 beg pos spacing)
(unless no-comments (vhdl-align-inline-comment-region-1 beg pos))
(when vhdl--progress-reporter
(progress-reporter-update vhdl--progress-reporter (point)))
(setq beg (1+ pos))
(goto-char beg))
;; align last group
(when (< beg end)
(vhdl-align-region-1 beg end spacing)
(unless no-comments (vhdl-align-inline-comment-region-1 beg end))
(when vhdl--progress-reporter
(progress-reporter-update vhdl--progress-reporter (point)))))
(when vhdl-indent-tabs-mode
(tabify orig end))
(unless no-message
(when vhdl--progress-reporter
(progress-reporter-done vhdl--progress-reporter))))))