Function: vhdl-template-nature
vhdl-template-nature is an interactive and byte-compiled function
defined in vhdl-mode.el.gz.
Signature
(vhdl-template-nature)
Documentation
Insert a nature declaration.
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/vhdl-mode.el.gz
(defun vhdl-template-nature ()
"Insert a nature declaration."
(interactive)
(let ((start (point))
name mid-pos end-pos)
(vhdl-insert-keyword "NATURE ")
(when (setq name (vhdl-template-field "name" nil t start (point)))
(vhdl-insert-keyword " IS ")
(let ((definition
(upcase
(or (vhdl-template-field
"across type | ARRAY | RECORD")
""))))
(cond ((equal definition "")
(insert ";"))
((equal definition "ARRAY")
(delete-region (point) (progn (forward-word-strictly -1)
(point)))
(vhdl-template-array 'nature t))
((equal definition "RECORD")
(setq mid-pos (point-marker))
(delete-region (point) (progn (forward-word-strictly -1)
(point)))
(vhdl-template-record 'nature name t))
(t
(vhdl-insert-keyword " ACROSS ")
(vhdl-template-field "through type")
(vhdl-insert-keyword " THROUGH ")
(vhdl-template-field "reference name")
(vhdl-insert-keyword " REFERENCE;")))
(when mid-pos
(setq end-pos (point-marker))
(goto-char mid-pos)
(end-of-line))
(vhdl-comment-insert-inline)
(when end-pos (goto-char end-pos))))))