Commit graph

614 commits

Author SHA1 Message Date
Paul Eggert
0cce3623b1 Merge branch 'emacs-24'. 2014-11-28 23:07:16 -08:00
Fabián Ezequiel Gallina
7bf7edf53f * lisp/progmodes/python.el (python-shell-completion-setup-code): Use
__builtin__ module (or builtins in Python 3) and catch all errors
when importing readline and rlcompleter.
2014-11-26 23:45:24 -03:00
Ted Zlatanov
ba4502fe14 Merge branch 'emacs-24'
Conflicts:
	nt/addsection.c
	nt/inc/ms-w32.h
	src/w32.c
2014-11-26 21:31:11 -05:00
Fabián Ezequiel Gallina
238c052fdb Set PYTHONUNBUFFERED on shell startup.
Fixes: debbugs:18595

* lisp/progmodes/python.el (python-shell-unbuffered): New var.
(python-shell-calculate-process-environment): Use it.

* test/automated/python-tests.el
(python-shell-calculate-process-environment-4)
(python-shell-calculate-process-environment-5): New tests.
(python-shell-make-comint-3): Use file-equal-p.
(python-shell-get-or-create-process-1)
(python-shell-get-or-create-process-2)
(python-shell-get-or-create-process-3): Fix interpreter for
Windows.
2014-11-22 20:09:30 -03:00
Fabián Ezequiel Gallina
c2e145b237 * lisp/progmodes/python.el (python-mode): Avoid use of set-local to
keep Emacs 24.x compatibility.
2014-11-16 17:59:42 -03:00
Fabián Ezequiel Gallina
651ebee618 Fixes: debbugs:18596
* lisp/progmodes/python.el (run-python): Allow CMD to be optional and
default it to a safe command, even for Windows.  (bug#18596)
2014-11-16 11:20:25 -03:00
Fabián Ezequiel Gallina
cf100f60a6 Prevent resizing the echo area when iPython is enabled
Fixes: debbugs:18794

* lisp/progmodes/python.el (python-eldoc--get-doc-at-point): Strip
shell output before returning.
2014-11-16 11:11:49 -03:00
Fabián Ezequiel Gallina
6f167f95dc * lisp/progmodes/python.el (python-shell-calculate-command): Rename
from python-shell-parse-command.  Cleanup.
(run-python, run-python-internal): Use it.
(python-shell-calculate-pythonpath): Rename from
python-new-pythonpath.
(python-shell-calculate-process-environment): Use it.
(python-shell-calculate-exec-path): Add comment.

* test/automated/python-tests.el
(python-shell-calculate-process-environment-2): Fix test.
(python-shell-calculate-process-environment-1)
(python-shell-calculate-process-environment-3): Cleanup.
2014-11-16 10:47:14 -03:00
Stefan Monnier
9075fcc193 Merge from emacs-24 2014-11-16 00:22:20 -05:00
Fabián Ezequiel Gallina
92f58578cc Fixes: debbugs:18432
* lisp/progmodes/python.el (python-indent-calculate-levels): Fix
indentation behavior multiline dedenter statement.

* test/automated/python-tests.el (python-indent-dedenters-8): New test
for Bug#18432.
2014-11-15 19:02:52 -03:00
Fabián Ezequiel Gallina
89ebffc1f6 Fix region indentation
Fixes: debbugs:18843

* lisp/progmodes/python.el (python-indent-region): Use
python-indent-line and skip special cases.

* test/automated/python-tests.el (python-indent-region-1)
(python-indent-region-2, python-indent-region-3)
(python-indent-region-4, python-indent-region-5): New tests.
2014-11-15 18:10:58 -03:00
Fabián Ezequiel Gallina
9ae5396b8f Eldoc setup code enhancements
Fixes: debbugs:18962

* lisp/progmodes/python.el (python-eldoc-setup-code): Enhance string
type checks, simplify printing.
2014-11-15 15:50:30 -03:00
Ivan Andrus
15ec2d7cff Backport Use derived-mode-p in python.el instead of equality test with major-mode
Fixes: debbugs:18854

* progmodes/python.el (python-ffap-module-path): Use
`derived-mode-p' instead of equality test on `major-mode'.
2014-11-14 21:56:11 -07:00
Ivan Andrus
f20a19df87 Use derived-mode-p in python.el instead of equality test on major-mode
* progmodes/python.el (python-shell-font-lock-kill-buffer):
(python-shell-font-lock-with-font-lock-buffer)
(python-shell-get-buffer, python-ffap-module-path): Use
`derived-mode-p' instead of equality test on `major-mode'.
2014-11-14 13:54:10 -07:00
Fabián Ezequiel Gallina
eb97699236 Rename python-shell-virtualenv-path to fit GNU conventions
* lisp/progmodes/python.el (python-shell-virtualenv-root): Rename from
python-shell-virtualenv-path.
(python-shell-internal-get-process-name)
(python-shell-calculate-process-environment)
(python-shell-calculate-exec-path): Use it.
2014-11-14 03:26:08 -03:00
Fabián Ezequiel Gallina
5d977b968c * lisp/progmodes/python.el (python-shell-completion-get-completions):
Fix previous merge.
2014-11-14 02:29:40 -03:00
Stefan Monnier
c9f7e33c60 * lisp/progmodes/python.el (inferior-python-mode): Use add-hook. 2014-10-20 18:37:04 -04:00
Glenn Morris
b1d5ab0352 Merge from emacs-24; up to 2014-07-26T11:58:24Z!schwab@linux-m68k.org 2014-10-12 15:56:45 -07:00
Fabián Ezequiel Gallina
b1be0eda33 Fix import completion.
* lisp/progmodes/python.el (python-shell-completion-get-completions):
Fix import case regexp.

Fixes: debbugs:18582
2014-10-12 12:12:04 -03:00
Stefan Monnier
cb325041b0 * lisp/progmodes/python.el: Avoid building unneeded markers.
(python-font-lock-keywords, python-indent-dedent-line)
(python-fill-paren, python-shell-completion-complete-or-indent):
Prefer point over point-marker.
(inferior-python-mode): Remove redundant completion settings.
2014-10-03 22:35:28 -04:00
Stefan Monnier
d7f413b893 Merge from emacs-24 2014-10-02 11:13:05 -04:00
Stefan Monnier
85ee81a08f * lisp/progmodes/python.el (python-shell-completion-get-completions):
Use python-shell--prompt-calculated-input-regexp from the
process buffer.
Don't assume that `line' comes from the process buffer.

Fixes: debbugs:18582
2014-09-30 20:41:51 -04:00
Stefan Monnier
07bec0fc67 Merge from emacs-24 2014-09-30 19:19:31 -04:00
Leonardo Nobrega
d3b7a90bc2 * lisp/progmodes/python.el (python-fill-paren): Don't inf-loop at EOB.
Fixes: debbugs:18462
2014-09-30 19:00:57 -04:00
Stefan Monnier
cbdc06f3be Rename 24.5 to 25.1
Except where we expect to backport the corresponding change.
2014-09-29 14:14:08 -04:00
Paul Eggert
0f2ed59206 Spelling fixes.
* lisp/ses.el (ses-file-format-extend-parameter-list): Rename from
ses-file-format-extend-paramter-list.  All uses changed.
* lisp/gnus-cloud.el (gnus-cloud-parse-version-1): Fix misspelling
of ":delete".
2014-09-11 12:44:25 -07:00
Glenn Morris
62fca47221 Merge from emacs-24; up to 2014-07-04T02:28:54Z!dmantipov@yandex.ru 2014-09-02 21:21:40 -07:00
Fabián Ezequiel Gallina
0e4c8f1856 * lisp/progmodes/python.el (python-indent-post-self-insert-function):
Avoid electric colon at beginning-of-defun. 

* test/automated/python-tests.el:
(python-indent-electric-colon-1): New test.  (Bug#18228)
2014-09-01 19:51:46 -03:00
Glenn Morris
6d26235315 Merge from emacs-24; up to 2014-07-02T00:57:53Z!juri@jurta.org 2014-08-27 18:59:29 -07:00
Sam Steingold
3f05baa175 Extract python-new-pythonpath to handle PYTHONPATH in user code
* lisp/progmodes/python.el (python-new-pythonpath): Extract from
`python-shell-calculate-process-environment'.
2014-08-20 11:33:10 -04:00
Stefan Monnier
5d3c0a067f * lisp/progmodes/python.el (python-shell-prompt-detect): Remove redundant
executable-find.

Fixes: debbugs:18244
2014-08-18 12:11:43 -04:00
Fabián Ezequiel Gallina
5ea39c0613 * lisp/progmodes/python.el: Fix completions inside (i)pdb.
(python-shell-completion-pdb-string-code): Make obsolete.
(python-shell-completion-get-completions): Use
python-shell-completion-string-code resending setup code
continuously for (i)pdb.
2014-08-04 18:35:17 -03:00
Fabián Ezequiel Gallina
01c600f6d6 * progmodes/python.el: Completion code cleanups.
(python-shell-completion-get-completions): Detect and send import
statements directly to completion function.
(python-shell-completion-at-point): Simplify prompt calculation
and import vs input completion logic.
2014-08-02 19:52:55 -03:00
Fabián Ezequiel Gallina
bc1ce1df86 * lisp/progmodes/python.el: Shell output capture enhancements.
(python-shell-accept-process-output): New function.
(inferior-python-mode)
(python-shell-send-setup-code): Use it.
2014-07-31 21:18:19 -03:00
Fabián Ezequiel Gallina
6628be853e * lisp/progmodes/python.el (inferior-python-mode): Make input prompts
read-only.
2014-07-28 18:07:10 -03:00
Glenn Morris
da41ffdd08 Merge from emacs-24; up to 2014-06-26T06:55:15Z!rgm@gnu.org 2014-07-28 05:39:09 -04:00
Fabián Ezequiel Gallina
7daa4ff121 Parse completion input in a iPython friendly way.
* lisp/progmodes/python.el
(python-shell-completion-at-point): Rename from
python-shell-completion-complete-at-point.
(inferior-python-mode): Use it.
(python-completion-at-point): Rename from
python-completion-complete-at-point.  Parse input up to first
backward occurrence of whitespace, open-paren, close-paren or
string delimiter.
(python-mode): Use it.

Fixes: debbugs:18084
2014-07-28 01:32:28 -03:00
Fabián Ezequiel Gallina
4256626a7a Prevent Python process shell buffer to pop twice.
* lisp/progmodes/python.el (python-shell-switch-to-shell): Do not call
pop-to-buffer.
2014-07-28 00:58:06 -03:00
Fabián Ezequiel Gallina
ca43b53625 * lisp/progmodes/python.el
(python-shell-with-shell-buffer): New macro.
(python-shell-font-lock-get-or-create-buffer)
(python-shell-font-lock-kill-buffer)
(python-shell-font-lock-with-font-lock-buffer)
(python-shell-font-lock-cleanup-buffer)
(python-shell-font-lock-toggle): Use it.
(python-shell-font-lock-turn-on)
(python-shell-font-lock-turn-off): Use it.  Make command.
2014-07-28 00:35:37 -03:00
Fabián Ezequiel Gallina
f5bed1021b Grab all Python process output before inferior-python-mode hooks.
* lisp/progmodes/python.el (inferior-python-mode): Call
accept-process-output and sit-for to ensure all output for process
has been received before running hooks.
(python-shell-internal-get-or-create-process): Cleanup
accept-process-output and sit-for calls.
2014-07-27 23:47:29 -03:00
Fabián Ezequiel Gallina
72c64ae95a More robust shell startup and code setup.
* lisp/progmodes/python.el (python-shell-make-comint): Remove
accept-process-output call.
(python-shell-get-buffer): Return current buffer if major-mode is
inferior-python-mode.
(python-shell-get-or-create-process): Use it.
(python-shell-send-setup-code): Send all setup code in one string,
output success message and accept-process-output.
2014-07-27 22:41:29 -03:00
Fabián Ezequiel Gallina
c76059efc6 Cleanup error signals.
* lisp/progmodes/python.el
(python-indent-shift-left): Use user-error instead.
(python-shell-prompt-detect): Use lwarn with python group.
(python-completion-complete-at-point)
(python-eldoc--get-doc-at-point): Don't signal error.

Fixes: debbugs:18067
2014-07-27 04:05:13 -03:00
Fabián Ezequiel Gallina
4b03be01ce Support for packages in Python shell.
* lisp/progmodes/python.el (python-shell--package-depth): New var.
(python-shell-package-enable): New command.
(python-util-list-directories, python-util-list-files)
(python-util-list-packages): New functions.

Fixes: debbugs:13570
2014-07-27 03:39:17 -03:00
Glenn Morris
9578a71f2e * python.el (python-shell-enable-font-lock): Fix typo in earlier change. 2014-07-26 22:59:49 -04:00
Fabián Ezequiel Gallina
a6dc66a544 Faster comint output.
* lisp/progmodes/python.el:
(python-comint-output-filter-function): Make obsolete.
(python-comint-postoutput-scroll-to-bottom): New function.
(inferior-python-mode): Set comint-output-filter-functions to a
minimum.

Fixes: debbugs:16875
2014-07-26 23:02:38 -03:00
Fabián Ezequiel Gallina
85bc77b270 * lisp/progmodes/python.el (inferior-python-mode): Doc fix. 2014-07-26 22:36:48 -03:00
Fabián Ezequiel Gallina
ef29dc9b14 * lisp/progmodes/python.el (python-shell-font-lock-post-command-hook):
Safeguard current point and undo history.
2014-07-26 22:00:26 -03:00
Fabián Ezequiel Gallina
60cc81af68 Robust shell syntax highlighting. (Bug#18084, Bug#16875)
* lisp/progmodes/python.el:
(python-shell-prompt-input-regexps): Add iPython block prompt.
(python-shell-output-syntax-table): Delete var.
(python-shell-font-lock-with-font-lock-buffer): New macro.
(python-shell-font-lock-get-or-create-buffer)
(python-shell-font-lock-kill-buffer)
(python-shell-font-lock-cleanup-buffer)
(python-shell-font-lock-post-command-hook)
(python-shell-font-lock-turn-off): New functions.
(python-shell-font-lock-turn-on): New function.
(inferior-python-mode): Use it.
(python-shell-font-lock-toggle): New command.
(python-shell-font-lock-enable): Rename from
python-shell-enable-font-lock.
(run-python-internal): Use it.
(python-shell-font-lock-comint-output-filter-function): New function.
(python-shell-comint-end-of-output-p): New function.
(python-shell-output-filter): Use it.
(python-util-comint-last-prompt): New function.
(python-util-text-properties-replace-name): New function.
2014-07-26 20:43:51 -03:00
Paul Eggert
ad4c5263f5 Spelling fixes. 2014-07-21 07:41:19 -07:00
Glenn Morris
190644a011 Merge from emacs-24; up to 2014-06-25T10:17:41Z!rgm@gnu.org 2014-07-21 02:03:08 -04:00
Fabián Ezequiel Gallina
1651cf2ed5 * lisp/progmodes/python.el: Add comment about pipe buffering and
solutions for missing/delayed output in inferior Python shells.

Fixes: debbugs:17304
2014-07-20 16:51:16 -03:00
Fabián Ezequiel Gallina
f72d7fa132 * lisp/progmodes/python.el (python-mode): Don't set
mode-require-final-newline.

Fixes: debbugs:17990
2014-07-20 15:28:50 -03:00
Fabián Ezequiel Gallina
b06a0dff84 Make python.el work with IPython automatically.
* lisp/progmodes/python.el:
(python-shell-completion-setup-code): New value supporting iPython.
(python-shell-completion-string-code): New value supporting iPython.
(python-shell-completion-get-completions): Use them.
(python-shell-completion-module-string-code): Make obsolete.
(python-shell-prompt-input-regexps)
(python-shell-prompt-output-regexps): Add safeguard for ipdb.
(python-shell-output-filter): Fix comment typo.

* test/automated/python-tests.el:
(python-util-clone-local-variables-1): Fix test.

Fixes: debbugs:15510
2014-07-20 15:12:30 -03:00
Fabián Ezequiel Gallina
eb8cb39e89 Fix Python shell prompts detection for remote hosts.
* lisp/progmodes/python.el (python-shell-prompt-detect): Replace
call-process with process-file and make it more robust.
2014-07-19 16:19:47 -03:00
Fabián Ezequiel Gallina
d949ade3c1 Autodetect Python shell prompts.
* lisp/progmodes/python.el:
(python-shell-interpreter-interactive-arg)
(python-shell-prompt-detect-enabled)
(python-shell-prompt-detect-failure-warning)
(python-shell-prompt-input-regexps)
(python-shell-prompt-output-regexps): New vars.
(python-shell-prompt-calculated-input-regexp)
(python-shell-prompt-calculated-output-regexp): New vars.
(python-shell-get-process-name)
(python-shell-internal-get-process-name)
(python-shell-output-filter)
(python-shell-completion-get-completions): Use them.
(python-shell-prompt-detect)
(python-shell-prompt-validate-regexps): New functions.
(python-shell-prompt-set-calculated-regexps): New function.
(inferior-python-mode): Use it.  Also honor overriden
python-shell-interpreter and python-shell-interpreter-args.
(python-shell-make-comint): Honor overriden
python-shell-interpreter and python-shell-interpreter-args.
(python-shell-get-or-create-process): Make it testable by allowing
to call run-python non-interactively.
(python-util-valid-regexp-p): New function.
(python-shell-prompt-regexp, python-shell-prompt-block-regexp)
(python-shell-prompt-output-regexp)
(python-shell-prompt-pdb-regexp): Use it as defcustom :safe.

* test/automated/python-tests.el (python-shell-make-comint-1):
(python-shell-make-comint-2): Fix indentation.
(python-shell-make-comint-3)
(python-shell-make-comint-4): New tests.
(python-shell-get-or-create-process-1): Fix test.
(python-shell-get-or-create-process-2)
(python-shell-get-or-create-process-3): New tests.
(python-shell-internal-get-or-create-process-1): Fix test.
(python-shell-prompt-detect-1): New test.
(python-shell-prompt-detect-2): New test.  (Bug#17370)
(python-shell-prompt-detect-3)
(python-shell-prompt-detect-4)
(python-shell-prompt-detect-5)
(python-shell-prompt-detect-6)
(python-shell-prompt-validate-regexps-1)
(python-shell-prompt-validate-regexps-2)
(python-shell-prompt-validate-regexps-3)
(python-shell-prompt-validate-regexps-4)
(python-shell-prompt-validate-regexps-5)
(python-shell-prompt-validate-regexps-6)
(python-shell-prompt-validate-regexps-7)
(python-shell-prompt-set-calculated-regexps-1)
(python-shell-prompt-set-calculated-regexps-2)
(python-shell-prompt-set-calculated-regexps-3)
(python-shell-prompt-set-calculated-regexps-4)
(python-shell-prompt-set-calculated-regexps-5)
(python-shell-prompt-set-calculated-regexps-6)
(python-util-valid-regexp-p-1): New tests.
2014-07-19 10:13:07 -03:00
Glenn Morris
b39c4d7b33 Merge from emacs-24; up to 2014-06-22T05:00:14Z!dmantipov@yandex.ru 2014-07-12 10:53:29 -07:00
Fabián Ezequiel Gallina
fded0b4a15 Fix dedenters and electric colon handling.
* lisp/progmodes/python.el
(python-rx-constituents): Add dedenter and block-ender.
(python-indent-dedenters, python-indent-block-enders): Delete.
(python-indent-context): Return new case for dedenter-statement.
(python-indent-calculate-indentation): Handle new case.
(python-indent-calculate-levels): Fix levels calculation for
dedenter statements.
(python-indent-post-self-insert-function): Fix colon handling.
(python-info-dedenter-opening-block-message): New function.
(python-indent-line): Use it.
(python-info-closing-block)
(python-info-closing-block-message): Remove.
(python-info-dedenter-opening-block-position)
(python-info-dedenter-opening-block-positions)
(python-info-dedenter-statement-p): New functions.

* test/automated/python-tests.el
(python-indent-block-enders-1)
(python-indent-block-enders-2): Fix tests.
(python-indent-block-enders-3)
(python-indent-block-enders-4)
(python-indent-block-enders-5)
(python-indent-dedenters-1)
(python-indent-dedenters-2): Remove tests.
(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-info-dedenter-opening-block-position-1)
(python-info-dedenter-opening-block-position-2)
(python-info-dedenter-opening-block-position-3)
(python-info-dedenter-opening-block-positions-1)
(python-info-dedenter-opening-block-positions-2)
(python-info-dedenter-opening-block-positions-3)
(python-info-dedenter-opening-block-positions-4)
(python-info-dedenter-opening-block-positions-5)
(python-info-dedenter-opening-block-message-1)
(python-info-dedenter-opening-block-message-2)
(python-info-dedenter-opening-block-message-3)
(python-info-dedenter-opening-block-message-4)
(python-info-dedenter-opening-block-message-5)
(python-info-dedenter-statement-p-1)
(python-info-dedenter-statement-p-2)
(python-info-dedenter-statement-p-3)
(python-info-dedenter-statement-p-4)
(python-info-dedenter-statement-p-5): New tests.

Fixes: debbugs:15163
2014-07-09 00:55:53 -03:00
Glenn Morris
2d3c9015c7 Merge from emacs-24; up to 2014-06-15T04:52:34Z!eli@barzilay.org 2014-07-02 23:00:53 -07:00
Fabián Ezequiel Gallina
3acd6262d9 * lisp/progmodes/python.el (python-indent-post-self-insert-function):
Enhancements to electric indentation behavior inside
parens.

* test/automated/python-tests.el
(python-tests-self-insert): New function.
(python-triple-quote-pairing): Use it.
(python-util-forward-comment-1): New test. (Bug#17658)
2014-07-01 00:54:11 -03:00
Glenn Morris
c400516ab1 Merge from emacs-24; up to 2014-06-06T02:22:40Z!monnier@iro.umontreal.ca 2014-06-21 12:45:59 -07:00
Fabián Ezequiel Gallina
656f99beeb Fix completion retrieval parsing.
* progmodes/python.el (python-mode):
(python-util-strip-string): New function.
(python-shell-completion-get-completions): Use it.

* automated/python-tests.el (python-util-strip-string-1): New test.

Fixes: debbugs:17209
2014-06-21 11:14:54 -03:00
Fabián Ezequiel Gallina
3114d9e702 Enhancements for outline integration.
* lisp/progmodes/python.el (python-mode): Properly set
outline-heading-end-regexp so that comments after colons for
defuns are supported.

Fixes: debbugs:17796
2014-06-21 08:26:43 -03:00
Matthias Meulien
c77f4a90b2 * lisp/progmodes/python.el (import skeleton): New skeleton.
(python-mode-map): Bind it.

Fixes: debbugs:17672
2014-06-11 22:35:26 -04:00
Matthias Meulien
82fb2a08db * lisp/progmodes/python.el (class skeleton): Don't erase last char of class
name.

Fixes: debbugs:17683
2014-06-11 22:24:24 -04:00
Eric Hanchrow
846e6e843e * lisp/progmodes/python.el (run-python): Use read-shell-command. 2014-06-11 21:45:33 -04:00
Sam Steingold
b8e11d4102 avoid unnecessary questions
* lisp/progmodes/python.el (python-shell-get-or-create-process):
Do not bind `current-prefix-arg' so that C-c C-z does not talk
back unless requested.
2014-05-14 14:17:05 -04:00
João Távora
7aecc2f6ca Fix triple-quoting electricity in python-mode
* lisp/progmodes/python.el (python-electric-pair-string-delimiter): Fix
triple-quoting electricity. 

* test/automated/python-tests.el (python-triple-quote-pairing): New test.
(python-syntax-after-python-backspace): New test.

Fixes: debbugs:17192
2014-04-07 00:23:45 +01:00
Juanma Barranquero
fd16b061a9 lisp/progmodes/python.el: Fix docstring typos.
(defconst, python-syntax-count-quotes)
(python-indent-region, python-indent-shift-right)
(python-indent-dedent-line-backspace, python-nav-backward-sexp)
(python-nav-backward-sexp-safe, python-nav-backward-up-list)
(python-shell-prompt-block-regexp, python-shell-prompt-output-regexp)
(python-shell-prompt-pdb-regexp, python-shell-enable-font-lock)
(inferior-python-mode, python-shell-make-comint, run-python-internal)
(python-shell-buffer-substring, python-shell-send-buffer)
(python-pdbtrack-activate, python-pdbtrack-stacktrace-info-regexp)
(python-completion-complete-at-point, python-fill-docstring-style)
(python-eldoc-function, python-imenu-format-item-label)
(python-imenu-format-parent-item-label)
(python-imenu-format-parent-item-jump-label)
(python-imenu--build-tree, python-imenu-create-index)
(python-imenu-create-flat-index): Fix docstring typos.
(python-indent-context, python-shell-prompt-regexp, run-python):
Remove superfluous backslashes.
(python-indent-line, python-nav-beginning-of-defun)
(python-shell-get-buffer, python-shell-get-process)
(python-info-current-defun, python-info-current-line-comment-p)
(python-info-current-line-empty-p, python-util-popn): Doc fixes.
(python-indent-post-self-insert-function, python-shell-send-file)
(python-shell-completion-get-completions)
(python-shell-completion-complete-or-indent)
(python-eldoc--get-doc-at-point): Reflow docstrings.
2014-03-15 18:37:58 +01:00
Glenn Morris
34dc21db6e Replace "Maintainer: FSF" with the emacs-devel mailing address 2014-02-09 17:34:22 -08:00
Fabián Ezequiel Gallina
dd27d13b50 * progmodes/python.el (python-shell-send-string):
(python-shell-send-string-no-output): Fix docstring.

Fixes: debbugs:16547
2014-02-04 16:35:52 -03:00
Paul Eggert
ba3189039a Update copyright year to 2014 by running admin/update-copyright. 2014-01-01 07:43:34 +00:00
Fabián Ezequiel Gallina
fbcc63a317 * lisp/progmodes/python.el: Use lexical-binding.
(python-nav-beginning-of-defun): Stop searching ASAP.
2013-12-26 13:45:19 -03:00
Fabián Ezequiel Gallina
0137922173 * lisp/progmodes/python.el:
(python-nav--lisp-forward-sexp): New function.
(python-nav--lisp-forward-sexp-safe): Use it.  Rename from
python-nav-lisp-forward-sexp-safe.
(python-nav--forward-sexp): New argument SAFE allows switching
forward sexp movement behavior for parens.
(python-nav-forward-sexp): Throw errors on unterminated parens.
(python-nav-backward-sexp, python-nav-forward-sexp-safe)
(python-nav-backward-sexp-safe): New functions.
(python-shell-buffer-substring): Use
`python-nav-forward-sexp-safe'.

* test/automated/python-tests.el
(python-nav-lisp-forward-sexp-safe-1): Remove test.
(python-nav-forward-sexp-safe-1): New test.

Fixes: debbugs:16191
2013-12-25 15:07:31 -03:00
Fabián Ezequiel Gallina
89c868adee * lisp/progmodes/python.el (python-nav-beginning-of-statement): Speed
up.

Fixes: debbugs:15295
2013-12-24 16:48:40 -03:00
Fabián Ezequiel Gallina
ce03045172 * lisp/progmodes/python.el (python-pdbtrack-stacktrace-info-regexp):
Also match after beginning of line.
(python-pdbtrack-set-tracked-buffer): Fix logic for remote
files.  Thanks to Russell Sim.

Fixes: debbugs:15378
2013-12-12 21:56:12 -03:00
Fabián Ezequiel Gallina
bc9222c934 * lisp/progmodes/python.el (python-indent-calculate-indentation): Fix
de-denters cornercase.

* test/automated/python-tests.el (python-indent-dedenters-2): New test.

Fixes: debbugs:15731
2013-12-12 20:32:05 -03:00
Fabián Ezequiel Gallina
09faee72dd * lisp/progmodes/python.el (python-indent-context)
(python-indent-calculate-indentation): Fix auto-identation
behavior for comment blocks.

* test/automated/python-tests.el (python-indent-after-comment-1)
(python-indent-after-comment-2): New tests.

Fixes: debbugs:15916
2013-12-12 02:37:09 -03:00
Nathan Trapuzzano
f54de22e65 * lisp/progmodes/python.el (python-indent-calculate-indentation): When
determining indentation, don't treat "return", "pass", etc., as
operators when they are just string constituents. 

* automated/python-test.el (python-indent-block-enders-1): Rename
from python-indent-block-enders.
(python-indent-block-enders-2): New test.

Fixes: debbugs:15812
2013-12-12 00:47:41 -03:00
Stefan Monnier
bd15d9d1ad * lisp/progmodes/python.el (python-mode-map): Remove binding for ":".
(python-indent-electric-colon): Remove command.
(python-indent-post-self-insert-function): Integrate the previous code
of python-indent-electric-colon.  Make it conditional on
electric-indent-mode.
(python-mode): Add ?: to electric-indent-chars.
Move python-indent-post-self-insert-function to the end of
post-self-insert-hook.
2013-11-28 21:03:39 -05:00
Glenn Morris
0bf3f0fadf * lisp/progmodes/python.el (python-indent-guess-indent-offset):
Avoid corner-case error.

Fixes: debbugs:15975
2013-11-25 22:15:49 -05:00
Glenn Morris
3cfb6af3af * python.el (python-shell-send-file): Add option to delete file when done.
(python-shell-send-string, python-shell-send-region): Use it.

Fixes: debbugs:15647
2013-11-23 11:39:50 -08:00
Glenn Morris
40dd812fa3 Revert previous python.el change 2013-11-22 20:20:31 -08:00
Jorgen Schaefer
09b0f3d9cf * lisp/progmodes/python.el (python-shell--save-temp-file): Tiny change
Delete temp-file when done.

Fixes: debbugs:15647
2013-11-22 19:13:16 -08:00
Bozhidar Batsov
ae1f1ce1e2 * lisp/progmodes/python.el (python-mode): Remove incorrect text from docstring.
* lisp/progmodes/scheme.el (scheme-mode): Remove incorrect text from docstring.
* lisp/progmodes/prolog.el (prolog-mode): Remove incorrect text from docstring.
* lisp/emacs-lisp/lisp-mode.el (lisp-mode, lisp-interaction-mode, emacs-lisp-mode):
Remove incorrect text from docstring.
2013-11-05 11:47:47 +02:00
Stefan Monnier
e5afbcacfa * lisp/progmodes/python.el: Fix up last change.
(python-shell--save-temp-file): New function.
(python-shell-send-string): Use it.  Remove `msg' arg.  Don't assume
`string' comes from the current buffer.
(python-shell-send-string-no-output): Remove `msg' arg.
(python--use-fake-loc): New var.
(python-shell-buffer-substring): Obey it.  Try to compensate for the
extra coding line added by python-shell--save-temp-file.
(python-shell-send-region): Use python-shell--save-temp-file and
python-shell-send-file directly.  Add `nomain' argument.
(python-shell-send-buffer): Use python-shell-send-region.
(python-electric-pair-string-delimiter): New function.
(python-mode): Use it.
2013-11-04 14:14:58 -05:00
Stefan Monnier
195ee2f0a9 * lisp/progmodes/python.el (python-shell-get-buffer): New function.
(python-shell-get-process): Use it.
(python-shell-send-string): Always use utf-8 and add a cookie to tell
Python which encoding was used.  Don't split-string since we only care
about the first line.  Return the temp-file, if applicable.
(python-shell-send-region): Tell compile.el how to turn locations in
the temp-file into locations in the source buffer.
2013-10-29 21:28:36 -04:00
Stefan Monnier
2abb4e6560 * lisp/electric.el (electric-indent-inhibit): New var.
(electric-indent-post-self-insert-function): Use it.
* lisp/progmodes/python.el (python-mode): Set it.
2013-10-07 14:51:26 -04:00
Glenn Morris
2a08047aed Improve previous interpreter-mode-alist change
* lisp/files.el (interpreter-mode-alist): Remove \\` \\' parts.
(set-auto-mode): Don't regexp-quote elements.

* lisp/progmodes/python.el (interpreter-mode-alist): Remove \\` \\'.

* lisp/progmodes/cc-mode.el (interpreter-mode-alist):
* lisp/progmodes/ruby-mode.el (interpreter-mode-alist):
Revert previous change.

* etc/NEWS: Update.
2013-09-10 23:44:35 -07:00
Glenn Morris
93ef404dc9 Tweak previous change 2013-09-10 16:46:25 -04:00
Glenn Morris
1af4c2203c Treat interpreter-mode-alist as alist of regexps, not literals
Cf http://lists.gnu.org/archive/html/emacs-devel/2005-08/msg00472.html

* lisp/files.el (interpreter-mode-alist): Convert to regexps.
(set-auto-mode): Adapt for this. 

* lisp/progmodes/cperl-mode.el (cperl-clobber-mode-lists):
Comment out unused variable.

* lisp/progmodes/cc-mode.el (interpreter-mode-alist):
* lisp/progmodes/python.el (interpreter-mode-alist):
* lisp/progmodes/ruby-mode.el (interpreter-mode-alist): Convert to regexps.

* lisp/progmodes/sh-script.el (sh-set-shell):
No longer use interpreter-mode-alist to get list of shells.

* etc/NEWS: Mention this.

Fixes: debbugs:15306
2013-09-10 16:38:52 -04:00
Paul Eggert
71bd1a0084 Spelling fixes and tidy up a comment. 2013-09-09 09:26:38 -07:00
Stefan Monnier
c0458e0b21 * lisp/subr.el (pop): Use `car-safe'.
* lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker): Remove hack
to detect unused `pop' return value.

* lisp/emacs-lisp/advice.el (defadvice): Add indent rule.

* lisp/international/mule-cmds.el: Require CL.
(find-coding-systems-for-charsets): Avoid add-to-list.
(sanitize-coding-system-list): New function, extracted from
select-safe-coding-system-interactively.
(select-safe-coding-system-interactively): Use it.
(read-input-method-name): Accept symbols for `default'.

* lisp/progmodes/python.el (python-nav-beginning-of-block): Remove unused
var `block-regexp'.
(python-nav--forward-sexp): Remove unused var `re-search-fn'.
(python-fill-string): Remove unused var `marker'.
(python-skeleton-add-menu-items): Remove unused var `items'.
2013-09-04 23:46:34 -04:00
Fabián Ezequiel Gallina
96edb67781 Format code sent to Python shell for robustness.
* progmodes/python.el (python-shell-buffer-substring): New
function.
(python-shell-send-region, python-shell-send-buffer): Use it.
2013-09-02 10:56:03 -03:00
Fabián Ezequiel Gallina
e5c144d64d * progmodes/python.el (python-nav-if-name-main): New command. 2013-09-02 00:37:18 -03:00
Fabián Ezequiel Gallina
cd16c5f1f5 * progmodes/python.el (python-shell-completion-get-completions):
Drop use of deleted `comint-last-prompt-overlay'.
2013-09-02 00:21:13 -03:00
Stefan Monnier
9e89d835b0 * lisp/progmodes/python.el (python-font-lock-keywords): Don't return nil
from a matcher-function unless there's no more matches.

Fixes: debbugs:15161
2013-08-26 22:41:41 -04:00
Paul Eggert
526e5233cc Spelling fixes. 2013-08-15 22:15:51 -07:00
Fabián Ezequiel Gallina
ad75644970 * lisp/progmodes/python.el (python-imenu--build-tree)
(python-imenu--put-parent): Simplify and Fix (GH bug 146).

* test/automated/python-tests.el (python-imenu-create-index-4)
(python-imenu-create-flat-index-2): New tests.
2013-08-13 13:36:32 -03:00
Fabián Ezequiel Gallina
1f0480d4cd * lisp/progmodes/python.el (python-imenu--build-tree): Fix corner case
in nested defuns.

* test/automated/python-tests.el (python-imenu-create-index-2)
(python-imenu-create-index-3): New tests.
2013-07-12 22:55:58 -03:00
Glenn Morris
e0df2d1420 * lisp/progmodes/python.el (ffap-alist): Declare. 2013-06-18 00:17:58 -07:00
Glenn Morris
f46305c86c Merge from emacs-24; up to 2012-12-27T20:09:45Z!juri@jurta.org 2013-06-01 13:21:22 -07:00
Fabián Ezequiel Gallina
20992a8504 * progmodes/python.el: Fix typo in commentary. 2013-05-26 06:06:02 -03:00
Fabián Ezequiel Gallina
f782d53133 * progmodes/python.el (python-indent-block-enders): Add break,
continue and raise keywords.
2013-05-26 05:55:02 -03:00
Glenn Morris
a931698afd Fix a bunch of custom types (thank you cus-test.el)
* lisp/bookmark.el (bookmark-search-delay):
* lisp/cus-start.el (vertical-centering-font-regexp):
* lisp/ps-mule.el (ps-mule-font-info-database-default):
* lisp/ps-print.el (ps-default-fg, ps-default-bg):
* lisp/type-break.el (type-break-good-break-interval):
* lisp/whitespace.el (whitespace-indentation-regexp)
(whitespace-space-after-tab-regexp):
* lisp/emacs-lisp/testcover.el (testcover-1value-functions)
(testcover-noreturn-functions, testcover-progn-functions)
(testcover-prog1-functions):
* lisp/emulation/viper-init.el (viper-emacs-state-cursor-color):
* lisp/erc/erc-desktop-notifications.el (erc-notifications-icon):
* lisp/eshell/em-glob.el (eshell-glob-translate-alist):
* lisp/gnus/gnus-art.el (gnus-article-date-headers, gnus-blocked-images):
* lisp/gnus/gnus-async.el (gnus-async-post-fetch-function):
* lisp/gnus/gnus-gravatar.el (gnus-gravatar-size, gnus-gravatar-properties):
* lisp/gnus/gnus-html.el (gnus-html-image-cache-ttl):
* lisp/gnus/gnus-notifications.el (gnus-notifications-timeout):
* lisp/gnus/gnus-picon.el (gnus-picon-properties):
* lisp/gnus/gnus-util.el (gnus-completion-styles):
* lisp/gnus/gnus.el (gnus-other-frame-resume-function):
* lisp/gnus/message.el (message-user-organization-file)
(message-cite-reply-position):
* lisp/gnus/nnir.el (nnir-summary-line-format)
(nnir-retrieve-headers-override-function):
* lisp/gnus/shr-color.el (shr-color-visible-luminance-min):
* lisp/gnus/shr.el (shr-blocked-images):
* lisp/gnus/spam-report.el (spam-report-resend-to):
* lisp/gnus/spam.el (spam-summary-exit-behavior):
* lisp/mh-e/mh-e.el (mh-sortm-args, mh-default-folder-for-message-function):
* lisp/play/tetris.el (tetris-tty-colors):
* lisp/progmodes/cpp.el (cpp-face-default-list):
* lisp/progmodes/flymake.el (flymake-allowed-file-name-masks):
* lisp/progmodes/idlw-help.el (idlwave-help-browser-generic-program)
(idlwave-help-browser-generic-args):
* lisp/progmodes/make-mode.el (makefile-special-targets-list):
* lisp/progmodes/python.el (python-shell-virtualenv-path):
* lisp/progmodes/verilog-mode.el (verilog-active-low-regexp)
(verilog-auto-input-ignore-regexp, verilog-auto-inout-ignore-regexp)
(verilog-auto-output-ignore-regexp, verilog-auto-tieoff-ignore-regexp)
(verilog-auto-unused-ignore-regexp, verilog-typedef-regexp):
* lisp/textmodes/reftex-vars.el (reftex-format-label-function):
* lisp/textmodes/remember.el (remember-diary-file):
Fix custom types.

* lisp/cedet/semantic/db-find.el (semanticdb-find-throttle-custom-list):
Fix value.

* lisp/gnus/gnus-salt.el (gnus-selected-tree-face): Fix default.
2013-05-08 21:40:20 -04:00
Fabián Ezequiel Gallina
6bd1a072a8 Small fixes to 2013-04-19T02:31:09Z!fgallina@gnu.org
* lisp/ChangeLog: Fix Changelog Entry.

* progmodes/python.el (python-imenu-create-flat-index): Remove
  leftover `message' call and give credit to old
  imenu--flatten-index-alist.
2013-04-19 10:29:41 -03:00
Fabián Ezequiel Gallina
adc3121366 New faster Imenu implementation.
* lisp/progmodes/python.el:
(python-imenu-prev-index-position):
(python-imenu-format-item-label-function)
(python-imenu-format-parent-item-label-function)
(python-imenu-format-parent-item-jump-label-function):
New vars.
(python-imenu-format-item-label)
(python-imenu-format-parent-item-label)
(python-imenu-format-parent-item-jump-label)
(python-imenu--put-parent, python-imenu--build-tree)
(python-imenu-create-index, python-imenu-create-flat-index)
(python-util-popn): New functions.
(python-mode): Set imenu-create-index-function to
python-imenu-create-index.

* test/automated/python-tests.el (python-imenu-prev-index-position-1):
Removed test.
(python-imenu-create-index-1, python-imenu-create-flat-index-1):
New tests.

Fixes: debbugs:14058
2013-04-18 23:31:09 -03:00
Fabián Ezequiel Gallina
04754d3612 * lisp/progmodes/python.el (python-nav--syntactically): Fix cornercases
and do not care about match data.

* test/automated/python-tests.el (python-nav-backward-defun-2)
(python-nav-backward-defun-3, python-nav-forward-defun-2)
(python-nav-forward-defun-3): New tests.
2013-04-17 19:23:13 -03:00
Fabián Ezequiel Gallina
083850a6a1 New defun movement commands.
* lisp/progmodes/python.el (python-nav--syntactically)
(python-nav--forward-defun, python-nav-backward-defun)
(python-nav-forward-defun): New functions.

* test/automated/python-tests.el (python-nav-backward-defun-1)
(python-nav-forward-defun-1): New tests.
2013-04-17 02:08:20 -03:00
Fabián Ezequiel Gallina
619ed6e18a * progmodes/python.el (python-syntax--context-compiler-macro): New defun.
(python-syntax-context): Use named compiler-macro for backwards
compatibility with Emacs 24.x.
2013-04-16 23:52:50 -03:00
Stefan Monnier
351edece98 * lisp/progmodes/python.el (python-mode-skeleton-abbrev-table): Rename from
python-mode-abbrev-table.
(python-skeleton-define): Adjust accordingly.
(python-mode-abbrev-table): New table that inherits from it so that
python-skeleton-autoinsert does not affect non-skeleton abbrevs.
* lisp/abbrev.el (abbrev--symbol): New function, extracted from abbrev-symbol.
(abbrev-symbol): Use it.
(abbrev--before-point): Use it since we already handle inheritance.
2013-04-16 13:28:11 -04:00
Glenn Morris
8d3655be5a Merge from emacs-24; up to 2012-12-26T16:22:18Z!michael.albinus@gmx.de 2013-03-30 09:55:47 -07:00
Fabián Ezequiel Gallina
c9886b39eb Un-indent after "pass" and "return" statements
* lisp/progmodes/python.el (python-indent-block-enders): New var.
(python-indent-calculate-indentation): Use it.

* test/automated/python-tests.el
(python-indent-block-enders): New test.
(python-info-current-defun-2): Fix test.

Fixes: debbugs:13888
2013-03-25 22:55:11 -03:00
Glenn Morris
cfbf790d80 Merge from emacs-24; up to 2012-12-21T07:35:02Z!ueno@gnu.org 2013-02-21 08:56:49 -08:00
Fabián Ezequiel Gallina
c132ab7921 * progmodes/python.el (python-info-current-defun): Enhance
match-data cluttering prevention.
2013-02-20 17:41:46 -03:00
Fabián Ezequiel Gallina
33c0cb2549 * progmodes/python.el (python-info-current-defun): Fix failed
defun name retrieval because of unwanted match-data cluttering.
2013-02-19 15:53:57 -03:00
Glenn Morris
872faefb07 Merge from emacs-24; up to 2012-12-20T16:09:05Z!dmantipov@yandex.ru 2013-02-18 19:29:28 -08:00
Fabián Ezequiel Gallina
2af3b9c16e * progmodes/python.el (python-indent-context): Fix
python-info-line-ends-backslash-p call.
(python-info-line-ends-backslash-p)
(python-info-beginning-of-backslash): Respect line-number
argument.
(python-info-current-line-comment-p): Fix behavior when not at
beginning-of-line.
(python-util-position): Remove function.
(python-util-goto-line): New function.
2013-02-19 00:18:32 -03:00
Paul Eggert
648e5523fb Merge from emacs-24; up to 2012-12-19T13:01:16Z!michael.albinus@gmx.de 2013-02-14 22:35:54 -08:00
Fabián Ezequiel Gallina
ea5f4192b9 * progmodes/python.el: Explain how to restore "cc-mode"-like
forward-sexp movement in header documentation.
(python-nav--forward-sexp): Behave like emacs-lisp-mode in
comments and strings (GH bug 114).

Fixes: debbugs:13642
2013-02-13 21:42:11 -03:00
Fabián Ezequiel Gallina
dcbec5e2e6 * progmodes/python.el (python-info-current-defun): Fix current
defun detection.

Fixes: debbugs:13618
2013-02-13 20:07:59 -03:00
Paul Eggert
d9c287e589 Spelling fixes. 2013-02-01 22:04:06 -08:00
Glenn Morris
741d511359 Merge from emacs-24; up to 2012-12-13T00:52:17Z!yamaoka@jpl.org 2013-01-30 09:16:30 -08:00
Fabián Ezequiel Gallina
6ff930c3d2 * progmodes/python.el
(python-pdbtrack-comint-output-filter-function): Enhancements on
stacktrace detection.  (thanks @gnovak)
2013-01-30 12:02:58 -03:00
Glenn Morris
3f82a88a05 Merge from emacs-24; up to 2012-12-12T22:29:54Z!yamaoka@jpl.org 2013-01-30 00:07:37 -08:00
Fabián Ezequiel Gallina
e44970863d * progmodes/python.el (python-shell-parse-command): Find
python-shell-interpreter with modified environment.
2013-01-28 18:59:42 -03:00
Glenn Morris
830e46e61b Merge from emacs-24; up to 2012-12-11T18:52:31Z!monnier@iro.umontreal.ca 2013-01-24 20:41:39 -08:00
Fabián Ezequiel Gallina
345f866e04 * lisp/progmodes/python.el: Enhancements to header documentation about
skeletons.

Fixes: debbugs:5716
2013-01-23 22:24:09 -03:00
Glenn Morris
c0511b5769 Merge from emacs-24; up to 2012-12-10T20:27:33Z!eggert@cs.ucla.edu 2013-01-13 12:03:01 -08:00
Fabián Ezequiel Gallina
5062005180 * progmodes/python.el (python-nav-end-of-statement): Fix
cornercase when handling multiline strings.
2013-01-10 00:44:12 -03:00
Paul Eggert
0877d0dc24 Merge from emacs-24; up to 2012-12-06T01:39:03Z!monnier@iro.umontreal.ca 2013-01-02 08:13:04 -08:00
Paul Eggert
ab422c4d68 Update copyright notices for 2013. 2013-01-01 09:11:05 +00:00
Fabián Ezequiel Gallina
6861432ebd * progmodes/python.el (python-nav-end-of-statement): Rewrite in
order to improve efficiency (Based on Daniel Colascione's
<dancol@dancol.org> patch).

Fixes: debbugs:13182
2012-12-31 17:58:57 -03:00
Fabián Ezequiel Gallina
5b63c74a17 * progmodes/python.el: Bump defgroup :version to 24.3. 2012-12-31 16:35:57 -03:00
Fabián Ezequiel Gallina
df4758b82e Backported revisions 2012-12-29T12:33:33Z!fgallina@gnu.org and 2012-12-29T12:57:49Z!fgallina@gnu.org from trunk. 2012-12-31 16:27:20 -03:00
Fabián Ezequiel Gallina
ccb1c17e8b * progmodes/python.el: Support other commands triggering
python-indent-line so indentation cycling continues to work.
(python-indent-trigger-commands): New defcustom.
(python-indent-line): Use it.
2012-12-29 09:57:49 -03:00
Fabián Ezequiel Gallina
16768034b2 * progmodes/python.el (python-shell-send-region): Add blank lines
for non sent code so backtraces remain correct.
2012-12-29 09:33:33 -03:00
Fabián Ezequiel Gallina
66164d2f17 * progmodes/python.el: Remove cl dependency.
(python-syntax-count-quotes): Replace incf call.
(python-fill-string): Replace setf call.
2012-12-29 08:04:55 -03:00
Glenn Morris
727f973937 Merge from emacs-24; up to 2012-11-30T04:44:52Z!cyd@gnu.org 2012-12-12 21:29:15 -08:00
Fabián Ezequiel Gallina
2c43a9adb2 * progmodes/python.el (python-skeleton-class)
(python-skeleton-def): Do not add space after defun name.
2012-12-11 04:22:55 -03:00
Glenn Morris
5c9cf0a3f9 Merge from emacs-24; up to 2012-11-20T20:06:17Z!monnier@iro.umontreal.ca 2012-11-26 19:10:32 -08:00
Fabián Ezequiel Gallina
98f99594f7 * progmodes/python.el:
(python-indent-guess-indent-offset): If indentation is guessed
make python-indent-offset variable buffer local.
2012-11-26 20:31:06 -03:00
Fabián Ezequiel Gallina
207cb73c18 Fix Imenu regression.
* progmodes/python.el:
(python-nav-beginning-of-defun): Fix forward movement when
statement(s) separates point from defun.
(python-imenu-prev-index-position): New function.
2012-11-26 18:45:58 -03:00
Stefan Monnier
141462223d * lisp/emacs-lisp/byte-run.el (defun-declarations-alist):
Allow compiler-macros to be lambda expressions.
* lisp/progmodes/python.el: Use cl-lib.  Move var declarations outside of
eval-when-compile.
(python-syntax-context): Add compiler-macro.
(python-font-lock-keywords): Simplify with De Morgan.
2012-11-19 16:30:55 -05:00
Fabián Ezequiel Gallina
2e6625b527 Fix end-of-defun misbehavior.
* progmodes/python.el (python-nav-beginning-of-defun): Rename from
python-beginning-of-defun-function.  Handle nested defuns
correctly.
(python-nav-end-of-defun): Rename from
python-end-of-defun-function.  Ensure forward movement.
(python-info-current-defun): Reimplemented to work as intended
with new fixed python-nav-{end,beginning}-of-defun.  Stop scanning
parent defuns as soon as possible.
2012-11-12 10:26:50 -03:00
Fabián Ezequiel Gallina
12fd5ee1ae * progmodes/python.el (inferior-python-mode): Fix hang in
jit-lock.

Fixes: debbugs:12645
2012-11-03 09:20:02 -03:00
Fabián Ezequiel Gallina
55cd00c8f9 * progmodes/python.el (python-mode-map): Replace
subtitute-key-definition with proper command remapping.
(python-nav--up-list): Fix behavior for blocks on the same level.
2012-10-11 21:07:25 -03:00
Fabián Ezequiel Gallina
a4ff7fe145 Implemented `backward-up-list'-like navigation.
* progmodes/python.el (python-nav-up-list)
(python-nav-backward-up-list): New functions.
(python-mode-map): Define substitute key for backward-up-list to
python-nav-backward-up-list.
2012-10-08 23:07:26 -03:00
Fabián Ezequiel Gallina
24517d82a9 * progmodes/python.el (python-fill-paragraph): Rename from
python-fill-paragraph-function.  Fixed fill-paragraph for
decorators.

Fixes: debbugs:12605
2012-10-08 19:18:05 -03:00
Fabián Ezequiel Gallina
51867ae225 * progmodes/python.el (python-shell-output-filter): Handle extra
carriage return in OSX.

Fixes: debbugs:12409
2012-10-08 18:51:02 -03:00
Fabián Ezequiel Gallina
a5b773c40c Fix shell handling of unbalanced quotes and parens in output.
* progmodes/python.el (python-rx-constituents): Added
string-delimiter.
(python-syntax-propertize-function): Use it.
(python-shell-output-syntax-table): New var.
(inferior-python-mode): Prevent unbalanced parens/quotes from
previous output mess with current input context.
2012-10-08 18:30:36 -03:00