* bug#36423: 27.0.50; electric-pair-mode not working properly depending of file content.
@ 2019-06-28 19:01 Ergus
2019-07-02 13:36 ` Alan Mackenzie
0 siblings, 1 reply; 6+ messages in thread
From: Ergus @ 2019-06-28 19:01 UTC (permalink / raw)
To: 36423
In electric-pair-mode there are some files where inserting one " does
not insert the pair ". But on the other hand when I try to insert a
second " it inserts a pair for it so it ends with """.
It does not happen when the file is empty but for me it happens with
this file content.
---------------------------------------
#ifndef _SparseMatrix_functions_hpp_
#define _SparseMatrix_functions_hpp_
#endif
---------------------------------------
The behavior changes sometimes inserting a new line instead of the first
", or just not inserting any pair at all. This looks like an issue in a
backward search for a pair or something. Because it changes if withing
the define region or not.
When a region is active there is not issue and the quotes are inserted
in pairs around the region as expected.
This was reproduced with:
emacs -Q file.hpp
M-x electric-pair-modes
In GNU Emacs 27.0.50 (build 4, x86_64-pc-linux-gnu, GTK+ Version 3.24.9)
of 2019-06-28 built on Ergus
Repository revision: cb182ce6f8d2fa6e1509252fecc2b0e504e36d63
Repository branch: master
System Description: Arch Linux
Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.
main.hpp has auto save data; consider M-x recover-this-file
Electric-Pair mode enabled
funcall-interactively: End of buffer [3 times]
C-x <up> is undefined
user-error: End of history; no default available
Configured using:
'configure --prefix=/home/ergo/PhD/emacs/emacs.install_arch
--with-mailutils --with-x-toolkit=gtk3 --with-xft --with-modules'
Configured features:
XPM JPEG TIFF GIF PNG RSVG SOUND GPM DBUS GSETTINGS GLIB NOTIFY INOTIFY
ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE HARFBUZZ M17N_FLT LIBOTF XFT ZLIB
TOOLKIT_SCROLL_BARS GTK3 X11 XDBE XIM MODULES THREADS LIBSYSTEMD JSON
PDUMPER LCMS2 GMP
Important settings:
value of $LC_CTYPE: en_US.UTF-8
value of $LANG: en_US.UTF-8
locale-coding-system: utf-8-unix
Major mode: C++//l
Minor modes in effect:
electric-pair-mode: t
tooltip-mode: t
global-eldoc-mode: t
electric-indent-mode: t
mouse-wheel-mode: t
tool-bar-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
line-number-mode: t
transient-mark-mode: t
abbrev-mode: t
Load-path shadows:
None found.
Features:
(shadow sort mail-extr emacsbug message rmc puny dired dired-loaddefs
format-spec rfc822 mml mml-sec password-cache epa derived epg epg-config
gnus-util rmail rmail-loaddefs text-property-search time-date seq
byte-opt gv bytecomp byte-compile cconv mm-decode mm-bodies mm-encode
mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047
rfc2045 ietf-drums mm-util mail-prsvr mail-utils cus-start cus-load
cc-mode cc-fonts easymenu cc-guess cc-menus cc-cmds cc-styles cc-align
cc-engine cc-vars cc-defs cl-loaddefs cl-lib term/tmux term/xterm xterm
elec-pair 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 threads 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 77664 8509)
(symbols 48 9388 1)
(strings 32 23186 1893)
(string-bytes 1 836866)
(vectors 16 10470)
(vector-slots 8 105810 5838)
(floats 8 25 245)
(intervals 56 215 0)
(buffers 992 12))
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#36423: 27.0.50; electric-pair-mode not working properly depending of file content.
2019-06-28 19:01 bug#36423: 27.0.50; electric-pair-mode not working properly depending of file content Ergus
@ 2019-07-02 13:36 ` Alan Mackenzie
2019-07-03 19:32 ` Ergus
0 siblings, 1 reply; 6+ messages in thread
From: Alan Mackenzie @ 2019-07-02 13:36 UTC (permalink / raw)
To: Ergus; +Cc: 36423
Hello, Ergus.
On Fri, Jun 28, 2019 at 21:01:31 +0200, Ergus wrote:
> In electric-pair-mode there are some files where inserting one " does
> not insert the pair ". But on the other hand when I try to insert a
> second " it inserts a pair for it so it ends with """.
> It does not happen when the file is empty but for me it happens with
> this file content.
> ---------------------------------------
> #ifndef _SparseMatrix_functions_hpp_
> #define _SparseMatrix_functions_hpp_
> #endif
> ---------------------------------------
I've just committed a fix to master which fixes some of the problem.
(For the rest of the problem, see bug #36474.)
> The behavior changes sometimes inserting a new line instead of the first
> ", or just not inserting any pair at all. This looks like an issue in a
> backward search for a pair or something. Because it changes if withing
> the define region or not.
Yes.
> When a region is active there is not issue and the quotes are inserted
> in pairs around the region as expected.
Also yes.
> This was reproduced with:
> emacs -Q file.hpp
> M-x electric-pair-modes
> In GNU Emacs 27.0.50 (build 4, x86_64-pc-linux-gnu, GTK+ Version 3.24.9)
> of 2019-06-28 built on Ergus
> Repository revision: cb182ce6f8d2fa6e1509252fecc2b0e504e36d63
> Repository branch: master
> System Description: Arch Linux
Thanks for taking the trouble to report this. It should be somewhat
better, now. Just a small point: it would have been helpful if you'd
mentioned C++ Mode in the Subject: (or even explicitly in the message).
--
Alan Mackenzie (Nuremberg, Germany).
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#36423: 27.0.50; electric-pair-mode not working properly depending of file content.
2019-07-02 13:36 ` Alan Mackenzie
@ 2019-07-03 19:32 ` Ergus
2019-07-04 14:14 ` Alan Mackenzie
2019-07-08 9:48 ` Alan Mackenzie
0 siblings, 2 replies; 6+ messages in thread
From: Ergus @ 2019-07-03 19:32 UTC (permalink / raw)
To: Alan Mackenzie; +Cc: 36423
[-- Attachment #1: Type: text/plain, Size: 2402 bytes --]
Hi Alan:
Sorry for the bother again. After the fix you did, the "" issue is
better, but now there are new issues with the {} when I use pragmas for
example.
I attached you a picture (because this is the easier way to explain it)
As you can see it does not recognize the pairs correctly in one
case. And in the other it does not recognize the () at all. (Maybe the
second is not exactly the same issue)
The main problem is that because of this the automatic indentation is
affected.
An interesting thing is that in the line 136 out(vout[0; size]) it works
correctly. Maybe it has to do with the \ in the pragmas?
Thanks for the previous patch and in advance for the next ;)
Ergus
On Tue, Jul 02, 2019 at 01:36:41PM +0000, Alan Mackenzie wrote:
>Hello, Ergus.
>
>On Fri, Jun 28, 2019 at 21:01:31 +0200, Ergus wrote:
>> In electric-pair-mode there are some files where inserting one " does
>> not insert the pair ". But on the other hand when I try to insert a
>> second " it inserts a pair for it so it ends with """.
>
>> It does not happen when the file is empty but for me it happens with
>> this file content.
>
>> ---------------------------------------
>> #ifndef _SparseMatrix_functions_hpp_
>> #define _SparseMatrix_functions_hpp_
>
>
>
>> #endif
>> ---------------------------------------
>
>I've just committed a fix to master which fixes some of the problem.
>(For the rest of the problem, see bug #36474.)
>
>> The behavior changes sometimes inserting a new line instead of the first
>> ", or just not inserting any pair at all. This looks like an issue in a
>> backward search for a pair or something. Because it changes if withing
>> the define region or not.
>
>Yes.
>
>> When a region is active there is not issue and the quotes are inserted
>> in pairs around the region as expected.
>
>Also yes.
>
>> This was reproduced with:
>
>> emacs -Q file.hpp
>> M-x electric-pair-modes
>
>> In GNU Emacs 27.0.50 (build 4, x86_64-pc-linux-gnu, GTK+ Version 3.24.9)
>> of 2019-06-28 built on Ergus
>> Repository revision: cb182ce6f8d2fa6e1509252fecc2b0e504e36d63
>> Repository branch: master
>> System Description: Arch Linux
>
>Thanks for taking the trouble to report this. It should be somewhat
>better, now. Just a small point: it would have been helpful if you'd
>mentioned C++ Mode in the Subject: (or even explicitly in the message).
>
>--
>Alan Mackenzie (Nuremberg, Germany).
[-- Attachment #2: Screenshot_2019-07-03_21-14-59.png --]
[-- Type: image/png, Size: 25173 bytes --]
[-- Attachment #3: Screenshot_2019-07-03_21-22-52.png --]
[-- Type: image/png, Size: 20684 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#36423: 27.0.50; electric-pair-mode not working properly depending of file content.
2019-07-03 19:32 ` Ergus
@ 2019-07-04 14:14 ` Alan Mackenzie
2019-07-08 9:48 ` Alan Mackenzie
1 sibling, 0 replies; 6+ messages in thread
From: Alan Mackenzie @ 2019-07-04 14:14 UTC (permalink / raw)
To: Ergus; +Cc: 36423
Hello, Ergus.
On Wed, Jul 03, 2019 at 21:32:00 +0200, Ergus wrote:
> Hi Alan:
> Sorry for the bother again.
No bother!
> After the fix you did, the "" issue is better, but now there are new
> issues with the {} when I use pragmas for example.
> I attached you a picture (because this is the easier way to explain it)
Nevertheless, is there any chance you could send me a copy of the code,
so that I don't have to type it in myself from the screenshots?
> As you can see it does not recognize the pairs correctly in one
> case. And in the other it does not recognize the () at all. (Maybe the
> second is not exactly the same issue)
That, indeed, needs looking at.
> The main problem is that because of this the automatic indentation is
> affected.
> An interesting thing is that in the line 136 out(vout[0; size]) it works
> correctly. Maybe it has to do with the \ in the pragmas?
> Thanks for the previous patch and in advance for the next ;)
> Ergus
Let's look forward to that!
--
Alan Mackenzie (Nuremberg, Germany).
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#36423: 27.0.50; electric-pair-mode not working properly depending of file content.
2019-07-03 19:32 ` Ergus
2019-07-04 14:14 ` Alan Mackenzie
@ 2019-07-08 9:48 ` Alan Mackenzie
2019-07-08 10:29 ` Alan Mackenzie
1 sibling, 1 reply; 6+ messages in thread
From: Alan Mackenzie @ 2019-07-08 9:48 UTC (permalink / raw)
To: Ergus; +Cc: 36423-done
Hello, Ergus.
On Wed, Jul 03, 2019 at 21:32:00 +0200, Ergus wrote:
> Hi Alan:
> Sorry for the bother again. After the fix you did, the "" issue is
> better, but now there are new issues with the {} when I use pragmas for
> example.
OK, thanks! I've corrected a further problem with " in
electric-pair-mode, and I'm taking the liberty of closing your bug. ;-)
> I attached you a picture (because this is the easier way to explain it)
This is actually a different bug. If you haven't done so already, could
you please raise this as a bug in its own right. Thanks.
Just as a matter of interest, please enclose a copy of the C++ file (or
even better, just the relevant part of it) so as to save me the bother of
having to type it in. Thanks!
> As you can see it does not recognize the pairs correctly in one
> case. And in the other it does not recognize the () at all. (Maybe the
> second is not exactly the same issue)
> The main problem is that because of this the automatic indentation is
> affected.
> An interesting thing is that in the line 136 out(vout[0; size]) it works
> correctly. Maybe it has to do with the \ in the pragmas?
> Thanks for the previous patch and in advance for the next ;)
> Ergus
--
Alan Mackenzie (Nuremberg, Germany).
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#36423: 27.0.50; electric-pair-mode not working properly depending of file content.
2019-07-08 9:48 ` Alan Mackenzie
@ 2019-07-08 10:29 ` Alan Mackenzie
0 siblings, 0 replies; 6+ messages in thread
From: Alan Mackenzie @ 2019-07-08 10:29 UTC (permalink / raw)
To: Ergus; +Cc: 36423-done
Hello again, Ergus.
On Mon, Jul 08, 2019 at 09:48:01 +0000, Alan Mackenzie wrote:
> On Wed, Jul 03, 2019 at 21:32:00 +0200, Ergus wrote:
> > Hi Alan:
> > Sorry for the bother again. After the fix you did, the "" issue is
> > better, but now there are new issues with the {} when I use pragmas for
> > example.
> OK, thanks! I've corrected a further problem with " in
> electric-pair-mode, and I'm taking the liberty of closing your bug. ;-)
> > I attached you a picture (because this is the easier way to explain it)
> This is actually a different bug. If you haven't done so already, could
> you please raise this as a bug in its own right. Thanks.
Actually, there's no need for this, I understand what's happening now
and it's "not a bug" - sort of.
In the lines:
1. printf ("Hello
2. world");
, there is an invalid string on L1, extending from " to the end of the
line. There is also an invalid string on L2, starting at the ", which
encloses the ). Thus this ), being inside a string, can't match the (
on L1.
Sorry I hadn't realised this half an hour ago.
Due to insistent complaints, I'm looking at modifying this "invalid
string" mechanism so that although it would fontify as it does now, it
would allow things like these two parentheses to match up.
[ .... ]
--
Alan Mackenzie (Nuremberg, Germany).
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2019-07-08 10:29 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-06-28 19:01 bug#36423: 27.0.50; electric-pair-mode not working properly depending of file content Ergus
2019-07-02 13:36 ` Alan Mackenzie
2019-07-03 19:32 ` Ergus
2019-07-04 14:14 ` Alan Mackenzie
2019-07-08 9:48 ` Alan Mackenzie
2019-07-08 10:29 ` Alan Mackenzie
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.