Function: vhdl-template-generic-list
vhdl-template-generic-list is a byte-compiled function defined in
vhdl-mode.el.gz.
Signature
(vhdl-template-generic-list OPTIONAL &optional NO-VALUE)
Documentation
Read from user a generic spec argument list.
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/vhdl-mode.el.gz
(defun vhdl-template-generic-list (optional &optional no-value)
"Read from user a generic spec argument list."
(let (margin
(start (point)))
(vhdl-insert-keyword "GENERIC (")
(setq margin (current-column))
(unless vhdl-argument-list-indent
(let ((position (point)))
(back-to-indentation)
(setq margin (+ (current-column) vhdl-basic-offset))
(goto-char position)
(insert "\n")
(indent-to margin)))
(let ((vhdl-generics (vhdl-template-field
(concat (and optional "[") "name"
(and no-value "s") (and optional "]"))
nil optional)))
(if (not vhdl-generics)
(if optional
(progn (vhdl-line-kill-entire) (end-of-line -0)
(unless vhdl-argument-list-indent
(vhdl-line-kill-entire) (end-of-line -0)))
(vhdl-template-undo start (point))
nil )
(insert " : ")
(let (semicolon-pos end-pos)
(while vhdl-generics
(vhdl-template-field "type")
(if no-value
(progn (setq semicolon-pos (point))
(insert ";"))
(insert " := ")
(unless (vhdl-template-field "[value]" nil t)
(delete-char -4))
(setq semicolon-pos (point))
(insert ";"))
(vhdl-comment-insert-inline)
(setq end-pos (point))
(insert "\n")
(indent-to margin)
(setq vhdl-generics (vhdl-template-field
(concat "[name" (and no-value "s") "]")
" : " t)))
(delete-region end-pos (point))
(goto-char semicolon-pos)
(insert ")")
(end-of-line)
(when vhdl-auto-align (vhdl-align-region-groups start (point) 1))
t)))))