[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#18379: 24.3.93; Bash font lock: pretty inconsistent treatment of ``
From: |
Carlos Pita |
Subject: |
bug#18379: 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))