Package: emacs;
Reported by: Carlos Pita <carlosjosepita <at> gmail.com>
Date: Mon, 1 Sep 2014 14:19:02 UTC
Severity: minor
Found in version 24.3.93
Done: Stefan Kangas <stefankangas <at> gmail.com>
Bug is archived. No further changes may be made.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Carlos Pita <carlosjosepita <at> gmail.com> To: bug-gnu-emacs <at> gnu.org Cc: occitan <at> esperanto.org Subject: 24.3.93; Bash font lock: pretty inconsistent treatment of `` and $() Date: Mon, 01 Sep 2014 11:17:23 -0300
The syntax table treats ` as an string quote character, so `if [[ $x == x ]]; then echo x; else echo y fi` $(if [[ $x == x ]]; then echo x; else echo y fi) are highlighted in a very different way although they are semantically equivalent. Related to do above, I don't know whether the different highlighting of the first word in: $(if [[ $x == x ]]; then echo x; else echo y fi) if [[ $x == x ]]; then echo x; else echo y fi is intended or accidental, but it looks pretty weird. Moreover $([[ $x == x ]] && echo x) [[ $x == x ]] && echo x will highlight exactly equal, which is not consistent with the previous example. All in all, I would suggest to: 1) Highlight $(...) and `...` the same way. 2) Don't set the face of the first symbol following $( in any special way. Regards -- Carlos In GNU Emacs 24.3.93.1 (x86_64-unknown-linux-gnu, GTK+ Version 3.12.2) of 2014-08-27 on carlos Windowing system distributor `The X.Org Foundation', version 11.0.11600000 Configured using: `configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib --localstatedir=/var --with-x-toolkit=gtk3 --with-xft 'CFLAGS=-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4' CPPFLAGS=-D_FORTIFY_SOURCE=2 LDFLAGS=-Wl,-O1,--sort-common,--as-needed,-z,relro' Important settings: value of $LC_COLLATE: en_US.UTF-8 value of $LC_CTYPE: en_US.UTF-8 value of $LC_MESSAGES: en_US.UTF-8 value of $LC_MONETARY: en_US.UTF-8 value of $LC_NUMERIC: en_US.UTF-8 value of $LC_TIME: en_US.UTF-8 value of $LANG: en_US.UTF-8 locale-coding-system: utf-8-unix Major mode: Shell-script Minor modes in effect: shell-dirtrack-mode: t sh-electric-here-document-mode: t show-paren-mode: t eldoc-mode: t yas-global-mode: t yas-minor-mode: t ido-ubiquitous-mode: t global-auto-complete-mode: t auto-complete-mode: t ido-everywhere: t winner-mode: t tooltip-mode: t electric-indent-mode: t mouse-wheel-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t column-number-mode: t line-number-mode: t transient-mark-mode: t Recent input: ( ( x ) ) SPC & & S-SPC l s SPC " x " ) <return> $ ( l s <backspace> <backspace> [ [ SPC $ x SPC ] ] SPC & & SPC l s SPC " x " ) <return> $ ( <backspace> <backspace> <up> C-k C-y <return> <return> C-y C-a " C-e " <up> <up> <down> <down> C-a C-SPC <down> M-w <down> C-y <up> <right> <right> <right> C-d C-d C-d C-d ( ( <right> <right> <right> <right> <backspace> <backspace> <backspace> ) ) <up> <up> C-x C-s <down> <down> <down> <up> e <return> <backspace> <backspace> C-e <return> <up> <up> <up> <up> <up> <up> <up> C-SPC <down> <down> <down> <down> M-w <down> <return> <return> <up> <up> C-y <up> <up> <up> <up> C-v <down> <down> <down> <right> <up> <up> <up> <left> <left> C-SPC C-g <down> C-SPC <down> <down> <down> <right> <left> C-x r t " <return> <right> <right> <right> <right> <right> <right> <right> <right> <right> <right> <right> <right> <right> <right> <right> <right> <up> <up> <up> " <down> C-e " <down> C-e " <down> C-e " <down> <return> <return> <up> <up> <up> <up> <up> <up> <up> <up> C-SPC <down> M-w <down> <down> <down> <down> <down> <down> C-y <up> C-e <left> <left> <left> <left> <left> <backspace> <backspace> i f <right> <right> <right> <right> SPC f i <down> <up> <return> C-/ <left> <left> <right> <right> <backspace> <backspace> f i C-g <up> <down> <left> <left> <left> <right> <backspace> <return> <up> <down> M-^ <up> C-x C-s <down> <right> <right> <right> <right> <right> <right> <right> <right> <right> <right> <right> <right> <right> <right> <right> <right> <right> <right> <right> <right> ; <down> C-x C-s <down> <down> <up> <up> <up> C-SPC <down> M-w <down> <up> C-y C-a <up> C-d C-d ` C-e <backspace> ` <down> <down> M-x r e p o <tab> r t - e <tab> <return> Recent messages: [yas] Snippet 0 exited. Undo! Quit Saving file /tmp/test.sh... Wrote /tmp/test.sh Saving file /tmp/test.sh... Wrote /tmp/test.sh Mark activated Mark set Making completion list... Load-path shadows: ~/.emacs.d/lisp/rmail hides /usr/share/emacs/24.3.93/lisp/mail/rmail Features: (shadow emacsbug xterm descr-text tramp-cache tramp tramp-compat tramp-loaddefs trampver shell view woman man misearch multi-isearch cus-edit cus-start cus-load sh-script smie executable gnus-draft mailalias smtpmail sendmail oauth2 warnings json plstore nnir url-http url-gw url-auth url-queue face-remap org-colview diary-lib diary-loaddefs cal-iso org-agenda bookmark thingatpt tabify image-file org-capture pp rect vc-git org-element org-rmail org-mhe org-irc org-info org-gnus org-docview doc-view jka-compr image-mode dired org-bibtex bibtex org-bbdb org-w3m mule-util shr-color color shr browse-url gnus-dup sort smiley gnus-cite mm-archive mail-extr gnus-async gnus-bcklg qp gnus-ml disp-table gnus-topic nndraft nnmh nnfolder utf-7 epa-file epa derived epg gnutls network-stream starttls nnimap parse-time tls utf7 netrc gnus-agent gnus-srvr gnus-score score-mode nnvirtual gnus-msg gnus-art mm-uu mml2015 epg-config mm-view mml-smime smime dig nntp gnus-cache gnus-sum nnoo gnus-group gnus-undo nnmail mail-source google-contacts-message google-contacts xml url-cache url url-proxy url-privacy url-expand url-methods url-history url-cookie url-domsuf mailcap url-util url-parse auth-source eieio eieio-core password-cache url-vars google-oauth gnus-start gnus-spec gnus-int gnus-range message idna rfc822 mml mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev gmm-utils mailheader gnus-win gnus gnus-ems nnheader gnus-util mail-utils mm-util mail-prsvr wid-edit server flymake compile paredit paren eldoc cl-macs ob-python ob-R org byte-opt bytecomp byte-compile cconv org-macro org-footnote org-pcomplete pcomplete org-list org-faces org-entities time-date noutline outline easy-mmode org-version ob-emacs-lisp ob ob-tangle org-src ob-ref ob-lob ob-table ob-keys ob-exp ob-comint comint ansi-color ob-core ob-eval org-compat org-macs org-loaddefs format-spec find-func cal-menu calendar cal-loaddefs yasnippet help-mode ido-ubiquitous cl gv advice help-fns auto-complete-config auto-complete popup imenu-anywhere imenu ido windmove winner ring edmacro kmacro cl-loaddefs cl-lib info easymenu package wombat-theme tooltip electric uniquify ediff-hook vc-hooks lisp-float-type mwheel x-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list newcomment lisp-mode prog-mode register page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer nadvice loaddefs button faces cus-face macroexp files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote make-network-process dbusbind gfilenotify dynamic-setting system-font-setting font-render-setting move-toolbar gtk x-toolkit x multi-tty emacs) Memory information: ((conses 16 618712 75891) (symbols 48 57188 0) (miscs 40 3530 2211) (strings 32 220578 14464) (string-bytes 1 4703140) (vectors 16 51134) (vector-slots 8 1666305 45219) (floats 8 1010 1759) (intervals 56 28363 1382) (buffers 960 89) (heap 1024 65685 4604))
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.