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))))))