Function: vhdl-template-selected-signal-asst
vhdl-template-selected-signal-asst is an interactive and byte-compiled
function defined in vhdl-mode.el.gz.
Signature
(vhdl-template-selected-signal-asst)
Documentation
Insert a selected signal assignment.
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/vhdl-mode.el.gz
(defun vhdl-template-selected-signal-asst ()
"Insert a selected signal assignment."
(interactive)
(let ((margin (current-indentation))
(start (point))
(choices t))
(let ((position (point)))
(vhdl-insert-keyword " SELECT ")
(goto-char position))
(vhdl-insert-keyword "WITH ")
(when (vhdl-template-field "selector expression"
nil t start (+ (point) 7))
(forward-word-strictly 1)
(delete-char 1)
(insert "\n")
(indent-to (+ margin vhdl-basic-offset))
(vhdl-template-field "target signal" " <= ")
(insert "\n")
(indent-to (+ margin vhdl-basic-offset))
(vhdl-template-field "waveform")
(vhdl-insert-keyword " WHEN ")
(vhdl-template-field "choices" ",")
(insert "\n")
(indent-to (+ margin vhdl-basic-offset))
(while (and choices (vhdl-template-field "[waveform]" nil t))
(vhdl-insert-keyword " WHEN ")
(if (setq choices (vhdl-template-field "[choices]" "," t))
(progn (insert "\n") (indent-to (+ margin vhdl-basic-offset)))
(vhdl-insert-keyword "OTHERS")))
(when choices
(fixup-whitespace)
(delete-char -2))
(insert ";")
(when vhdl-auto-align (vhdl-align-region-groups start (point) 1)))))