bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#3226: here-document syntax inference and completion is broken


From: Philipp Stephani
Subject: bug#3226: here-document syntax inference and completion is broken
Date: Sun, 14 Feb 2016 14:44:58 +0000



Andrew Hyatt <address@hidden> schrieb am Di., 26. Jan. 2016 um 06:16 Uhr:
Chong Yidong <address@hidden> writes:

>> Cook yourself up a bash script and type a line of code like:
>> for i in $(/bin/vim <<
>>
>> A default emacs install will complete with "EOF\n\nEOF" (in a more
>>clever fashion so the rest of the line is undisturbed), and place the
>>cursor on the new blank line.  This is incorrect behaviour, as it
>>breaks entry of BASH here-strings when the user's intent is still
>>ambiguous.  This should only respond to things ending in, for example
>>"<< " or possibly "<<E", but certainly NOT just "<<".
>>
>> Further, emacs does something outright wrong: An attempt to fix the
>>situation by inserting another '<' between the "<<" and "EOF" +results
>>in ANOTHER pair of "EOF" being inserted in a syntactically invalid way.
>
> I fixed the second problem, but I don't see any easy way to solve the
> first one.
>
> (The difficulty of fixing the first bug is illustrative of the problems
> with individual major modes rolling their own "electric" completion
> facilities.  It might be nice to have a minor mode that provides a
> unified framework for this kind of functionality; which may also need
> built-in support.)

Just a note that I've reproduced the original problem in Emacs 25, so it
appears to be unfixed at present.



The behavior can be disabled using

(add-hook 'sh-mode-hook (lambda () (sh-electric-here-document-mode 0)))

I think this behavior should be customizable and off by default. 

reply via email to

[Prev in Thread] Current Thread [Next in Thread]