Subject: Re: [PATCH] Re: 25.1.50; Python completion should not strip trailing space

From: Dan Davison <[email-masked]>
Date: Sat, 27 Aug 2016 21:47:02 +0000

Here is the patch pasted into the body of an email:

>From 8e69b33a53ea30389a5e3946dd711320a77e0d23 Mon Sep 17 00:00:00 2001
From: Dan Davison <[email-masked]>
Date: Fri, 5 Aug 2016 12:19:20 -0700
Subject: [PATCH] Don't strip space from python completions

The returned completion deliberately includes a space after a word like
'import', which is always followed by more words.

* lisp/progmodes/python.el (python-shell-completion-native-get-completions):
Remove space from regular expression character class
---
 lisp/progmodes/python.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el
index ad69f87..8616279 100644
--- a/lisp/progmodes/python.el
+++ b/lisp/progmodes/python.el
@@ -3551,7 +3551,7 @@ completion."
                  (split-string
                   (buffer-substring-no-properties
                    (line-beginning-position) (point-min))
-                  "[ \f\t\n\r\v()]+" t)
+                  "[\f\t\n\r\v()]+" t)
                  :test #'string=))))
         (set-process-filter process original-filter-fn)))))

-- 
2.3.2 (Apple Git-55)

On Sat, 27 Aug 2016 at 14:21 Dan Davison <[email-masked]> wrote:

> Patch attached.
>
> This patch is also available as a pull request at at
> https://github.com/dandavison/emacs/pull/1 The commit hash
> is 8e69b33a53ea30389a5e3946dd711320a77e0d23.
>
> I have only tested this on macOS. As far as I am aware, when the space
> character is present, it is present deliberately and it is appropriate to
> retain it, but I would appreciate feedback from python.el experts.
>
> On Sat, 27 Aug 2016 at 14:10 Dan Davison <[email-masked]> wrote:
>
>> From emacs -Q:
>>
>> (setq python-shell-interpreter "ipython"
>>       python-shell-interpreter-args "-i")
>>
>> M-x run-python
>>
>> In the python comint buffer insert "from itertools imp" and hit tab.
>>
>> You will see "imp" completed as "import" (no trailing space).
>>
>> However, if you do this in ipython itself, you will see "imp" completed
>> as "import ". This (i.e. what ipython does) is the desired behavior
>> (because import is always followed by another word).
>>
>> In GNU Emacs 25.1.50.1 (x86_64-apple-darwin14.5.0, NS appkit-1348.17
>> Version 10.10.5 (Build 14F27))
>>  of 2016-04-16 built on hemiprocne
>> Repository revision: 934549e23d6bda5231375dbfed7b42a966c85d14
>> Windowing system distributor 'Apple', version 10.3.1348
>> Configured using:
>>  'configure --prefix=/usr/local/Cellar/emacs/HEAD
>>  --enable-locallisppath=/usr/local/share/emacs/site-lisp
>>  --infodir=/usr/local/Cellar/emacs/HEAD/share/info/emacs --with-xml2
>>  --without-dbus --without-gnutls --with-ns --disable-ns-self-contained'
>>
>> Configured features:
>> JPEG NOTIFY ACL LIBXML2 ZLIB TOOLKIT_SCROLL_BARS NS
>>
>> Important settings:
>>   value of $LANG: en_US.UTF-8
>>   locale-coding-system: utf-8-unix
>>
>> Major mode: Lisp Interaction
>>
>> Minor modes in effect:
>>   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
>>   blink-cursor-mode: t
>>   auto-composition-mode: t
>>   auto-encryption-mode: t
>>   auto-compression-mode: t
>>   line-number-mode: t
>>   transient-mark-mode: t
>>
>> Recent messages:
>> For information about GNU Emacs and the GNU system, type C-h C-a.
>>
>> Load-path shadows:
>> None found.
>>
>> Features:
>> (shadow sort mail-extr emacsbug message dired dired-loaddefs format-spec
>> rfc822 mml easymenu mml-sec password-cache epa derived epg epg-config
>> gnus-util rmail rmail-loaddefs mm-decode mm-bodies mm-encode mail-parse
>> rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045
>> ietf-drums mm-util mail-prsvr mail-utils time-date mule-util tooltip
>> eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel
>> term/ns-win ns-win ucs-normalize term/common-win tool-bar dnd fontset
>> image regexp-opt fringe tabulated-list newcomment elisp-mode lisp-mode
>> prog-mode register page menu-bar rfn-eshadow 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 charscript
>> 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 kqueue cocoa ns
>> multi-tty make-network-process emacs)
>>
>> Memory information:
>> ((conses 16 195970 9329)
>>  (symbols 48 19431 0)
>>  (miscs 40 43 170)
>>  (strings 32 14792 5110)
>>  (string-bytes 1 431078)
>>  (vectors 16 32763)
>>  (vector-slots 8 640839 4764)
>>  (floats 8 156 54)
>>  (intervals 56 194 0)
>>  (buffers 976 11))
>>
>>