Commit graph

638 commits

Author SHA1 Message Date
Fabián Ezequiel Gallina
0a3ed5f70c ; python.el: Fix typo for previous commit 2015-08-22 19:05:31 -03:00
Fabián Ezequiel Gallina
34f58ce5d7 python.el: Increase native completion robustness.
* lisp/progmodes/python.el (python-shell-completion-native-setup):
Make completer print real candidates and just return dummy ones to
avoid input modification.
(python-shell-completion-native-get-completions): Set
comint-redirect-insert-matching-regexp to non-nil and make
comint-redirect-finished-regexp match the last dummy candidate.
Use python-shell-accept-process-output to wait for the full list
of candidates.
2015-08-22 18:07:26 -03:00
Fabián Ezequiel Gallina
66081ad6f4 ; python.el: Fix previous commit for Emacs<24.3 compatibility 2015-08-21 23:42:01 -03:00
Fabián Ezequiel Gallina
cf42b9fe8d ; python.el: Fix previous commit for Emacs<24.3 compatibility 2015-08-21 23:26:44 -03:00
Fabián Ezequiel Gallina
e2a5e3f87a python.el: Ensure remote process-environment on non-interactive processes
* lisp/progmodes/python.el
(python-shell-tramp-refresh-process-environment): New function.
(python-shell-with-environment): Use it.

* test/automated/python-tests.el (python-shell-with-environment-2): Update.
2015-08-21 22:34:39 -03:00
Fabián Ezequiel Gallina
49071a4afc ; python.el: Bump version to 25.1
Also update author email and add Package-Require header to allow
installation from Emacs 24.x.
2015-08-21 19:36:01 -03:00
Fabián Ezequiel Gallina
4150b563e7 python.el: Enhancements to process environment setup.
* lisp/progmodes/python.el (python-shell-process-environment)
(python-shell-extra-pythonpaths, python-shell-exec-path)
(python-shell-virtualenv-root): Update docstring.  Remove :safe.
(python-shell-setup-codes): Remove :safe.
(python-shell-remote-exec-path): New defcustom.
(python-shell--add-to-path-with-priority): New macro.
(python-shell-calculate-pythonpath): Give priority to
python-shell-extra-pythonpaths.  Update docstring.
(python-shell-calculate-process-environment): Give priority to
python-shell-process-environment.  Update docstring.
(python-shell-calculate-exec-path): Give priority to
python-shell-exec-path and calculated virtualenv bin directory.
Update docstring.
(python-shell-tramp-refresh-remote-path): New function.
(python-shell-with-environment): Use it when working remotely and
do not modify tramp-remote-path.  Allow nesting.
(python-shell-calculate-command): Remove useless
python-shell-with-environment call.

* test/automated/python-tests.el (python-shell-calculate-pythonpath-1)
(python-shell-calculate-pythonpath-2)
(python-shell-calculate-process-environment-6)
(python-shell-calculate-process-environment-7)
(python-shell-calculate-process-environment-8)
(python-shell-calculate-exec-path-3)
(python-shell-calculate-exec-path-4)
(python-shell-calculate-exec-path-5)
(python-shell-calculate-exec-path-6)
(python-shell-with-environment-3): New tests.
(python-shell-calculate-process-environment-2)
(python-shell-calculate-process-environment-3)
(python-shell-calculate-process-environment-4)
(python-shell-calculate-process-environment-5)
(python-shell-calculate-exec-path-1)
(python-shell-calculate-exec-path-2)
(python-shell-with-environment-1)
(python-shell-with-environment-2): Update and simplify.
2015-08-21 19:06:57 -03:00
Paul Eggert
c1cacb0994 Avoid hard-coding "M-x command" in docstrings
* lisp/calendar/todo-mode.el (todo-mode):
* lisp/desktop.el (desktop-save-mode):
* lisp/edmacro.el (edit-kbd-macro):
* lisp/emacs-lisp/package.el (package-menu-execute):
* lisp/emulation/viper-cmd.el (viper-ask-level):
* lisp/emulation/viper-init.el (viper-expert-level):
* lisp/filesets.el (filesets-add-buffer):
* lisp/follow.el (follow-mode):
* lisp/gnus/auth-source.el (auth-sources):
* lisp/international/ogonek.el (ogonek-informacja)
(ogonek-information):
* lisp/net/tramp.el (tramp-process-actions):
* lisp/org/org-gnus.el (org-gnus-no-new-news):
* lisp/org/org.el (org-ellipsis):
* lisp/progmodes/python.el (python-shell-get-process-or-error):
* lisp/progmodes/vhdl-mode.el (vhdl-mode):
* lisp/server.el (server-start):
* lisp/type-break.el (type-break-noninteractive-query):
* lisp/userlock.el (ask-user-about-supersession-help):
* lisp/whitespace.el (whitespace-report-region):
Prefer (substitute-command-keys "`\\[foo-command]'")
to "`M-x foo-command'" in docstrings and the like.
2015-08-21 14:09:47 -07:00
Fabián Ezequiel Gallina
197f280042 ; python.el: Emacs 24.x compatibility fixes
* lisp/progmodes/python.el: Provide compatibility alternatives for
prog-widen and prog-first-column.
2015-08-11 23:56:25 -03:00
Fabián Ezequiel Gallina
287bce9888 python.el: Fix local/remote shell environment setup
* lisp/progmodes/python.el (python-shell-with-environment): Fix
remote/local environment setup.

* test/automated/python-tests.el (python-shell-with-environment-1)
(python-shell-with-environment-2): New tests.
2015-07-06 20:08:01 -03:00
Fabián Ezequiel Gallina
0fdc3f2ee8 python.el: Respect process environment for remote shells
* lisp/progmodes/python.el
(python-shell-calculate-process-environment): Calculate
process-environment or tramp-remote-process-environment depending
whether current file is remote.
(python-shell-calculate-exec-path): Calculate exec-path or
tramp-remote-path depending whether current file is remote.
(python-shell-with-environment): New macro.
(python-shell-prompt-detect, python-shell-calculate-command)
(python-shell-make-comint, python-check): Use it.
2015-07-06 07:57:14 -03:00
Fabián Ezequiel Gallina
f3400f4ca6 python.el: Avoid making let-bound defvars buffer local (Bug#18244)
* lisp/progmodes/python.el (python-shell--interpreter)
(python-shell--interpreter-args): New vars.
(inferior-python-mode, python-shell-make-comint): Use them.
2015-07-06 02:34:44 -03:00
Fabián Ezequiel Gallina
8867296609 ; python.el: Replace eval-when-compile with eval-and-compile 2015-07-06 02:02:06 -03:00
Fabián Ezequiel Gallina
02dc8dac7e python.el: Fixes for IPython 3.x (Bug#20580)
* lisp/progmodes/python.el:
(python-shell-completion-native-setup): Fix IPython 3.x setup.
(python-shell-completion-native-get-completions): Fix timeout
logic.
2015-07-06 01:59:02 -03:00
Fabián Ezequiel Gallina
a5e39bfae8 python.el: Fix mark-defun behavior (Bug#19665)
* lisp/progmodes/python.el: (python-mark-defun): New function.

* test/automated/python-tests.el (python-mark-defun-1)
(python-mark-defun-2, python-mark-defun-3): New tests.
2015-07-06 01:04:00 -03:00
Christoph Wedler
044d4cc0c0 Respect `prog-indentation-context' in python.el
* lisp/progmodes/python.el (python-indent-guess-indent-offset)
(python-indent-context, python-indent--calculate-indentation)
(python-info-current-defun)
(python-info-dedenter-opening-block-message)
(python-info-line-ends-backslash-p)
(python-info-beginning-of-backslash)
(python-info-continuation-line-p): Use `prog-widen'.
(python-indent--calculate-indentation)
(python-indent--calculate-levels)
(python-indent-calculate-indentation): Use `prog-first-column'.
(python-indent--calculate-levels): Simplify.

Ignore also initial empty lines for syntax calculation.
* lisp/progmodes/python.el (python-indent-context): Return
:no-indent for first non-empty line, not just in line 1.
* test/automated/python-tests.el (python-indent-base-case)
(python-indent-inside-paren-1, python-indent-inside-paren-2)
(python-indent-inside-paren-3, python-indent-inside-paren-4)
(python-indent-inside-paren-5, python-indent-inside-paren-6)
(python-indent-after-backslash-1)
(python-indent-after-backslash-2)
(python-indent-after-backslash-3)
(python-indent-after-backslash-4, python-indent-inside-string-1):
Expect :no-indent for first non-empty line.
2015-07-05 08:52:03 +00:00
Paul Eggert
96794d2f97 Don't quote nil and t in doc strings
This is as per "Tips for Documentation Strings" in the elisp manual.
For consistency, do the same in diagnostics and comments.
2015-05-21 10:06:44 -07:00
Fabián Ezequiel Gallina
e35bf57271 python.el: better limit for looking-back calls
* lisp/progmodes/python.el (python-shell-accept-process-output):
Use last comint prompt start as limit for looking-back.
2015-05-11 00:03:08 -03:00
Fabián Ezequiel Gallina
8b7e2c495a python.el: Fix warnings on looking-back calls missing LIMIT
* lisp/progmodes/python.el (python-shell-accept-process-output):
Pass LIMIT arg to looking-back.
2015-04-29 21:09:58 -03:00
Paul Eggert
8f1eda7a8a Spelling fixes 2015-04-19 23:59:46 -07:00
Fabián Ezequiel Gallina
659609d182 python.el: Keep symmetry on sexp navigation with parens
Fixes: debbugs:19954

* lisp/progmodes/python.el
(python-nav--forward-sexp): Add argument skip-parens-p.
(python-nav-forward-sexp, python-nav-backward-sexp)
(python-nav-forward-sexp-safe)
(python-nav-backward-sexp-safe): Use it.

* test/automated/python-tests.el
(python-nav-forward-sexp-1): Fix test.
2015-04-12 22:43:44 -03:00
Fabián Ezequiel Gallina
c9415ccbf8 python.el: Indent docstring lines to base-indent
Fixes: debbugs:19595

Thanks to immerrr <immerrr@gmail.com> for reporting and providing
an initial patch.

* lisp/progmodes/python.el
(python-indent-context): Add :inside-docstring context.
(python-indent--calculate-indentation): Handle :inside-docstring.
(python-indent-region): Re-indent docstrings.

* test/automated/python-tests.el (python-indent-region-5)
(python-indent-inside-string-2): Fix tests.
2015-04-09 01:41:55 -03:00
Fabián Ezequiel Gallina
911ed2eba4 python.el: Increase native completion robustness
Fixes: debbugs:19755

Thanks to Carlos Pita <carlosjosepita@gmail.com> for reporting
this and providing useful ideas.

* lisp/progmodes/python.el
(python-shell-completion-native-output-timeout): Increase value.
(python-shell-completion-native-try-output-timeout): New var.
(python-shell-completion-native-try): Use it.
(python-shell-completion-native-setup): New readline setup avoids
polluting current context, ensures output when no-completions are
available and includes output end marker.
(python-shell-completion-native-get-completions): Trigger with one
tab only.  Call accept-process-output until output end is found or
python-shell-completion-native-output-timeout is exceeded.
2015-04-09 00:53:18 -03:00
Fabián Ezequiel Gallina
ab9252a01a python.el: Do not break IPython magic completions.
Fixes: debbugs:19736

* lisp/progmodes/python.el (python-shell-completion-setup-code):
Cleaner setup; import rlcompleter as last resource.
2015-04-06 19:18:46 -03:00
Fabián Ezequiel Gallina
cf7b034ee1 Fix previous commit to prevent infloop 2015-04-06 01:22:19 -03:00
Fabián Ezequiel Gallina
deea36f0ec python.el: Enhance docstring detection following PEP-257.
* lisp/progmodes/python.el (python-docstring-at-p): Remove function.
(python-info-assignment-statement-p): New function.
(python-info-assignment-continuation-line-p): Use it.
(python-info-docstring-p): New function.
(python-font-lock-syntactic-face-function)
(python-fill-string): Use it.

* test/automated/python-tests.el (python-info-assignment-statement-p-1)
(python-info-assignment-statement-p-2)
(python-info-assignment-statement-p-3, python-info-docstring-p-1)
(python-info-docstring-p-2, python-info-docstring-p-3)
(python-info-docstring-p-4, python-info-docstring-p-5)
(python-info-docstring-p-6): New tests.
2015-04-05 23:58:13 -03:00
Daniel Colascione
1d02107dab Shut up python-mode's indentation guesser
* lisp/progmodes/python.el
(python-indent-guess-indent-offset-verbose): New defcustom.
(python-indent-guess-indent-offset): Use it.
2015-03-26 13:46:06 -07:00
Paul Eggert
37ad855a38 Merge from origin/emacs-24
f160106 Avoid assertion violations in Rmail due to newline cache
1b0ebbd browse-url-firefox: update for firefox 36's removal of -remote
1817892 Avoid erratic behavior of menu-bar tooltips on w32  (Bug#19925)
0260932 Bump python.el version
b0adfc7 Spelling fixes
35f047c * src/fileio.c (Fmake_temp_name): Doc tweaks.
6f2971a * lisp/comint.el (comint-line-beginning-position): Revert searching
65d8ac7 Mention in admin/notes/repo how to mark commits not to be merged.
86fe750 # Remove NEWS temporary markup
4fa778b erc.el: Add old version header for package.el compatibilty
9366f05 Tramp: Disable paging with PAGER=cat

Conflicts:
	admin/notes/repo
	etc/NEWS
	lisp/ChangeLog
	lisp/erc/ChangeLog
	src/ChangeLog
2015-03-03 14:41:30 -08:00
Paul Eggert
d8e9122115 Merge from origin/emacs-24
e726f20 Handle "#" operator properly inside macro.  Fix coding bug.
618931b Handle dead frame in menu-bar-non-minibuffer-window-p.  (Bug#19728)
017a03a Document MS-Windows file-name idiosyncrasies  (Bug#19463)
f3faf4f Fix description of Customize buffer in Emacs manual.
1c1d0b7 Fix a typo in the Emacs manual's Hungry Delete description.
be7fb82 src/dispextern.h (FACE_FOR_CHAR): Fix the commentary.
33c4409 Spelling fixes
6c8231e python.el: Handle tabs in python-indent-dedent-line.
41c3b92 * lisp/progmodes/python.el: Respect user indentation after comment.
868df45 Avoid compiler warnings in decode_env_path.
b28c979 Fix XEmacs version typo in comment and ChangeLog
989fb32 Improve solution of bug #19701
6310530 Fix refilling of list of language environments in User Manual
c4c447d Restore XEmacs compatibility

Conflicts:
	doc/emacs/ChangeLog
	lisp/ChangeLog
	src/ChangeLog
	test/ChangeLog
2015-02-25 22:53:56 -08:00
Fabián Ezequiel Gallina
02609324ce Bump python.el version 2015-02-21 18:43:33 -03:00
Fabián Ezequiel Gallina
16d91bce1d python.el: Do not deactivate mark on shell fontification.
Fixes: debbugs:19871

* lisp/progmodes/python.el (python-shell-font-lock-post-command-hook):
Do not deactivate mark on fontification.
2015-02-16 19:53:59 -03:00
Fabián Ezequiel Gallina
da726ad0c6 python.el: Allow killing shell buffer if process is dead.
Fixes: debbugs:19823

* lisp/progmodes/python.el (python-shell-font-lock-kill-buffer): Don't
require a running process.
(python-shell-font-lock-post-command-hook): Fontify only if the
shell process is running.
2015-02-12 00:41:07 -03:00
Fabián Ezequiel Gallina
880415a6a6 python.el: Fix typo in eldoc initialization for Emacs 24.x 2015-02-09 23:53:11 -03:00
Fabián Ezequiel Gallina
859e865e93 python.el: Improved shell font lock respecting markers.
Fixes: debbugs:19650

* lisp/progmodes/python.el
(python-shell-font-lock-get-or-create-buffer): Use special buffer name.
(python-shell-font-lock-with-font-lock-buffer): Enable font lock.
(python-shell-font-lock-post-command-hook): Fontify by copying text
properties from fontified buffer to shell, keeping markers unchanged.
(python-shell-font-lock-turn-off): Fix typo.
(python-util-text-properties-replace-name): Delete function.
2015-02-09 23:44:06 -03:00
Fabián Ezequiel Gallina
dcec731abf python.el: Fix completion-at-point.
Fixes: debbugs:19667

* lisp/progmodes/python.el
(python-shell-completion-native-get-completions): Force process
buffer.
(python-shell-completion-at-point): Handle case where call is not
in a shell buffer.
2015-02-08 01:31:12 -03:00
Fabián Ezequiel Gallina
67dfbd6057 python.el: Fix shell font-lock multiline input.
Fixes: debbugs:19744

* lisp/progmodes/python.el
(python-shell-font-lock-post-command-hook): Handle multiline
input.
2015-02-08 00:36:30 -03:00
Fabián Ezequiel Gallina
52df70a887 python.el: Make shell font-lock respect markers.
Fixes: debbugs:19650

* lisp/progmodes/python.el (python-shell-font-lock-cleanup-buffer): Use
`erase-buffer`.
(python-shell-font-lock-comint-output-filter-function): Handle
newlines.
(python-shell-font-lock-post-command-hook): Respect markers on
text fontification.
2015-02-08 00:25:20 -03:00
Fabián Ezequiel Gallina
2155973e5e python.el: Keep eldoc visible while typing args.
Fixes: debbugs:19637

* lisp/progmodes/python.el (python-eldoc--get-symbol-at-point): New
function.
(python-eldoc--get-doc-at-point, python-eldoc-at-point): Use it.

* test/automated/python-tests.el
(python-eldoc--get-symbol-at-point-1)
(python-eldoc--get-symbol-at-point-2)
(python-eldoc--get-symbol-at-point-3)
(python-eldoc--get-symbol-at-point-4): New tests.
2015-02-07 18:39:07 -03:00
Fabián Ezequiel Gallina
2d467a0ff0 Fix hideshow integration.
Fixes: debbugs:19761

* lisp/progmodes/python.el
(python-hideshow-forward-sexp-function): New function based on
Carlos Pita <carlosjosepita@gmail.com> patch.
(python-mode): Make `hs-special-modes-alist` use it and initialize
the end regexp with the empty string to avoid skipping parens.

* test/automated/python-tests.el
(python-tests-visible-string): New function.
(python-parens-electric-indent-1)
(python-triple-quote-pairing): Fix indentation, move require calls.
(python-hideshow-hide-levels-1)
(python-hideshow-hide-levels-2): New tests.
2015-02-07 16:43:47 -03:00
Fabián Ezequiel Gallina
86c50b9af1 * lisp/progmodes/python.el (python-check-custom-command): Do not use
defvar-local for compat with Emacs<24.3.
2015-02-07 14:25:47 -03:00
Stefan Monnier
683d4b6e92 * lisp/progmodes/python.el: Preserve compatibility with Emacs-24
(python-mode): Don't assume eldoc-documentation-function has a non-nil
default.
2015-02-04 21:47:22 -05:00
Sam Steingold
4188e3cc2b Avoid the error when computing top-level indentation.
* lisp/progmodes/python.el (python-indent-calculate-indentation):
Do not apply max to an empty list
2015-02-04 16:26:43 -05:00
Paul Eggert
33c4409a8e Spelling fixes 2015-01-29 19:47:35 -08:00
Fabián Ezequiel Gallina
6c8231ee8c python.el: Handle tabs in python-indent-dedent-line.
Fixes: debbugs:19730

* lisp/progmodes/python.el (python-indent-dedent-line): Fixes for
indentation with tabs.  Thanks to <dale@codefu.org>.

* test/automated/python-tests.el
(python-indent-dedent-line-backspace-2)
(python-indent-dedent-line-backspace-3): New tests.
2015-01-30 00:41:52 -03:00
Fabián Ezequiel Gallina
41c3b9241c * lisp/progmodes/python.el (python-indent-context): Respect user
indentation after comment.

* test/automated/python-tests.el (python-indent-pep8-1)
(python-indent-pep8-2, python-indent-pep8-3)
(python-indent-after-comment-2): Fix tests.
(python-indent-after-comment-3): New test.
2015-01-30 00:19:55 -03:00
Fabián Ezequiel Gallina
95a2cb24b0 Merge from origin/emacs-24
9664def Signal a file-error from directory-files on MS-Windows  (Bug#19701)
fd4e65e Added missing test for previous commit
5485e3e5 python.el: New non-global state dependent indentation engine.
3b23e6a Fix the description of --insert command-line option  (Bug#19694)
7a7e594 Add a cross-reference in ELisp manual.  (Bug#19668)
b4f4075 Fixes: debbugs:19660
83b3c31 * test/automated/regexp-tests.el: Require regexp-opt

Conflicts:
	lisp/progmodes/python.el
2015-01-28 01:08:18 -03:00
Sam Steingold
bd7a1e1564 minor tweaks for `python-check'
* lisp/progmodes/python.el (python-check-custom-command): Buffer local
because it usually includes the buffer name.
(python-check-command): Set to epylint when pyflakes is not available.
2015-01-27 13:20:57 -05:00
Fabián Ezequiel Gallina
5485e3e5b2 python.el: New non-global state dependent indentation engine.
Fixes: debbugs:18319
Fixes: debbugs:19595

* lisp/progmodes/python.el (python-syntax-comment-or-string-p): Accept
PPSS as argument.
(python-syntax-closing-paren-p): New function.
(python-indent-current-level)
(python-indent-levels): Mark obsolete.
(python-indent-context): Return more context cases.
(python-indent--calculate-indentation)
(python-indent--calculate-levels): New functions.
(python-indent-calculate-levels): Use them.
(python-indent-calculate-indentation, python-indent-line):
(python-indent-line-function): Rewritten to use new API.
(python-indent-dedent-line): Simplify logic.
(python-indent-dedent-line-backspace): Use `unless`.
(python-indent-toggle-levels): Delete function.

* test/automated/python-tests.el (python-indent-pep8-1)
(python-indent-pep8-2, python-indent-pep8-3)
(python-indent-after-comment-1, python-indent-after-comment-2)
(python-indent-inside-paren-1, python-indent-inside-paren-2)
(python-indent-after-block-1, python-indent-after-block-2)
(python-indent-after-backslash-1, python-indent-after-backslash-2)
(python-indent-after-backslash-3, python-indent-block-enders-1)
(python-indent-block-enders-2, python-indent-block-enders-3)
(python-indent-block-enders-4, python-indent-block-enders-5)
(python-indent-dedenters-1, python-indent-dedenters-2)
(python-indent-dedenters-3, python-indent-dedenters-4)
(python-indent-dedenters-5, python-indent-dedenters-6)
(python-indent-dedenters-7, python-indent-dedenters-8): Fix tests.
(python-indent-base-case, python-indent-after-block-3)
(python-indent-after-backslash-5, python-indent-inside-paren-3)
(python-indent-inside-paren-4, python-indent-inside-paren-5)
(python-indent-inside-paren-6, python-indent-inside-string-1)
(python-indent-inside-string-2, python-indent-inside-string-3)
(python-indent-dedent-line-backspace-1): New Tests.
2015-01-27 00:17:24 -03:00
Michal Nazarewicz
fd020a2931 eldoc: modify eldoc-documentation-function' using add-function'
* lisp/emacs-lisp/eldoc.el (eldoc-documentation-function): Describe how
major modes should use `add-function' to alter value of the variable.

* lisp/hexl.el (hexl-mode): Set `eldoc-documentation-function' using
`add-function' so the default value is always used.
* lisp/ielm.el (inferior-emacs-lisp-mode): Set
`eldoc-documentation-function' using `add-function' so the default
value is always used.
* lisp/progmodes/cfengine.el (cfengine3-mode): Set
`eldoc-documentation-function' using `add-function' so the default
value is always used.
* lisp/progmodes/elisp-mode (emacs-lisp-mode): Set
`eldoc-documentation-function' using `add-function' so the default
value is always used.
* lisp/progmodes/octave.el (octave-mode): Set
`eldoc-documentation-function' using `add-function' so the default
value is always used.
* lisp/progmodes/python.el (python-mode): Set
`eldoc-documentation-function' using `add-function' so the default
value is always used.
* lisp/simple.el (read--expression): Set `eldoc-documentation-function'
using `add-function' so the default value is always used.
2015-01-20 15:04:15 +01:00
Paul Eggert
7e09ef09a4 Update copyright year to 2015
Run admin/update-copyright.
2015-01-01 14:26:41 -08:00