Function: vhdl-port-paste-declaration
vhdl-port-paste-declaration is a byte-compiled function defined in
vhdl-mode.el.gz.
Signature
(vhdl-port-paste-declaration KIND &optional NO-INDENT)
Documentation
Paste as an entity or component declaration.
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/vhdl-mode.el.gz
(defun vhdl-port-paste-declaration (kind &optional no-indent)
"Paste as an entity or component declaration."
(unless no-indent (indent-according-to-mode))
(let ((margin (current-indentation))
(name (nth 0 vhdl-port-list)))
(vhdl-insert-keyword (if (eq kind 'entity) "ENTITY " "COMPONENT "))
(insert name)
(when (or (eq kind 'entity) (not (vhdl-standard-p '87)))
(vhdl-insert-keyword " IS"))
;; paste generic and port clause
(when (nth 1 vhdl-port-list)
(insert "\n")
(when (and (memq vhdl-insert-empty-lines '(unit all)) (eq kind 'entity))
(insert "\n"))
(indent-to (+ margin vhdl-basic-offset))
(vhdl-port-paste-generic (eq kind 'component)))
(when (nth 2 vhdl-port-list)
(insert "\n")
(when (and (memq vhdl-insert-empty-lines '(unit all))
(eq kind 'entity))
(insert "\n"))
(indent-to (+ margin vhdl-basic-offset)))
(vhdl-port-paste-port)
(insert "\n")
(when (and (memq vhdl-insert-empty-lines '(unit all)) (eq kind 'entity))
(insert "\n"))
(indent-to margin)
(vhdl-insert-keyword "END")
(if (eq kind 'entity)
(progn
(unless (vhdl-standard-p '87) (vhdl-insert-keyword " ENTITY"))
(insert " " name))
(vhdl-insert-keyword " COMPONENT")
(unless (vhdl-standard-p '87) (insert " " name)))
(insert ";")))