unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Re: [Emacs-diffs] emacs-25 6e788ef: ; etc/PROBLEMS: Explain about the python+libedit problem (Bug#25753).
       [not found] ` <20170301225512.1A71E262AE@vcs0.savannah.gnu.org>
@ 2017-03-02  2:20   ` Stefan Monnier
  2017-03-02  3:57     ` Noam Postavsky
  0 siblings, 1 reply; 4+ messages in thread
From: Stefan Monnier @ 2017-03-02  2:20 UTC (permalink / raw)
  To: emacs-devel; +Cc: Fabián E. Gallina, Noam Postavsky

> +*** In Inferior Python mode, input is echoed and native completion doesn't work.
> +<https://debbugs.gnu.org/cgi/bugreport.cgi?bug=25753>
> +
> +This happens when python uses a libedit based readline module, which
> +is the default on macOS.  This can be worked around by installing a
> +GNU readline based module instead, for example, using setuptools

Is there a way we could guess/detect the situation automatically (and
emit a corresponding message)?


        Stefan



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Emacs-diffs] emacs-25 6e788ef: ; etc/PROBLEMS: Explain about the python+libedit problem (Bug#25753).
  2017-03-02  2:20   ` [Emacs-diffs] emacs-25 6e788ef: ; etc/PROBLEMS: Explain about the python+libedit problem (Bug#25753) Stefan Monnier
@ 2017-03-02  3:57     ` Noam Postavsky
  2017-03-02  5:39       ` Stefan Monnier
  0 siblings, 1 reply; 4+ messages in thread
From: Noam Postavsky @ 2017-03-02  3:57 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: Fabián E. Gallina, Emacs developers

[-- Attachment #1: Type: text/plain, Size: 586 bytes --]

On Wed, Mar 1, 2017 at 9:20 PM, Stefan Monnier <monnier@iro.umontreal.ca> wrote:
>> +*** In Inferior Python mode, input is echoed and native completion doesn't work.
>> +<https://debbugs.gnu.org/cgi/bugreport.cgi?bug=25753>
>> +
>> +This happens when python uses a libedit based readline module, which
>> +is the default on macOS.  This can be worked around by installing a
>> +GNU readline based module instead, for example, using setuptools
>
> Is there a way we could guess/detect the situation automatically (and
> emit a corresponding message)?
>

I think the attached could work.

[-- Attachment #2: python-libedit-warn.diff --]
[-- Type: text/plain, Size: 1913 bytes --]

--- i/lisp/progmodes/python.el
+++ w/lisp/progmodes/python.el
@@ -3399,24 +3399,30 @@ python-shell-completion-native-setup
                 instance.rlcomplete = new_completer
 
         if readline.__doc__ and 'libedit' in readline.__doc__:
-            readline.parse_and_bind('bind ^I rl_complete')
+            # readline.parse_and_bind('bind ^I rl_complete')
+            print ('libedit not supported')
         else:
             readline.parse_and_bind('tab: complete')
             # Require just one tab to send output.
             readline.parse_and_bind('set show-all-if-ambiguous on')
+            print ('python.el: native completion setup loaded')
 
-        print ('python.el: native completion setup loaded')
     except:
         print ('python.el: native completion setup failed')
 
 __PYTHON_EL_native_completion_setup()" process)
-      (when (and
-             (python-shell-accept-process-output
-              process python-shell-completion-native-try-output-timeout)
-             (save-excursion
-               (re-search-backward
-                (regexp-quote "python.el: native completion setup loaded") nil t 1)))
-        (python-shell-completion-native-try)))))
+      (when (python-shell-accept-process-output
+             process python-shell-completion-native-try-output-timeout)
+        (cond ((save-excursion
+                 (re-search-backward
+                  (regexp-quote "python.el: native completion setup loaded") nil t 1))
+               (python-shell-completion-native-try))
+              ((save-excursion (search-backward "libedit" nil t 1))
+               (lwarn '(python libedit)
+                      :error "\
+Your `python-shell-interpreter' uses a libedit based readline
+module which is currently not supported.")
+               nil))))))
 
 (defun python-shell-completion-native-turn-off (&optional msg)
   "Turn off shell native completions.


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Emacs-diffs] emacs-25 6e788ef: ; etc/PROBLEMS: Explain about the python+libedit problem (Bug#25753).
  2017-03-02  3:57     ` Noam Postavsky
@ 2017-03-02  5:39       ` Stefan Monnier
  2017-03-03  2:22         ` Noam Postavsky
  0 siblings, 1 reply; 4+ messages in thread
From: Stefan Monnier @ 2017-03-02  5:39 UTC (permalink / raw)
  To: emacs-devel

>> Is there a way we could guess/detect the situation automatically (and
>> emit a corresponding message)?
> I think the attached could work.

That would be sweet.

> +               (lwarn '(python libedit)
> +                      :error "\
> +Your `python-shell-interpreter' uses a libedit based readline
> +module which is currently not supported.")

Could the message explain how to fix the problem, or include some
link/reference to a description about how to fix the problem
(e.g. a pointer to C-h C-p?).


        Stefan




^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Emacs-diffs] emacs-25 6e788ef: ; etc/PROBLEMS: Explain about the python+libedit problem (Bug#25753).
  2017-03-02  5:39       ` Stefan Monnier
@ 2017-03-03  2:22         ` Noam Postavsky
  0 siblings, 0 replies; 4+ messages in thread
From: Noam Postavsky @ 2017-03-03  2:22 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: Emacs developers

On Thu, Mar 2, 2017 at 12:39 AM, Stefan Monnier
<monnier@iro.umontreal.ca> wrote:
>
> Could the message explain how to fix the problem, or include some
> link/reference to a description about how to fix the problem
> (e.g. a pointer to C-h C-p?).

Sure, something like this?

(lwarn '(python libedit)
                      :error "\
Your `python-shell-interpreter' uses a libedit based readline
module which is currently not supported, see 'Inferior Python' in
etc/PROBLEMS.")



^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2017-03-03  2:22 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20170301225511.25578.47307@vcs0.savannah.gnu.org>
     [not found] ` <20170301225512.1A71E262AE@vcs0.savannah.gnu.org>
2017-03-02  2:20   ` [Emacs-diffs] emacs-25 6e788ef: ; etc/PROBLEMS: Explain about the python+libedit problem (Bug#25753) Stefan Monnier
2017-03-02  3:57     ` Noam Postavsky
2017-03-02  5:39       ` Stefan Monnier
2017-03-03  2:22         ` Noam Postavsky

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).