Function: idlwave-calculate-indent

idlwave-calculate-indent is a byte-compiled function defined in idlwave.el.gz.

Signature

(idlwave-calculate-indent)

Documentation

Return appropriate indentation for current line as IDL code.

Source Code

;; Defined in /usr/src/emacs/lisp/obsolete/idlwave.el.gz
(defun idlwave-calculate-indent ()
  "Return appropriate indentation for current line as IDL code."
  (save-excursion
    (beginning-of-line)
    (cond
     ;; Check for beginning of unit - main (beginning of buffer), pro, or
     ;; function
     ((idlwave-look-at idlwave-begin-unit-reg)
      0)
     ;; Check for continuation line
     ((save-excursion
        (and (= (forward-line -1) 0)
             (idlwave-is-continuation-line)))
      (idlwave-calculate-cont-indent))
     ;; calculate indent based on previous and current statements
     (t (let* (beg-prev-pos
	       (the-indent
		;; calculate indent based on previous statement
		(save-excursion
		  (cond
		   ;; Beginning of file
		   ((prog1
			(idlwave-previous-statement)
		      (setq beg-prev-pos (point)))
		    0)
		   ;; Main block
		   ((idlwave-look-at idlwave-begin-unit-reg t)
		    (+ (idlwave-current-statement-indent)
		       idlwave-main-block-indent))
		   ;; Begin block
		   ((idlwave-look-at idlwave-begin-block-reg t)
		    (+ (idlwave-min-current-statement-indent)
		       idlwave-block-indent))
		   ;; End Block
		   ((idlwave-look-at idlwave-end-block-reg t)
		    (progn
		      ;; Match to the *beginning* of the block opener
		      (goto-char beg-prev-pos)
		      (idlwave-block-jump-out -1 'nomark) ; go to begin block
		      (idlwave-min-current-statement-indent)))
		      ;;		      idlwave-end-offset
		      ;;		      idlwave-block-indent))

		   ;; Default to current indent
		   ((idlwave-current-statement-indent))))))
          ;; adjust the indentation based on the current statement
          (cond
           ;; End block
           ((idlwave-look-at idlwave-end-block-reg)
	    (+ the-indent idlwave-end-offset))
           (the-indent)))))))