Function: vhdl-template-variable

vhdl-template-variable is an interactive and byte-compiled function defined in vhdl-mode.el.gz.

Signature

(vhdl-template-variable)

Documentation

Insert a variable declaration.

Key Bindings

Source Code

;; Defined in /usr/src/emacs/lisp/progmodes/vhdl-mode.el.gz
(defun vhdl-template-variable ()
  "Insert a variable declaration."
  (interactive)
  (let ((start (point))
	(in-arglist (vhdl-in-argument-list-p)))
    (vhdl-prepare-search-2
     (if (or (save-excursion
	       (progn (vhdl-beginning-of-block)
		      (looking-at "\\s-*\\(\\w+\\s-*:\\s-*\\)?\\<\\(\\<function\\|procedure\\|process\\|procedural\\)\\>")))
	     (save-excursion (backward-word-strictly 1)
                             (looking-at "\\<shared\\>")))
	 (vhdl-insert-keyword "VARIABLE ")
       (if (vhdl-standard-p '87)
	   (error "ERROR:  Not within sequential block")
	 (vhdl-insert-keyword "SHARED VARIABLE "))))
    (when (vhdl-template-field "names" nil t start (point))
      (insert " : ")
      (when in-arglist (vhdl-template-field "[IN | OUT | INOUT]" " " t))
      (vhdl-template-field "type")
      (if in-arglist
	  (progn (insert ";")
		 (vhdl-comment-insert-inline))
	(let ((position (point)))
	  (insert " := ")
	  (unless (vhdl-template-field "[initialization]" nil t)
	    (delete-region position (point)))
	  (insert ";")
	  (vhdl-comment-insert-inline))))))