From: Jonathan Shin Hayase Date: Tue, 25 Jun 2019 21:00:20 +0000 (+0200) Subject: Highlight zsh glob flags and qualifiers in sh-mode X-Git-Tag: emacs-27.0.90~2228 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=955e3703736d3de5a3d0784f3b70a95132a4f7bd;p=emacs.git Highlight zsh glob flags and qualifiers in sh-mode * lisp/progmode/sh-script.el (sh-syntax-propertize-function): Add regexps to highlight zsh glob flags and alternate qualifiers without mistaking them for comments. (bug#19455). --- diff --git a/lisp/progmodes/sh-script.el b/lisp/progmodes/sh-script.el index 853a3500ee1..aa6ada96cd4 100644 --- a/lisp/progmodes/sh-script.el +++ b/lisp/progmodes/sh-script.el @@ -1141,7 +1141,13 @@ subshells can nest." ;; metacharacters. The list of special chars is taken from ;; the single-unix spec of the shell command language (under ;; `quoting') but with `$' removed. - ("\\(?:[^|&;<>()`\\\"' \t\n]\\|\\${\\)\\(#+\\)" (1 "_")) + ("\\(?:[^|&;<>(`\\\"' \t\n]\\|\\${\\)\\(#+\\)" (1 "_")) + ;; In addition, `#' at the beginning of closed parentheses + ;; does not start a comment if the parentheses are not isolated + ;; by metacharacters, excluding [()]. + ;; (e.g. `foo(#q/)' and `(#b)foo' in zsh) + ("[^|&;<>(`\\\"' \t\n](\\(#+\\)" (1 "_")) + ("(\\(#\\)[^)]+?)[^|&;<>)`\\\"' \t\n]" (1 "_")) ;; In a '...' the backslash is not escaping. ("\\(\\\\\\)'" (1 (sh-font-lock-backslash-quote))) ;; Make sure $@ and $? are correctly recognized as sexps.