]> gitweb.factorcode.org Git - factor.git/commitdiff
Emacs factor-mode: small indentation fixes and cleanups.
authorJose A. Ortega Ruiz <jao@gnu.org>
Wed, 19 Nov 2008 09:37:54 +0000 (10:37 +0100)
committerJose A. Ortega Ruiz <jao@gnu.org>
Wed, 19 Nov 2008 09:37:54 +0000 (10:37 +0100)
misc/factor.el

index f75cb7f359092c175d643fea1c86f852e9997e95..170da980be39db9cc6f4f2d28e959529b6e08f13 100644 (file)
@@ -265,7 +265,7 @@ value from the existing code in the buffer."
 (defsubst factor--ppss-brackets-start ()
   (nth 1 (syntax-ppss)))
 
-(defsubst factor--line-indent (pos)
+(defsubst factor--indentation-at (pos)
   (save-excursion (goto-char pos) (current-indentation)))
 
 (defconst factor--regex-closing-paren "[])}]")
@@ -276,7 +276,8 @@ value from the existing code in the buffer."
   (= (- (point) (line-beginning-position)) (current-indentation)))
 
 (defconst factor--regex-single-liner
-  (format "^%s" (regexp-opt '("DEFER:" "GENERIC:" "IN:" "PRIVATE>" "<PRIVATE" "USE:"))))
+  (format "^%s" (regexp-opt '("DEFER:" "GENERIC:" "IN:"
+                              "PRIVATE>" "<PRIVATE" "SYMBOL:" "USE:"))))
 
 (defsubst factor--at-begin-of-def ()
   (looking-at "\\([^ ]\\|^\\)+:"))
@@ -302,6 +303,11 @@ value from the existing code in the buffer."
     (beginning-of-line)
     (re-search-forward factor--regex-constructor (line-end-position) t)))
 
+(defsubst factor--increased-indentation (&optional i)
+  (+ (or i (current-indentation)) factor-indent-width))
+(defsubst factor--decreased-indentation (&optional i)
+  (- (or i (current-indentation)) factor-indent-width))
+
 (defun factor--indent-in-brackets ()
   (save-excursion
     (beginning-of-line)
@@ -312,8 +318,8 @@ value from the existing code in the buffer."
       (let ((op (factor--ppss-brackets-start)))
         (when (> (line-number-at-pos) (line-number-at-pos op))
           (if (factor--at-closing-paren-p)
-              (factor--line-indent op)
-            (+ (factor--line-indent op) factor-indent-width)))))))
+              (factor--indentation-at op)
+            (factor--increased-indentation (factor--indentation-at op))))))))
 
 (defun factor--indent-definition ()
   (save-excursion
@@ -323,29 +329,26 @@ value from the existing code in the buffer."
 (defun factor--indent-setter-line ()
   (when (factor--at-setter-line)
     (save-excursion
-      (beginning-of-line)
-      (let ((indent (when (factor--at-constructor-line) (current-indentation))))
+      (let ((indent (and (factor--at-constructor-line) (current-indentation))))
         (while (not (or indent
                         (bobp)
                         (factor--at-begin-of-def)
                         (factor--at-end-of-def)))
           (if (factor--at-constructor-line)
-              (setq indent (+ (current-indentation) factor-indent-width))
+              (setq indent (factor--increased-indentation))
             (forward-line -1)))
         indent))))
 
 (defun factor--indent-continuation ()
   (save-excursion
     (forward-line -1)
-    (beginning-of-line)
-    (if (bobp) 0
-      (if (factor--looking-at-emptiness)
-          (factor--indent-continuation)
-        (if (or (factor--at-end-of-def) (factor--at-setter-line))
-            (- (current-indentation) factor-indent-width)
-          (if (factor--at-begin-of-def)
-              (+ (current-indentation) factor-indent-width)
-            (current-indentation)))))))
+    (while (and (not (bobp)) (factor--looking-at-emptiness))
+      (forward-line -1))
+    (if (or (factor--at-end-of-def) (factor--at-setter-line))
+        (factor--decreased-indentation)
+      (if (factor--at-begin-of-def)
+          (factor--increased-indentation)
+        (current-indentation)))))
 
 (defun factor--calculate-indentation ()
   "Calculate Factor indentation for line at point."