Package: emacs;
Reported by: Carlos Pita <carlosjosepita <at> gmail.com>
Date: Thu, 2 Aug 2018 00:15:02 UTC
Severity: minor
Found in version 26.1
To reply to this bug, email your comments to 32344 AT debbugs.gnu.org.
Toggle the display of automated, internal messages from the tracker.
View this report as an mbox folder, status mbox, maintainer mbox
bug-gnu-emacs <at> gnu.org:bug#32344; Package emacs.
(Thu, 02 Aug 2018 00:15:02 GMT) Full text and rfc822 format available.Carlos Pita <carlosjosepita <at> gmail.com>:bug-gnu-emacs <at> gnu.org.
(Thu, 02 Aug 2018 00:15:04 GMT) Full text and rfc822 format available.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 Subject: 26.1; Option to avoid comint highlighting input Date: Wed, 01 Aug 2018 21:14:35 -0300
Some modes (at least python.el) do their own input coloring according to
the major mode font locking rules. It's unfortunate that comint then
overwrites this coloring with comint-highlight-input face. Now, avoding
this is as simple as removing
(add-text-properties beg end
'(front-sticky t
font-lock-face comint-highlight-input))
from comint-send-input. The problem is that these 3 lines are buried
down into a long function and it's not possible to cleanly disable them,
except maybe by an around advice that redefines add-text-properties.
There is an even more unfortunate consequence of this: for multiline
inputs all but the last line will be fontified by
comint-highlight-input. I had reported that in
http://debbugs.gnu.org/cgi/bugreport.cgi?bug=32315 which now I'm going
to close since it's obviously a particular manifestation of comint
forcing the recoloring of previous inputs.
Please add a customization variable to make this behavior optional so
that modes that colorize input can keep their colors in previous inputs
and in previous lines of the current input.
---
in GNU Emacs 26.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.22.30)
of 2018-07-05 built on juergen
Windowing system distributor 'The X.Org Foundation', version 11.0.12000000
Recent messages:
Note: file is write protected
Mark saved where search started [2 times]
Mark set
kill-region: Buffer is read-only: #<buffer comint.el.gz>
Mark set [2 times]
Saved text until "'comint-output-filter-functions "")))))
"
Mark set [2 times]
comint-send-input
Mark activated
Configured using:
'configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib
--localstatedir=/var --with-x-toolkit=gtk3 --with-xft --with-modules
'CFLAGS=-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong
-fno-plt' CPPFLAGS=-D_FORTIFY_SOURCE=2
LDFLAGS=-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now'
Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GSETTINGS NOTIFY
ACL GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB TOOLKIT_SCROLL_BARS
GTK3 X11 MODULES THREADS LIBSYSTEMD LCMS2
Important settings:
value of $LANG: en_US.UTF-8
locale-coding-system: utf-8-unix
Major mode: Lisp Interaction
Minor modes in effect:
display-line-numbers-mode: t
pdf-occur-global-minor-mode: t
flymake-mode: t
diff-auto-refine-mode: t
pyvenv-mode: t
shell-dirtrack-mode: t
xclip-mode: t
winner-mode: t
show-paren-mode: t
ido-ubiquitous-mode: t
ido-everywhere: t
global-company-mode: t
company-mode: t
tooltip-mode: t
global-eldoc-mode: t
eldoc-mode: t
electric-indent-mode: t
mouse-wheel-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
Load-path shadows:
None found.
Features:
(shadow sort mail-extr emacsbug message rmc puny rfc822 mml mml-sec epa
derived epg mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev
gmm-utils mailheader sendmail crm edebug completion
semantic/wisent/python semantic/db-mode semantic/decorate/include
semantic/db-find semantic/db-ref semantic/db eieio-base
semantic/decorate/mode semantic/decorate semantic/format semantic/tag-ls
semantic/ctxt semantic/dep semantic/find semantic/wisent/python-wy rx
rect eieio-opt speedbar sb-image ezimage dframe autoload lisp-mnt
dabbrev misearch multi-isearch cl-print debug tabify pulse vc-git
whitespace server display-line-numbers checkdoc pdf-occur ibuf-ext
ibuffer ibuffer-loaddefs tablist tablist-filter semantic/wisent/comp
semantic/wisent semantic/wisent/wisent semantic/util-modes semantic/util
semantic semantic/tag semantic/lex semantic/fw mode-local cedet dired
dired-loaddefs pdf-isearch let-alist pdf-misc imenu pdf-tools pdf-view
bookmark pp jka-compr pdf-cache pdf-info tq pdf-util image-mode
org-protocol org-element avl-tree generator org org-macro org-footnote
org-pcomplete org-list org-faces org-entities noutline outline
org-version ob-emacs-lisp ob ob-tangle org-src ob-ref ob-lob ob-table
ob-keys ob-exp ob-comint ob-core ob-eval org-compat org-macs
org-loaddefs find-func cal-menu calendar cal-loaddefs cl-extra yasnippet
elec-pair highlight-indentation flymake-proc flymake warnings help-fns
radix-tree help-mode elpy find-file-in-project ivy delsel colir color
ivy-overlay ffap thingatpt windmove diff-mode easy-mmode elpy-shell
pyvenv esh-var esh-io esh-cmd esh-opt esh-ext esh-proc esh-arg
esh-groups eshell esh-module esh-mode esh-util elpy-profile elpy-django
elpy-refactor subr-x python tramp-sh tramp tramp-compat tramp-loaddefs
trampver ucs-normalize shell pcomplete parse-time format-spec advice
json map grep compile comint ansi-color files-x doom-themes-org
doom-tomorrow-night-theme doom-themes doom-themes-common company-oddmuse
company-keywords company-etags etags xref project company-gtags
company-dabbrev-code company-dabbrev company-files company-capf
company-cmake company-xcode company-clang company-semantic company-eclim
company-template company-bbdb xclip winner ring paren
ido-completing-read+ memoize s cus-edit minibuf-eldef ido gnus nnheader
gnus-util rmail rmail-loaddefs rfc2047 rfc2045 ietf-drums time-date
mail-utils mm-util mail-prsvr wid-edit company edmacro kmacro pcase
cus-start cus-load finder-inf info package easymenu epg-config
url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs
eieio-loaddefs password-cache url-vars seq byte-opt gv bytecomp
byte-compile cconv cl-loaddefs cl-lib mule-util tooltip eldoc electric
uniquify ediff-hook vc-hooks lisp-float-type mwheel term/x-win x-win
term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list replace newcomment text-mode elisp-mode lisp-mode
prog-mode register page menu-bar rfn-eshadow isearch timer select
scroll-bar mouse jit-lock font-lock syntax facemenu font-core
term/tty-colors frame cl-generic cham georgian utf-8-lang misc-lang
vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932
hebrew greek romanian slovak czech european ethiopic indian cyrillic
chinese composite charscript charprop case-table epa-hook jka-cmpr-hook
help simple abbrev obarray minibuffer cl-preloaded 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 dbusbind inotify lcms2 dynamic-setting system-font-setting
font-render-setting move-toolbar gtk x-toolkit x multi-tty
make-network-process emacs)
Memory information:
((conses 16 1243861 76924)
(symbols 48 47660 1)
(miscs 40 15325 1716)
(strings 32 140100 3027)
(string-bytes 1 4040347)
(vectors 16 82572)
(vector-slots 8 2118926 159486)
(floats 8 586 699)
(intervals 56 11147 366)
(buffers 992 53))
bug-gnu-emacs <at> gnu.org:bug#32344; Package emacs.
(Thu, 02 Aug 2018 01:20:01 GMT) Full text and rfc822 format available.Message #8 received at 32344 <at> debbugs.gnu.org (full text, mbox):
From: Carlos Pita <carlosjosepita <at> gmail.com> To: 32344 <at> debbugs.gnu.org Date: Wed, 1 Aug 2018 22:19:13 -0300
Here is a workaround:
(advice-add 'comint-send-input
:around (lambda (f &rest args)
(when (eq major-mode 'inferior-python-mode)
(cl-letf (((symbol-function 'g)
(symbol-function 'add-text-properties))
((symbol-function 'add-text-properties)
(lambda (start end properties
&optional object)
(unless (eq (nth 3 properties)
'comint-highlight-input)
(g start end properties object)))))
(apply f args)))))
bug-gnu-emacs <at> gnu.org:bug#32344; Package emacs.
(Wed, 12 Sep 2018 17:05:01 GMT) Full text and rfc822 format available.Message #11 received at 32344 <at> debbugs.gnu.org (full text, mbox):
From: Carlos Pita <carlosjosepita <at> gmail.com> To: 32344 <at> debbugs.gnu.org Date: Wed, 12 Sep 2018 14:04:15 -0300
Recently I've had some exchange with elpy maintainer and he said he
would be glad to support full history fontification for python mode
but he didn't want to add my advice (its final version is quoted
below) to elpy in order to instrument comint-send-input, so for now we
just have a wiki-level DIY solution. Now, I fully understand his
concern, so is there any interest in adding this option to comint? It
seems quite simple a change and it will allow inferior modes to fully
colorize their history, which is a rather nice feature. In case there
is any interest I could submit a patch.
---
(advice-add 'comint-send-input
:around (lambda (f &rest args)
(if (eq major-mode 'inferior-python-mode)
(cl-letf ((g (symbol-function 'add-text-properties))
((symbol-function 'add-text-properties)
(lambda (start end properties
&optional object)
(unless (eq (nth 3 properties)
'comint-highlight-input)
(funcall g start end
properties object)))))
(apply f args))
(apply f args))))
bug-gnu-emacs <at> gnu.org:bug#32344; Package emacs.
(Mon, 17 Sep 2018 16:37:02 GMT) Full text and rfc822 format available.Message #14 received at 32344 <at> debbugs.gnu.org (full text, mbox):
From: Jörg Behrmann <behrmann <at> physik.fu-berlin.de> To: 32344 <at> debbugs.gnu.org Date: Mon, 17 Sep 2018 18:36:37 +0200
I have just tested your advice and, for me, it works wonderfully; a great quality of life improvement. I do hope you prepare a patch for upstream. If you have a final patch I will happily test it for you, but so far I haven't found any issues (in my usage). Could a general version of the advice check for a customisable group of inferior modes to do the proper fontification?
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.