summaryrefslogtreecommitdiff
path: root/lisp/progmodes/python.el
AgeCommit message (Collapse)Author
2017-12-14Consolidate 'widen' callsDmitry Gutov
* lisp/progmodes/prog-mode.el (prog-indentation-context): Un-document all elements but the first. (prog-widen): Remove. (http://lists.gnu.org/archive/html/emacs-devel/2017-12/msg00321.html) * doc/lispref/text.texi (Mode-Specific Indent): Update. * lisp/progmodes/ruby-mode.el (ruby-calculate-indent): Don't call widen. * lisp/progmodes/python.el (python-indent-guess-indent-offset) (python-info-current-defun): Replace prog-widen with widen; these functions are not called during indentation. (python-indent-context) (python-indent--calculate-indentation) (python-info-dedenter-opening-block-message) (python-info-line-ends-backslash-p) (python-info-beginning-of-backslash) (python-info-continuation-line-p) (python-info-current-defun): Remove 'widen' calls. * lisp/indent.el (indent-according-to-mode) (indent-for-tab-command, indent-region): Move them here. * lisp/textmodes/mhtml-mode.el (mhtml-indent-line): Bind prog-indentation-context to one-element list.
2017-12-12Add missing :version tags revealed by cusver-checkGlenn Morris
* lisp/comint.el (comint-move-point-for-matching-input): * lisp/epa.el (epa-replace-original-text): * lisp/image-dired.el (image-dired-cmd-optipng-program) (image-dired-cmd-optipng-options): * lisp/emacs-lisp/bytecomp.el (byte-compile-cond-use-jump-table): * lisp/gnus/gnus-cloud.el (gnus-cloud-storage-method) (gnus-cloud-interactive): * lisp/net/mailcap.el (mailcap-user-mime-data): * lisp/progmodes/cc-vars.el (c-asymmetry-fontification-flag) (c-noise-macro-names, c-noise-macro-with-parens-names): * lisp/progmodes/flymake.el (flymake-start-on-flymake-mode) (flymake-wrap-around): * lisp/progmodes/grep.el (grep-use-null-filename-separator): * lisp/progmodes/js.el (js-indent-align-list-continuation): * lisp/progmodes/perl-mode.el (perl-flymake-command): * lisp/progmodes/python.el (python-flymake-command) (python-flymake-command-output-pattern, python-flymake-msg-alist): * lisp/progmodes/ruby-mode.el (ruby-flymake-use-rubocop-if-available) (ruby-rubocop-config): * lisp/textmodes/less-css-mode.el (less-css): * lisp/textmodes/tex-mode.el (tex-chktex-program) (tex-chktex-extra-flags): Add missing :version tags.
2017-12-03Use forward slashes for python w32 config example (Bug#21656)Noam Postavsky
* lisp/progmodes/python.el: Use forward slashes for Windows path example, it doesn't require doubling of slashes which reduces chances of confusion.
2017-12-02Disable electric indent for python strings (Bug#29305)Noam Postavsky
* lisp/progmodes/python.el (python-indent-post-self-insert-function): Do nothing when point or beginning of line is in string.
2017-11-05Support python virtualenv on w32 (Bug#24464)Justin Timmons
According to the virtualenv docs only POSIX systems follow the structure "/path/to/venv/bin/", while windows systems use "/path/to/venv/Scripts" for the location of the binary files, most importantly including the python interpreter (see: https://virtualenv.pypa.io/en/stable/userguide/#windows-notes). * lisp/progmodes/python.el (python-shell-calculate-exec-path): Use the "/path/to/venv/Scripts" for `windows-nt' machines. Copyright-paperwork-exempt: yes
2017-11-05Add a Flymake backend for Python (bug#28808)Lele Gaifax
Implement new Flymake backend with related customizable settings. * lisp/progmodes/python.el (python-flymake-command) (python-flymake-command-output-pattern) (python-flymake-msg-alist): New defcustom. (python--flymake-parse-output): New function, able to parse python-flymake-command output accordingly to python-flymake-command-output-pattern. (python-flymake): New function implementing the backend interface using python--flymake-parse-output for the real work. (python-mode): Add python-flymake to flymake-diagnostic-functions.
2017-10-15Disable python native completion on w32 (Bug#28580)Noam Postavsky
* lisp/progmodes/python.el (python-shell-completion-native-disabled-interpreters): For windows-nt systems, put an empty string to match interpreters.
2017-10-07Make python prettify symbols into a defvar (Bug#28713)Noam Postavsky
* lisp/progmodes/python.el (python-prettify-symbols-alist): New variable. (python--prettify-symbols-alist): Make into obsolete alias for `python-prettify-symbols-alist'.
2017-10-02Give more helpful messages for python completion setup failuresNoam Postavsky
* lisp/progmodes/python.el (python-shell-completion-native-setup): In case the completion setup failed with some exception, print out the exception type and message. If libedit is detected, raise an exception, since this is known to fail.
2017-09-25Improve python3-compatibility of fallback completion (Bug#28499)Joerg Behrmann
* lisp/progmodes/python.el (python-eldoc-setup-code): Use inspect.getfullargspec instead of inspect.getargspec to avoid a deprecation warning on every usage of eldoc in python-mode. Copyright-paperwork-exempt: yes
2017-09-13Prefer HTTPS to FTP and HTTP in documentationPaul Eggert
Most of this change is to boilerplate commentary such as license URLs. This change was prompted by ftp://ftp.gnu.org's going-away party, planned for November. Change these FTP URLs to https://ftp.gnu.org instead. Make similar changes for URLs to other organizations moving away from FTP. Also, change HTTP to HTTPS for URLs to gnu.org and fsf.org when this works, as this will further help defend against man-in-the-middle attacks (for this part I omitted the MS-DOS and MS-Windows sources and the test tarballs to keep the workload down). HTTPS is not fully working to lists.gnu.org so I left those URLs alone for now.
2017-08-27Disable completion while entering python multiline statementsNoam Postavsky
The "legacy" completion mechanism sends newlines to the running python process to get the list of completions, which confuses things if the user is in the middle of entering a multiline statement (Bug#28051). It's better to disable completion in this case. * lisp/progmodes/python.el (python-shell--block-prompt): New variable. (python-shell-prompt-set-calculated-regexps): Set it. (python-shell-completion-at-point): Return 'ignore' as the completion function when the current prompt is a block prompt.
2017-08-20Work around w32-python-2.x bug to fix prompt detection (Bug#21376)Noam Postavsky
* lisp/progmodes/python.el (python-shell-prompt-detect): Don't put carriage returns into the temporary file when running in unbuffered mode, the w32 build of python 2.7 chokes on them.
2017-07-05* lisp/progmodes/python.el (auto-mode-alist): Add .pyi. (Bug#27847)Glenn Morris
2017-06-02Add watch for password back to inferior python comint filterGlenn Morris
It was removed along with other items for speed (bug#16875), but doesn't seem to have been causing an issue, and it's useful to have it there (bug#27154). * lisp/progmodes/python.el (inferior-python-mode): Add comint-watch-for-password-prompt to comint-output-filter-functions.
2017-05-28Comply with pep 8 style guide for backslash in assignment (Bug#24809)Jules Tamagnan
* lisp/progmodes/python.el (python-indent--calculate-indentation): Increase indent by `python-indent-offset' after `:after-backslash-assignment-continuation'. Copyright-paperwork-exempt: yes
2017-03-23Protect against an infloop in python-modePhilipp Stephani
There appears to be an edge case caused by using `syntax-ppss' in a narrowed buffer during JIT lock inside of Python triple-quote strings. Unfortunately it is impossible to reproduce without manually destroying the syntactic information in the Python buffer, but it has been observed in practice. In that case it can happen that the syntax caches get sufficiently out of whack so that there appear to be overlapping strings in the buffer. As Python has no nested strings, this situation is impossible and leads to an infloop in `python-nav-end-of-statement'. Protect against this by checking whether the search for the end of the current string makes progress. * python.el (python-nav-end-of-statement): Protect against infloop. * progmodes/python-tests.el (python-tests--python-nav-end-of-statement--infloop): Add unit test.
2017-03-19Merge from origin/emacs-25Paul Eggert
a094732 * etc/PROBLEMS: Say that HP-UX cc doesn't work. 1925dd9 Fix duplicate wording in Emacs manual 6de8429 * lisp/paren.el (show-paren--default, show-paren-function): A... 2d671fd Fix wording in Emacs manual a8766a2 Document how to customize input methods 6eb8995 * lisp/net/eww.el (eww-reload): Doc fix. (Bug#25981) aceac95 Fix warning message about native completion (Bug#25984) a314c1f Clarify documentation of 'raise' and 'height' display specs f366f6e Mention problems with GPaste in PROBLEMS 6e788ef ; etc/PROBLEMS: Explain about the python+libedit problem (Bug... 6406618 Fix doc strings in info.el c1ed152 ; * src/keyboard.c (Fposn_at_point): Fix last change. eed9677 Fix doc string of 'posn-at-point' 0d5957e Documentation fix in elisp reference manual
2017-03-19Merge from origin/emacs-25Paul Eggert
ec4226d * lisp/woman.el (woman): Fix docstring prefix arg description. 2b774fa Mention "editor" in Emacs man page header ae60d0c Document problems with nerd-fonts 2fdb5a9 ; Details about pinning Emacs to w32 task bar 5c3105e * doc/lispref/modes.texi (Derived Modes): Make example more i... 4c51ef4 Clarify what is the "cursor" 8303c32 ; * etc/NEWS: Copyedits. 3f7493e ; Fix a typo in comment c54cf8d Improve commentary in lisp.h 8b92f86 ; * admin/make-tarball.txt: Cross-reference admin/release-pro... 0ba9932 Disable native completion for ipython (Bug#25067) 38fc456 Fix a typo in ada-mode manual 00e75ba ; * src/coding.c (Fencode_coding_region): Fix a typo in the d... a541c21 Clarify documentation of 'bufferpos-to-filepos' and 'filepos-... # Conflicts: # etc/NEWS # etc/PROBLEMS
2017-03-19Merge from origin/emacs-25Paul Eggert
0e35405 Improve documentation of coding-systems c2fd04c Improve definition of 'variable-pitch' face on MS-Windows 16fb50d Fix an error message in python.el a2a2073 Clarify major mode switching fc38671 Add helpful comment to compile-command's docstring ee65d85 Fix ':version' of 'select-enable-primary'
2017-03-05Fix warning message about native completion (Bug#25984)Noam Postavsky
* lisp/progmodes/python.el (python-shell-completion-native-turn-on-maybe): The relevant variable is `python-shell-completion-native-enable'.
2017-02-07Disable native completion for ipython (Bug#25067)Noam Postavsky
* lisp/progmodes/python.el: (python-shell-completion-native-disabled-interpreters): Add "ipython".
2017-01-26python-mode: Fix detection for opening blocks.Hong Xu
* python.el (python-info-dedenter-opening-block-positions): There can't be any back-indented lines between an opening block and the current line. * python-tests.el (python-indent-electric-colon-4): Add an indent test case where there is one-more indented previous opening block.
2017-01-12Fix extracting async def type and name in python mode imenuDmitry Lazurkin
* lisp/progmodes/python.el (python-imenu--get-defun-type-name): New function. (python-imenu--build-tree): Use python-imenu--get-defun-type-name for extract async or simple def type and name at current position (Bug#24820). * test/lisp/progmodes/python-tests.el (python-imenu-create-index-1): (python-imenu-create-flat-index-1): Add async def's.
2017-01-09Fix an error message in python.elEli Zaretskii
* lisp/progmodes/python.el (python-shell-get-process-or-error): Don't repeat the same key binding twice. (Bug#25405)
2017-01-01Merge from origin/emacs-25Paul Eggert
2e2a806 Fix copyright years by hand 5badc81 Update copyright year to 2017
2016-12-31Update copyright year to 2017Paul Eggert
Run admin/update-copyright.
2016-12-09Fix bad quoting of python-shell-interpreterNoam Postavsky
`python-shell-calculate-command' was using `shell-quote-argument' as if it was generating a shell command, but its callers don't pass the result to a shell, and they expect to parse it with `split-string-and-unquote'. This caused problems depending on the flavor of shell quoting in effect (Bug#25025). * lisp/progmodes/python.el (python-shell-calculate-command): Use `combine-and-quote-strings' to quote the interpreter, so that it can be parsed by `python-shell-make-comint' successfully using `split-string-and-unquote'.
2016-11-20Add file-local-nameMichael Albinus
* doc/lispref/files.texi (Magic File Names): Add `file-local-name'. (Unique File Names): Use it. * etc/NEWS: Mention `file-local-name'. * lisp/files.el (file-local-name): New defun. (file-expand-wildcards): * lisp/eshell/em-tramp.el (eshell/su, eshell/sudo): * lisp/eshell/esh-ext.el (eshell-remote-command): * lisp/eshell/esh-proc.el (eshell-gather-process-output): * lisp/org/ob-core.el (org-babel-local-file-name): * lisp/progmodes/gud.el (gud-common-init, gud-format-command): * lisp/progmodes/python.el (python-shell-send-file): * lisp/shell.el (shell): * lisp/vc/ediff-diff.el (ediff-same-file-contents): * lisp/vc/vc-git.el (vc-git-checkin): Use it.
2016-11-19Merge from origin/emacs-25Paul Eggert
4af5981 Add a comment in generated refcards about the source ef880a5 ; * etc/refcards/calccard.tex: Remove obsolete comment. 4887e7c js-mode: Fix indent problem after a regexp e992ac0 Fix sluggish display of symbols in UTF-8 language environment 1fc101b Don't confuse how Texinfo outputs @var with the input 91aa5d1 * doc/lispref/display.texi (Scroll Bars): * doc/lispref/frame... f758fcd * doc/emacs/cmdargs.texi (Initial Options): Copyedit for --da... 5b0cddd More fixes in copyright notices in etc/refcards/ f994c20 Update copyright text in refcards 9ad2ae7 Fix Outline command names 26c3554 Send text received by bracketed paste to process db0b58d Correct the statement about programming modes always running ... 78aece4 Improve documentation of 'occur' eb364fd Do call debugger on failed cl-assert 3ef4ee8 Avoid infloop in python 8da810f Don't refer to obsolete FEATURE-unload-hook 4f478ca Improve documentation of dabbrevs 7272e5d * lisp/chistory.el (list-command-history): Doc fix. (Bug#24890) 89b7482 * lisp/simple.el (set-mark-command): Doc fix. (Bug#24890) 3b199f7 Improve documentation of some Help commands 93d3a0e Fix documentation of yes-or-no prompts af04919 Fix documentation of partial completion style ed80184 Fix documentation of the mode line on emacsclient frames e6be855 Fix description of 'C-z' in User manual 16f7007 Improve and clarify documentation of Outline Mode 31d93aa Add Emacs version number to nt/README.W32 0b6b815 Fix python-mode hideshow regexp dc152c5 Modernize usage of 'macOS' in doc and comments 84c5343 Prefer comments /* like this */ in C code bb61e50 * doc/lispref/loading.texi (Autoload): Better link (Bug#24845). 3ef86fd Clarify documentation of face attribute functions de51d59 ; * nt/README.W32: Minor copyedits. db436e9 Don't call debug on failed cl-assert # Conflicts: # doc/emacs/cmdargs.texi # etc/NEWS # etc/PROBLEMS # lisp/auth-source.el # lisp/net/tramp-sh.el
2016-11-17Fix arglist in python.el (Bug#24762)Mark Oteiza
* lisp/progmodes/python.el: Remove unneeded second args. (python-define-auxiliary-skeleton): DOC arg should be &optional.
2016-11-08Avoid infloop in pythonDaniel Colascione
Fix bug#24905 * lisp/progmodes/python.el (python-info-docstring-p): Improve infloop avoidance: replace (bobp) with generic test for forward progress. * test/lisp/progmodes/python-tests.el (python-bob-infloop-avoid): Add test for bug#24905
2016-11-08Avoid infloop in pythonDaniel Colascione
Fix bug#24905 * lisp/progmodes/python.el (python-info-docstring-p): Improve infloop avoidance: replace (bobp) with generic test for forward progress. * test/lisp/progmodes/python-tests.el (python-bob-infloop-avoid): Add test for bug#24905
2016-11-06Fix python-mode hideshow regexpNoam Postavsky
2015-02-07 "Fix hideshow integration[...]" changed the regexp added to `hs-special-modes-alist' so that it worked when not searching from the beginning of the line. However, this allows matching tokens ending in "def" or "class", not just those keywords. This results in an infinite loop in hs-hide-all (Bug #24815). * lisp/progmodes/python.el (python-mode): Add symbol boundaries around the def|class matching part of the regexp added to hs-special-modes-alist.
2016-11-06Modernize usage of 'macOS' in doc and commentsPaul Eggert
Apple changed the spelling of its operating system again, to "macOS", effective with macOS 10.12 Sierra (2016-09-20). Change Emacs documentation and comments to match this. Stick with older OS spellings ("OS X", "Mac OS X") when talking about older releases where the older names are more correct.
2016-11-04Merge from origin/emacs-25Paul Eggert
dbb3410 python.el: Fix detection of native completion in Python 3 (bu... 91c97b6 * Makefile.in (install-arch-indep): Skip etc/refcards/emacsve... 9c1cb8d * lisp/subr.el (set-transient-map): Exit for unbound events (... 9c247d2 Update category-table for Chinese characters 43986d1 Inhibit buffer relocation during regex searches fee4cef Revert fixes to allocation of regex matching
2016-10-31python.el: Fix detection of native completion in Python 3 (bug #24401)Clément Pit--Claudel
With Python 3.5, (python-shell-completion-native-get-completions ... "") would return an empty list, causing python.el to think that native completion was unavailable (the difference between Python 2 and Python 3 is due to https://bugs.python.org/issue25660). * lisp/progmodes/python.el (python-shell-completion-native-try): Use "_" to check whether native completion is available instead of "".
2016-07-18; Revert "Use eldoc-documentation-functions"Dmitry Gutov
This reverts commit 001d88b62ecb8163a148656acb103b354ce7613a. It doesn't have the consensus, as evidenced by http://lists.gnu.org/archive/html/emacs-devel/2016-06/msg00138.html
2016-07-17Use eldoc-documentation-functionsMark Oteiza
* lisp/hexl.el (hexl-mode): * lisp/ielm.el (inferior-emacs-lisp-mode): * lisp/progmodes/cfengine.el (cfengine3-mode): * lisp/progmodes/elisp-mode.el (emacs-lisp-mode): * lisp/progmodes/octave.el (octave-mode, inferior-octave-mode): * lisp/progmodes/python.el (python-mode): * lisp/simple.el (read--expression): Add buffer-locally to hook eldoc-documentation-functions.
2016-06-19Merge from origin/emacs-25Paul Eggert
9ae514a * etc/AUTHORS: Update the AUTHORS file 3ca428e add entries to authors.el 66d556b Fix eldoc-related freezes in python mode d59bcbc Handle mouse leaving initial window in `mouse-set-region' (Bu... 27fe1e4 org.el: Fix bindings of < and > for calendar scrolling a813487 Fix undo boundary in recursive edit (Bug#23632) 1f85b7c Doc fixes re alist-get. (Bug#23548) ba3f206 * lisp/progmodes/python.el (inferior-python-mode): Avoid tabs... 56fa055 * src/syntax.c (syms_of_syntax) <comment-end-can-be-escaped>:... 4c1370a * lisp/help-fns.el (describe-function-1): Fix handling of fil... a3f7ae8 * lisp/emacs-lisp/cl-macs.el (cl-loop): Doc fix re "by". 601b9b2 * doc/misc/cl.texi (Mapping over Sequences): Fix cl-notevery.
2016-06-14Make python.el work in Emacs 24Noam Postavsky
* lisp/progmodes/python.el: Bump version. (python-define-auxiliary-skeleton): Only use format-message if fbound (Bug#23126).
2016-06-10Fix eldoc-related freezes in python modeJules Tamagnan
* lisp/progmodes/python.el (python-eldoc-get-doc): New defvar. (python-eldoc-function-timeout) (python-eldoc-function-timeout-permanent): New defcustoms. (python-eldoc-function): If python-eldoc--get-doc-at-point times out, effectively turn off ElDoc in current buffer. (Bug#23609)
2016-06-07* lisp/progmodes/python.el (inferior-python-mode):Glenn Morris
Avoid tabs. (Bug#23616)
2016-05-18python-describe-at-point: add and bindSam Steingold
2016-04-27Add a number of Python 3 exceptionsJorgen Schaefer
* lisp/progmoes/python.el (python-font-lock-keywords): Clean up the exception list, adding a number of new Python 3 exceptions and moving some exceptions to the Python 2 and 3 list as Python 2.7 includes them.
2016-04-26Add Python 3.5 keyword "await"Jorgen Schaefer
* lisp/progmodes/python.el (python-font-lock-keywords): Add await as keyword.
2016-04-26Add new keywords of Python 3.5Lele Gaifax
Python 3.5, released in mid September 2015, introduced a few new keywords to better support asynchronous code, "async" and "await" in particular. See https://www.python.org/dev/peps/pep-0492/ for details. (Bug#21783) * lisp/progmodes/python.el (python-rx-constituents): Add async def/for/with as block-start and async def as defun. * lisp/progmodes/python.el (python-font-lock-keywords): Add async def/for/with as keyword. * test/automated/python-tests.el (python-indent-after-async-block-1, python-indent-after-async-block-2, python-indent-after-async-block-3, python-nav-beginning-of-defun-3): New tests to test indentation and navigation for the async keyword.
2016-04-21Add Python 3.5 keyword "await"Jorgen Schaefer
* lisp/progmodes/python.el (python-font-lock-keywords): Add await as keyword.
2016-04-06Add new keywords of Python 3.5Lele Gaifax
Python 3.5, released in mid September 2015, introduced a few new keywords to better support asynchronous code, "async" and "await" in particular. See https://www.python.org/dev/peps/pep-0492/ for details. (Bug#21783) * lisp/progmodes/python.el (python-rx-constituents): Add async def/for/with as block-start and async def as defun. * lisp/progmodes/python.el (python-font-lock-keywords): Add async def/for/with as keyword. * test/automated/python-tests.el (python-indent-after-async-block-1, python-indent-after-async-block-2, python-indent-after-async-block-3, python-nav-beginning-of-defun-3): New tests to test indentation and navigation for the async keyword.
2016-03-28Remove prog-indentation-contextDmitry Gutov
* lisp/progmodes/prog-mode.el: (prog-indentation-context) (prog-first-column, prog-widen): Remove, as discussed in http://lists.gnu.org/archive/html/emacs-devel/2016-03/msg01425.html. * doc/lispref/text.texi (Mode-Specific Indent): Remove references to them. * etc/NEWS: Ditto. * lisp/progmodes/python.el: (prog-widen, prog-first-column): Remove the compatibility aliases and all uses. Do not merge to master.