Function: vhdl-template-configuration-spec
vhdl-template-configuration-spec is an interactive and byte-compiled
function defined in vhdl-mode.el.gz.
Signature
(vhdl-template-configuration-spec &optional OPTIONAL-USE)
Documentation
Insert a configuration specification.
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/vhdl-mode.el.gz
(t (vhdl-template-configuration-decl))))) ; otherwise
(defun vhdl-template-configuration-spec (&optional optional-use)
"Insert a configuration specification."
(interactive)
(let ((margin (current-indentation))
(start (point))
aspect position)
(vhdl-insert-keyword "FOR ")
(when (vhdl-template-field "instance names | OTHERS | ALL" " : "
t start (point))
(vhdl-template-field "component name" "\n")
(indent-to (+ margin vhdl-basic-offset))
(setq start (point))
(vhdl-insert-keyword "USE ")
(if (and optional-use
(not (setq aspect (vhdl-template-field
"[ENTITY | CONFIGURATION | OPEN]" " " t))))
(progn (delete-region start (point)) 'no-use)
(unless optional-use
(setq aspect (vhdl-template-field
"ENTITY | CONFIGURATION | OPEN" " ")))
(setq aspect (upcase (or aspect "")))
(cond ((equal aspect "ENTITY")
(vhdl-template-field "library name" "." nil nil nil nil
(vhdl-work-library))
(vhdl-template-field "entity name" "(")
(if (vhdl-template-field "[architecture name]" nil t)
(insert ")")
(delete-char -1))
(insert "\n")
(indent-to (+ margin (* 2 vhdl-basic-offset)))
(setq position (point))
(vhdl-insert-keyword "GENERIC ")
(when (vhdl-template-map position t t)
(insert "\n")
(indent-to (+ margin (* 2 vhdl-basic-offset))))
(setq position (point))
(vhdl-insert-keyword "PORT ")
(unless (vhdl-template-map position t t)
(delete-region (line-beginning-position) (point))
(delete-char -1))
(insert ";")
t)
((equal aspect "CONFIGURATION")
(vhdl-template-field "library name" "." nil nil nil nil
(vhdl-work-library))
(vhdl-template-field "configuration name" ";"))
(t (delete-char -1) (insert ";") t))))))