]> gitweb.michael.orlitzky.com - nagios-mode.git/blobdiff - nagios-mode.el
README: minor wording tweak.
[nagios-mode.git] / nagios-mode.el
index 7ee729f50a46c008311939ac84008f410eefaac4..79dfb50f969a5037fb1156a3cd5ad2a32c7d96d9 100644 (file)
 
       ;; Now insert indent-column spaces.
       (let ((indent-remaining indent-column))
-       (while (< 0 indent-remaining)
-         (insert " ")
-         (setq indent-remaining (- indent-remaining 1)))
+        (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.
       (let ((text-delta (- (nagios-first-char-offset) orig-first-char-offset)))
-       (goto-char (+ orig-point text-delta))
+        (goto-char (+ orig-point text-delta))
       )
 
       ;; The point should never wind up to the left of indent-column, so
       ;; if it's there, move it over to indent-column.
       (if (< (nagios-point-offset) indent-column)
-         (goto-char (+ (nagios-beginning-of-line-pos) indent-column))
+          (goto-char (+ (nagios-beginning-of-line-pos) indent-column))
       )
     )
   )
   "True if the character at position pos is commented, nil otherwise."
   (save-excursion
     (goto-char pos)
-    (re-search-backward "#" (nagios-beginning-of-line-pos) t)
+    (re-search-backward "\\(#\\|;\\)" (nagios-beginning-of-line-pos) t)
   )
 )
 
     (let ((lob (re-search-backward "{" nil t)))
 
       (while (nagios-char-is-commented-and-valid lob)
-       (goto-char lob)
-       (setq lob (re-search-backward "{" nil t))
+        (goto-char lob)
+        (setq lob (re-search-backward "{" nil t))
       )
 
       (if lob
-         lob
-         -1)
+          lob
+          -1)
     )
   )
 )
     (let ((lcb (re-search-backward "}" nil t)))
 
       (while (nagios-char-is-commented-and-valid lcb)
-       (goto-char lcb)
-       (setq lcb (re-search-backward "}" nil t))
+        (goto-char lcb)
+        (setq lcb (re-search-backward "}" nil t))
       )
 
       (if lcb
-         lcb
-         -1)
+          lcb
+          -1)
     )
   )
 )
   ;; Initialize the indent variable to either nagios-indent-level
   ;; or 0 depending on whether or not we're in a block.
   (let ((indent (if (nagios-in-block)
-                   nagios-indent-level
-                   0)
-       )
+                    nagios-indent-level
+                    0)
+        )
        )
 
     ;; Set the indentation level to 0 if we find either brace on this
     ;; line and.
     (if (and (nagios-brace-on-line)
-            (not (nagios-char-is-commented (nagios-brace-on-line))))
-       0
+             (not (nagios-char-is-commented (nagios-brace-on-line))))
+        0
         indent
     )
   )
     (read-kbd-macro "}")
     'nagios-insert-right-brace-and-indent)
   )
-  
+
 
 
 (defconst nagios-directives
     (concat "^[ \t\r\n]*"
 
     (regexp-opt
-     '("active_checks_enabled" "address" "alias" "check_command"
-       "check_freshness" "check_interval" "check_period" "checks_enabled"
-       "command_line" "command_name" "contactgroups" "contact_groups"
-       "contactgroup_members" "contact_name" "contactgroup_name" "contacts"
-       "dependent_host_name" "dependent_service_description" "email"
-       "event_handler" "event_handler_enabled" "execution_failure_criteria"
-       "failure_prediction_enabled" "first_notification"
-       "first_notification_delay" "flap_detection_enabled" "freshness_threshold"
-       "friday" "high_flap_threshold" "host_name" "host_notification_commands"
-       "host_notification_options" "host_notification_period"
-       "host_notifications_enabled" "hostgroup_name" "hostgroups"
-       "is_volatile" "last_notification" "low_flap_threshold"
-       "max_check_attempts" "members" "monday" "normal_check_interval"
-       "notes" "notification_failure_criteria"
-       "notification_interval" "notification_options"
-       "notification_period" "notifications_enabled"
-       "obsess_over_service" "pager" "parallelize_check"
-       "parents" "passive_checks_enabled"
-       "process_perf_data" "retain_nonstatus_information"
-       "retain_status_information" "retry_check_interval"
-       "retry_interval" "saturday" "service_description"
-       "service_notification_commands" "service_notification_options"
-       "service_notification_period" "service_notifications_enabled"
-       "servicegroup_name" "stalking_options"
-       "sunday" "thursday" "timeperiod_name" "tuesday" "wednesday") t)
+     '("action_url"
+       "active_checks_enabled"
+       "address"
+       "alias"
+       "can_submit_commands"
+       "check_command"
+       "check_freshness"
+       "check_interval"
+       "check_period"
+       "checks_enabled"
+       "command_line"
+       "command_name"
+       "contact_groups"
+       "contact_name"
+       "contactgroup_members"
+       "contactgroup_name"
+       "contactgroups"
+       "contacts"
+       "dependency_period"
+       "dependent_description"
+       "dependent_host"
+       "dependent_host_name"
+       "dependent_hostgroup"
+       "dependent_hostgroup_name"
+       "dependent_hostgroups"
+       "dependent_service_description"
+       "dependent_servicegroup"
+       "dependent_servicegroup_name"
+       "dependent_servicegroups"
+       "description"
+       "display_name"
+       "email"
+       "escalation_options"
+       "escalation_period"
+       "event_handler"
+       "event_handler_enabled"
+       "exclude"
+       "execution_failure_criteria"
+       "execution_failure_options"
+       "failure_prediction_enabled"
+       "failure_prediction_options"
+       "first_notification"
+       "first_notification_delay"
+       "flap_detection_enabled"
+       "flap_detection_options"
+       "freshness_threshold"
+       "friday"
+       "high_flap_threshold"
+       "host"
+       "host_groups"
+       "host_name"
+       "host_notification_commands"
+       "host_notification_options"
+       "host_notification_period"
+       "host_notifications_enabled"
+       "hostgroup"
+       "hostgroup_members"
+       "hostgroup_name"
+       "hostgroups"
+       "hosts"
+       "hourly_value"
+       "icon_image"
+       "icon_image_alt"
+       "importance"
+       "inherits_parent"
+       "initial_state"
+       "is_volatile"
+       "last_notification"
+       "low_flap_threshold"
+       "master_description"
+       "master_host"
+       "master_host_name"
+       "master_service_description"
+       "max_check_attempts"
+       "members"
+       "minimum_importance"
+       "minimum_value"
+       "monday"
+       "normal_check_interval"
+       "notes"
+       "notes_url"
+       "notification_failure_criteria"
+       "notification_failure_options"
+       "notification_interval"
+       "notification_options"
+       "notification_period"
+       "notifications_enabled"
+       "obsess"
+       "obsess_over_host"
+       "obsess_over_service"
+       "pager"
+       "parallelize_check"
+       "parents"
+       "passive_checks_enabled"
+       "process_perf_data"
+       "retain_nonstatus_information"
+       "retain_status_information"
+       "retry_check_interval"
+       "retry_interval"
+       "saturday"
+       "service_description"
+       "service_groups"
+       "service_notification_commands"
+       "service_notification_options"
+       "service_notification_period"
+       "service_notifications_enabled"
+       "servicegroup"
+       "servicegroup_members"
+       "servicegroup_name"
+       "servicegroups"
+       "stalking_options"
+       "statusmap_image"
+       "sunday"
+       "thursday"
+       "timeperiod_name"
+       "tuesday"
+       "vrml_image"
+       "wednesday") t)
 
     "[ \r\n\t]+")
     )
        "$HOSTACTIONURL$"
        "$HOSTADDRESS$"
        "$HOSTALIAS$"
+       "$HOSTANDSERVICESIMPORTANCE$"
        "$HOSTATTEMPT$"
        "$HOSTCHECKCOMMAND$"
        "$HOSTCHECKTYPE$"
        "$HOSTEXECUTIONTIME$"
        "$HOSTGROUPACTIONURL$"
        "$HOSTGROUPALIAS$"
+       "$HOSTGROUPMEMBERADDRESSES$"
        "$HOSTGROUPMEMBERS$"
        "$HOSTGROUPNAME$"
        "$HOSTGROUPNAMES$"
        "$HOSTGROUPNOTES$"
        "$HOSTGROUPNOTESURL$"
+       "$HOSTIMPORTANCE$"
+       "$HOSTINFOURL$"
        "$HOSTLATENCY$"
        "$HOSTNAME$"
        "$HOSTNOTES$"
        "$HOSTNOTESURL$"
+       "$HOSTNOTIFICATIONENABLED$"
        "$HOSTNOTIFICATIONID$"
        "$HOSTNOTIFICATIONNUMBER$"
+       "$HOSTNOTIFICATIONPERIOD$"
        "$HOSTOUTPUT$"
        "$HOSTPERCENTCHANGE$"
        "$HOSTPERFDATA$"
        "$SERVICEGROUPNAMES$"
        "$SERVICEGROUPNOTES$"
        "$SERVICEGROUPNOTESURL$"
+       "$SERVICEIMPORTANCE$"
+       "$SERVICEINFOURL$"
        "$SERVICEISVOLATILE$"
        "$SERVICELATENCY$"
        "$SERVICENOTES$"
        "$SERVICENOTESURL$"
+       "$SERVICENOTIFICATIONENABLED$"
        "$SERVICENOTIFICATIONID$"
        "$SERVICENOTIFICATIONNUMBER$"
+       "$SERVICENOTIFICATIONPERIOD$"
        "$SERVICEOUTPUT$"
        "$SERVICEPERCENTCHANGE$"
        "$SERVICEPERFDATA$"
 
     (concat "^[ \t\r\n]*"
 
-           "\\(" ;; Stick parenthesis around whatever comes out
-                 ;; of regexp-opt. We use this to match a
-                 ;; subexpression during font-lock.
-           (regexp-opt
-            '("define command"
-              "define contact"
-              "define contactgroup"
-              "define host"
-              "define hostdependency"
-              "define hostescalation"
-              "define hostextinfo"
-              "define hostgroup"
-              "define hostgroupescalation"
-              "define null"
-              "define service"
-              "define servicedependency"
-              "define serviceescalation"
-              "define serviceextinfo"
-              "define servicegroup"
-              "define timeperiod"))
-                 ;; This closes the parentheses that we opened
-           "\\)" ;; before regexp-opt.
-
-           ;; These can be "terminated" by either an opening curly
-           ;; brace, or a space.
-           "\\({\\| \\)")
+            "\\(" ;; Stick parenthesis around whatever comes out
+                  ;; of regexp-opt. We use this to match a
+                  ;; subexpression during font-lock.
+            (regexp-opt
+             '("define command"
+               "define contact"
+               "define contactgroup"
+               "define host"
+               "define hostdependency"
+               "define hostescalation"
+               "define hostextinfo"
+               "define hostgroup"
+               "define null"
+               "define service"
+               "define servicedependency"
+               "define serviceescalation"
+               "define serviceextinfo"
+               "define servicegroup"
+               "define timeperiod"))
+                  ;; This closes the parentheses that we opened
+            "\\)" ;; before regexp-opt.
+
+            ;; These can be "terminated" by either an opening curly
+            ;; brace, or a space.
+            "\\({\\| \\)")
     )
   )
 
   (make-local-variable 'comment-start-skip)
   (make-local-variable 'comment-end)
   (make-local-variable 'indent-line-function)
-  (make-local-variable 'syntax-begin-function)
 
   (set-syntax-table nagios-mode-syntax-table)
-  
+
   (setq mode-name             "nagios"
-       major-mode            'nagios-mode
-       indent-line-function  'nagios-indent-line
-       font-lock-defaults    '(nagios-font-lock-keywords)
-       comment-start         "#"
-       comment-start-skip    "#\|; +"
-       comment-end           ""
-       
-       ;; Since comments and strings do not span multiple lines,
-       ;; the syntax parser can safely start parsing at the beginning
-       ;; of any line.
-       syntax-begin-function 'beginning-of-line
-       )
+        major-mode            'nagios-mode
+        indent-line-function  'nagios-indent-line
+        font-lock-defaults    '(nagios-font-lock-keywords)
+        comment-start         "#"
+        comment-start-skip    "#\|; +"
+        comment-end           ""
+        )
 
   ;; Keyboard Mapping
   (use-local-map nagios-mode-map)