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)))))))