From: Ted Zlatanov Date: Mon, 11 Mar 2013 17:17:13 +0000 (-0400) Subject: * progmodes/cfengine.el: Update for CFEngine 3.4.2 and higher. X-Git-Tag: emacs-24.3.90~173^2^2~42^2~45^2~387^2~2026^2~568^2~40 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=526cb962b51b055519209bb15fd36e0e3d22518d;p=emacs.git * progmodes/cfengine.el: Update for CFEngine 3.4.2 and higher. --- diff --git a/lisp/progmodes/cfengine.el b/lisp/progmodes/cfengine.el index 6fb9caa1a42..3e022c01f4a 100644 --- a/lisp/progmodes/cfengine.el +++ b/lisp/progmodes/cfengine.el @@ -5,7 +5,7 @@ ;; Author: Dave Love ;; Maintainer: Ted Zlatanov ;; Keywords: languages -;; Version: 1.1 +;; Version: 1.2 ;; This file is part of GNU Emacs. @@ -94,7 +94,7 @@ This includes those for cfservd as well as cfagent.") (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:]_]+\\):") @@ -127,7 +127,7 @@ This includes those for cfservd as well as cfagent.") ;; patterns. (,(concat "\\<" cfengine3-defuns-regex "\\>" "[ \t]+\\<\\([[:alnum:]_]+\\)\\>" - "[ \t]+\\<\\([[:alnum:]_]+\\)" + "[ \t]+\\<\\([[:alnum:]_:]+\\)" ;; Optional parentheses with variable names inside. "\\(?:(\\([^)]*\\))\\)?") (1 font-lock-builtin-face) @@ -144,8 +144,8 @@ This includes those for cfservd as well as cfagent.") 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) @@ -317,6 +317,8 @@ Intended as the value of `indent-line-function'." (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. @@ -436,7 +438,8 @@ Intended as the value of `indent-line-function'." ;; 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. @@ -475,7 +478,6 @@ to the action header." ;; 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) @@ -505,7 +507,7 @@ on the buffer contents" (forward-line))) (if v3 (cfengine3-mode) (cfengine2-mode)))) -(defalias 'cfengine-mode 'cfengine-auto-mode) +(defalias 'cfengine-mode 'cfengine3-mode) (provide 'cfengine3) (provide 'cfengine)