 	(cond ((bobp)	;must be first statement in block or exp
 	       (if (nth 1 state)	;within a paren exp
 		   (setq indent-amount (+ (slate-current-column)
-					  slate-indent-amount))
+					  slate-indent-increment))
 		 ;; we're top level
-		 (setq indent-amount slate-indent-amount)))
+		 (setq indent-amount slate-indent-increment)))
 	      ((equal (nth 0 state) 0) ;at top-level
 	       (beginning-of-line)
 	       (slate-forward-whitespace)

	       (slate-find-statement-begin)
	       (setq indent-amount (slate-current-column)))
	      ((equal (preceding-char) ?\()
	       (setq indent-amount slate-indent-amount))
	      ((memq (preceding-char) '(?| ?\[))
	       (backward-char)
	       (skip-chars-backward "^[")
	       (slate-backward-whitespace)
	       (backward-char)
	       (setq indent-amount (+ (slate-current-column)
				      slate-indent-amount)))
	      ((equal (preceding-char) ?:)
	       (beginning-of-line)
	       (slate-forward-whitespace)
	       (setq indent-amount (+ (slate-current-column)
				      slate-indent-amount)))
	      (t			;must be a statement continuation
	       (slate-find-statement-begin)
	       (setq indent-amount (+ (slate-current-column)
				      slate-indent-amount)))))
      indent-amount)))

(defun slate-indent-line ()
  "Sees if the current line is a new statement, in which case indent the same
as the previous statement, or determine by context. If not the start of a new
statement, the start of the previous line is used, except if that starts a
new line, in which case it indents by `slate-indent-amount'."
  (let (indent-amount is-keyword)
    (save-excursion
      (beginning-of-line)

	 ((or (eq (setq c (preceding-char)) ?\|)
	      (eq c ?\[))		; method header before
	  (skip-chars-backward "^\[")
	  (setq indent-amount slate-indent-increment))
	 ((eq c ?.)	; stmt end, indent like it
	  (slate-find-statement-begin)
	  (setq indent-amount (slate-current-column)))
