]> gitweb.michael.orlitzky.com - nagios-mode.git/blobdiff - nagios-mode.el
Updated the last-opening-brace, last-closing-brace, and nagios-calculate-indent funct...
[nagios-mode.git] / nagios-mode.el
index 33a5742dce47478b8105706afbc9fa866e16b676..22535b548e35f702ff835440fb144949ac53eed6 100644 (file)
       (beginning-of-line)
 
       ;; Now insert indent-column spaces.
-      (while (< 0 indent-column)
-       (insert " ")
-       (setq indent-column (- indent-column 1)))
+      (let ((indent-remaining indent-column))
+       (while (< 0 indent-remaining)
+         (insert " ")
+         (setq indent-remaining (- indent-remaining 1)))
+      )
 
       ;; The text on the current line just moved left/right some amount;
       ;; call it text-delta. We want to move the point that same distance.
       ;; The point should never wind up to the left of indent-column, so
       ;; if it's there, move it over to indent-column.
       (if (< (point-offset) indent-column)
-         (goto-char indent-column)
+         (goto-char (+ (beginning-of-line-pos) indent-column))
       )
     )
   )
 )
 
 
+(defun char-is-commented(pos)
+  "True if the character at position pos is commented, nil otherwise."
+  (save-excursion
+    (goto-char pos)
+    (re-search-backward "#" (beginning-of-line-pos) t)
+  )
+)
+
+(defun char-is-commented-and-valid(pos)
+  "True if the character at position pos is commented and non-nil.
+   Nil otherwise."
+  (if (eq nil pos)
+      nil
+      (char-is-commented pos)
+  )
+)
+
 
 (defun last-opening-brace()
-  ;; Get the position of the last opening brace, with
-  ;; respect to the current point.
+  "Returns the position of the last opening brace, with
+   respect to the current point. Ignores braces which
+   are commented out."
   (save-excursion
     (let ((lob (re-search-backward "{" nil t)))
+
+      (while (char-is-commented-and-valid lob)
+       (goto-char lob)
+       (setq lob (re-search-backward "{" nil t))
+      )
+
       (if lob
          lob
          -1)
   )
 )
 
+
 (defun last-closing-brace()
-  ;; Get the position of the last closing brace, with
-  ;; respect to the current point.
+  "Get the position of the last closing brace, with
+   respect to the current point. Ignores braces which
+   are commented out."
   (save-excursion
     (let ((lcb (re-search-backward "}" nil t)))
+
+      (while (char-is-commented-and-valid lcb)
+       (goto-char lcb)
+       (setq lcb (re-search-backward "}" nil t))
+      )
+
       (if lcb
          lcb
          -1)
 (defun brace-on-line()
   ;; Is there a curly brace on this line?
   (save-excursion
+    (beginning-of-line)
     (re-search-forward "[{}]" (end-of-line-pos) t)
   )
 )
 
+
 (defun nagios-calculate-indent()
   "Calculate the level of indentation."
 
        )
 
     ;; Set the indentation level to 0 if we find either brace on this
-    ;; line.
-    (if (brace-on-line)
-       (setq indent 0)
+    ;; line and.
+    (if (and (brace-on-line) (not (char-is-commented (brace-on-line))))
+       0
+        indent
     )
-
-    indent
   )
 )