;;; generic-x.el --- A collection of generic modes
-;; Copyright (C) 1997-1998, 2001-2014 Free Software Foundation, Inc.
+;; Copyright (C) 1997-1998, 2001-2016 Free Software Foundation, Inc.
;; Author: Peter Breton <pbreton@cs.umb.edu>
;; Created: Tue Oct 08 1996
;; Folding mode should use invisible text properties instead. -- Dave
;; Love]
;;
-;; From Anders Lindgren <andersl@csd.uu.se>
+;; From Anders Lindgren
;;
;; Problem summary: Wayne Adams has found a problem when using folding
;; mode in conjunction with font-lock for a mode defined in
(defconst generic-unix-modes
'(alias-generic-mode
+ ansible-inventory-generic-mode
etc-fstab-generic-mode
etc-modules-conf-generic-mode
etc-passwd-generic-mode
'((nil "^\\(alias\\|unalias\\)\\s-+\\([-a-zA-Z0-9_]+\\)" 2))))))
"Generic mode for C Shell alias files."))
+;; Ansible inventory files
+(when (memq 'ansible-inventory-generic-mode generic-extras-enable-list)
+
+(define-generic-mode ansible-inventory-generic-mode
+ '(?#)
+ nil
+ '(("^\\s-*\\(\\[.*\\]\\)" 1 font-lock-constant-face)
+ ("^\\s-*\\([^ \n\r]*\\)" 1 font-lock-function-name-face)
+ ;; Variable assignments must be x=y, so highlight as warning if
+ ;; the value is missing.
+ ("\\s-\\([^ =\n\r]+\\)[\n\r ]" 1 font-lock-warning-face)
+ ;; Variable assignments: x=y
+ ("\\([^ =\n\r]+\\)=\\([^ \n\r]*\\)"
+ (1 font-lock-variable-name-face)
+ (2 font-lock-keyword-face)))
+ '("inventory")
+ (list
+ (function
+ (lambda ()
+ (setq imenu-generic-expression
+ '((nil "^\\s-*\\[\\(.*\\)\\]" 1)
+ ("*Variables*" "\\s-+\\([^ =\n\r]+\\)=" 1))))))
+ "Generic mode for Ansible inventory files."))
+
;;; Windows RC files
;; Contributed by ACorreir@pervasive-sw.com (Alfred Correira)
(when (memq 'rc-generic-mode generic-extras-enable-list)
;;; comment-start-skip ""
)
;; (set-syntax-table rul-generic-mode-syntax-table)
- (setq font-lock-syntax-table rul-generic-mode-syntax-table))
+ (setq-local font-lock-syntax-table rul-generic-mode-syntax-table))
;; moved mode-definition behind defun-definition to be warning-free - 15.11.02/RSan
(define-generic-mode rul-generic-mode