 (defun slate-previous-nonblank-line ()
   (forward-line -1)
   (while (and (not (bobp))
-	      (looking-at "^[ \t]*$"))
+          (looking-at "^[ \t]*$"))
     (forward-line -1)))
 
 (defun slate-in-string ()

  (let (col)
    ;; round up, with overflow
    (setq col (* (/ (+ (current-column) slate-indent-increment)
		    slate-indent-increment)
		 slate-indent-increment))
    (indent-to-column col)))

;; Higher-level utilities calling `slate-mode' functions.

a list. Note that the first argument must be found by searching backwards."
  (save-excursion
    (let (start selector done ch arg-names
        (parse-sexp-ignore-comments t))
      (skip-chars-backward (concat "^" "\"" slate-whitespace-chars))
      (setq start (point))
      (if (looking-at slate-name-regexp)
      (progn            ;maybe unary, maybe keyword
        (skip-chars-forward slate-name-chars)
        (if (equal (following-char) ?:)    ;keyword?
        (progn
          (forward-char 1)
          (setq selector (buffer-substring start (point)))
          (setq start (point))
          (while (not done)
            (slate-forward-whitespace)
            (setq ch (following-char))
            (cond ((memq ch '(?@ ?\] ?\) ?.))
               (setq done t))
              ((equal ch ?:)
               (forward-char 1)
               (setq selector
                 (concat selector
                     (buffer-substring start (point)))))
              (t
               (setq start (point))
               (slate-forward-sexp 1)))))
          (setq selector (buffer-substring start (point)))))
    (skip-chars-forward (concat "^" ?\" slate-whitespace-chars))
    (setq selector (buffer-substring start (point))))
      selector)))

;; Imenu Support
