 
 ;; Indentation and electric keys
 
-(defun* haml-indent-p ()
-  "Returns t if the current line can have lines nested beneath it."
-  (let ((attr-props (haml-parse-multiline-attr-hash)))
-    (when attr-props
-      (end-of-line)
-      (return-from haml-indent-p
-        (if (eq (char-before) ?,) (cdr (assq 'hash-indent attr-props))
-          (beginning-of-line)
-          (+ (cdr (assq 'indent attr-props)) haml-indent-offset)))))
+(defun haml-indent-p ()
+  "Returns true if the current line can have lines nested beneath it."
   (loop for opener in haml-block-openers
         if (looking-at opener) return t
         finally return nil))
-
-(defun* haml-parse-multiline-attr-hash ()
-  "Parses a multiline attribute hash, and returns
-an alist with the following keys:
-
-INDENT is the indentation of the line beginning the hash.
-
-HASH-INDENT is the indentation of the first character
-within the attribute hash.
-
-POINT is the character position at the beginning of the line
-beginning the hash."
-  (save-excursion
-    (while t
-      (beginning-of-line)
-      (if (looking-at "^ *\\(?:[.#%][a-z0-9_:\\-]+\\)+{")
-          (progn
-            (goto-char (- (match-end 0) 1))
-            (haml-limited-forward-sexp (save-excursion (end-of-line) (point)))
-            (return-from haml-parse-multiline-attr-hash
-              (if (eq (char-before) ?,)
-                  `((indent . ,(current-indentation))
-                    (hash-indent . ,(- (match-end 0) (match-beginning 0)))
-                    (point . ,(match-beginning 0)))
-                nil)))
-        (forward-line -1)
-        (end-of-line)
-        (when (not (eq (char-before) ?,))
-          (return-from haml-parse-multiline-attr-hash nil))))))
 
 (defun haml-compute-indentation ()
   "Calculate the maximum sensible indentation for the current line."

    (setq end (point-marker))
    (goto-char start)
    (let (this-line-column current-column
          (next-line-column
           (if (and (equal last-command this-command) (/= (current-indentation) 0))
               (* (/ (- (current-indentation) 1) haml-indent-offset) haml-indent-offset)
             (haml-compute-indentation))))
      (while (< (point) end)
        (setq this-line-column next-line-column
              current-column (current-indentation))

          (bolp)
          (looking-at "^[ \t]+$"))
      (backward-delete-char arg)
    (let ((ci (current-column)))
      (beginning-of-line)
      (if haml-backspace-backdents-nesting
          (haml-mark-sexp-but-not-next-line)
        (set-mark (save-excursion (end-of-line) (point))))
      (haml-reindent-region-by (* (- arg) haml-indent-offset))
      (back-to-indentation)
      (pop-mark))))

(defun haml-kill-line-and-indent ()
  "Kill the current line, and re-indent all lines nested beneath it."
