 
           (let ((w (zomp-symbol-at-point)))
             (cond ((looking-at "\\*")
-                   (setq left (- left 1)))
-                  ;; ((member w zomp-indent-keywords)
-                  ;;  (setq left (+ left 2)))
-                  ((looking-at "end}")
-                   (setq left (+ left 2)))
-                  ))
+                   (setq left (- left 1)))))
 
           (end-of-line)
           (when (looking-back " *:")
             (setq left (+ left 2)))
-          (when (looking-back " *[+-*/=><&|,(]")
+          ;; lines ending with operator or '(' probably continue in the next
+          ;; line, double-indent them (to keep visually seperate from indent
+          ;; block)
+          (when (and (looking-back "[+-*/=><&|,(] +")
+                     ;; don't double-indent after comments
+                     (not (looking-back "\\*/ *")))
             (setq left (+ left 4)))
           (next-line)
-
-          ;; (let* ((line-start (progn (beginning-of-line) (point)))
-          ;;       (line-end (progn (end-of-line) (point)))
-          ;;       (open-parens (how-many "[({]" line-start line-end))
-          ;;       (closing-parens (how-many "[)}]" line-start line-end)))
-          ;;   (cond ((> open-parens closing-parens) (setq left (+ left 2)))
-          ;;         ((< open-parens closing-parens) (setq left (- left 2))))
-          ;;   (next-line))))
           ))
 
       (beginning-of-line)


    (when (and (not isStar)
               (not isComment)
               ;; (member wordAtLineBeginning zomp-indent-keywords)
               startOfIndentBlock
               (not (and endAtNextLine (>= nextLineIndentDiff 0)))

    ;; place cursor correctly on newline-and-indent
    (when (equal (current-column) 0)
      (back-to-indentation))
    ))

(defun zomp-indent-current ()
