;; Author: Dave Love <fx@gnu.org>
;; Maintainer: Ted Zlatanov <tzz@lifelogs.com>
;; Keywords: languages
-;; Version: 1.1
+;; Version: 1.2
;; This file is part of GNU Emacs.
(regexp-opt cfengine3-defuns t)
"Regex to match the CFEngine 3.x defuns.")
- (defconst cfengine3-class-selector-regex "\\([[:alnum:]_().&|!]+\\)::")
+ (defconst cfengine3-class-selector-regex "\\([[:alnum:]_().&|!:]+\\)::")
(defconst cfengine3-category-regex "\\([[:alnum:]_]+\\):")
;; patterns.
(,(concat "\\<" cfengine3-defuns-regex "\\>"
"[ \t]+\\<\\([[:alnum:]_]+\\)\\>"
- "[ \t]+\\<\\([[:alnum:]_]+\\)"
+ "[ \t]+\\<\\([[:alnum:]_:]+\\)"
;; Optional parentheses with variable names inside.
"\\(?:(\\([^)]*\\))\\)?")
(1 font-lock-builtin-face)
1 font-lock-builtin-face)
;; Variables, including scope, e.g. module.var
- ("[@$](\\([[:alnum:]_.]+\\))" 1 font-lock-variable-name-face)
- ("[@$]{\\([[:alnum:]_.]+\\)}" 1 font-lock-variable-name-face)
+ ("[@$](\\([[:alnum:]_.:]+\\))" 1 font-lock-variable-name-face)
+ ("[@$]{\\([[:alnum:]_.:]+\\)}" 1 font-lock-variable-name-face)
;; Variable definitions.
("\\<\\([[:alnum:]_]+\\)[ \t]*=[ \t]*(" 1 font-lock-variable-name-face)
(indent-line-to (save-excursion
(forward-char)
(backward-sexp)
+ (move-beginning-of-line nil)
+ (skip-chars-forward " \t")
(current-column)))
(error nil)))
;; Inside a string and it starts before this line.
;; The syntax defaults seem OK to give reasonable word movement.
(modify-syntax-entry ?# "<" table)
(modify-syntax-entry ?\n ">#" table)
- (modify-syntax-entry ?\" "\"" table)
+ (modify-syntax-entry ?\" "\"" table) ; "string"
+ (modify-syntax-entry ?\' "\"" table) ; 'string'
;; Variable substitution.
(modify-syntax-entry ?$ "." table)
;; Doze path separators.
;; Shell commands can be quoted by single, double or back quotes.
;; It's debatable whether we should define string syntax, but it
;; should avoid potential confusion in some cases.
- (modify-syntax-entry ?\' "\"" cfengine2-mode-syntax-table)
(modify-syntax-entry ?\` "\"" cfengine2-mode-syntax-table)
(set (make-local-variable 'indent-line-function) #'cfengine2-indent-line)
(forward-line)))
(if v3 (cfengine3-mode) (cfengine2-mode))))
-(defalias 'cfengine-mode 'cfengine-auto-mode)
+(defalias 'cfengine-mode 'cfengine3-mode)
(provide 'cfengine3)
(provide 'cfengine)