summaryrefslogtreecommitdiffstats
path: root/Misc/python-mode.el
Commit message (Collapse)AuthorAgeFilesLines
* Update to the Big Comment at the top of the file. It should betterBarry Warsaw1997-12-111-24/+43
| | | | | explain what the users of the various Emacsen have to do to get this all working.
* Added some links to OO-Browser, given by Harri Pasanen.Barry Warsaw1997-12-061-2/+8
| | | | Updated the to do list.
* (py-jump-on-exception): Variable which if t, means that if anBarry Warsaw1997-12-031-7/+19
| | | | | exception occurs in a synchronous Python subprocess, the mode will automatically jump to the innermost exception.
* Removed redundant eval-when-compile.Barry Warsaw1997-12-031-19/+13
| | | | | | | | | | | (python-mode): Conditionalize imenu initializations to when we can safely require imenu. Under Emacs this should prevent python-mode from hosing the global value of imenu-create-index-function and messing things up for all other modes. Problem identified by Christian Egli. (py-describe-mode): py-delete-char => py-electric-backspace. Given by Christian Egli.
* (python-mode): Patch to make font-lock work automatically for Emacs.Barry Warsaw1997-12-021-0/+1
| | | | Unnecessary for XEmacs, but oh well...
* Test for an up-to-date Custom library when byte-compiling, and issueBarry Warsaw1997-12-021-1/+20
| | | | | an informative message when one cannot be found, as is the case with a vanilla Emacs 19.34 (and NTEmacs 19.34).
* Require 'cl when compiling so that the push macro gets picked in EmacsBarry Warsaw1997-12-011-0/+2
| | | | 19.34.
* (py-traceback-line-re): Relaxation of regexp to catch SyntaxErrors.Barry Warsaw1997-11-271-2/+2
| | | | Harri Pasanen.
* (py-process-filter): py-delete-file-silently is obsolete. Use aBarry Warsaw1997-11-261-1/+1
| | | | py-safe wrapped delete-file call instead.
* (py-compute-indentation): Check for multiline stringness andBarry Warsaw1997-11-261-4/+4
| | | | | commentness so that hitting TAB in the middle of a comment will still indent the line.
* (py-mode-map): Bind py-mark-def-or-class to C-M-h with a differentBarry Warsaw1997-11-261-2/+3
| | | | | spelling so that it doesn't clobber the standard M-BS binding. This should be portable between X/Emacsen.
* (python-mode): Make imenu-create-index-function buffer local.Barry Warsaw1997-11-261-3/+4
| | | | | | | | | (imenu-example--create-python-index-engine): Use buffer-substring-no-properties. Also, don't use imenu-create-submenu-name. Apparently it is obsolete. These Imenu patches were given by Christian Egli <christian.egli@stest.ch>
* (py-mark-def-or-class): Added an exchange-point-and-mark and aBarry Warsaw1997-11-261-2/+4
| | | | | | | | | py-keep-region-active so that the marked def/class gets the zmacs-region or transient-mark region highlighted. Also point should be left at the end of the marked region. (py-mode-map): Moved py-mark-def-or-class to M-C-h to conform to Emacs major mode standards.
* (python-mode): Patch to fix Imenu support under Emacs, given byBarry Warsaw1997-11-261-1/+3
| | | | Torsten Hilbrich <Torsten.Hilbrich@bln.de>.
* (py-kill-emacs-hook): Simplification.Barry Warsaw1997-11-261-11/+5
|
* Added comment about where to find details on python-mode.el, pointingBarry Warsaw1997-11-261-23/+183
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | to the Web site. (py-defun-start-re, py-class-start-re): Changed to defconst. (py-traceback-line-re): Regular expression describing what traceback lines look like. (py-point): New defsubst copied from CC Mode. (py-highlight-line): Function which does the work of making a traceback line mouseable. This only works on XEmacs. Someone familar with Emacs text properties and such will have to do that port. (py-mode-map): Added C-c- bound to py-up-exception and C-c= bound to py-down-exception. Also, more concise form for mapcar. (py-mode-output-map): New keymap for the *Python Output* buffer which only has keybindings for py-mouseto-exception and py-goto-exception. All other self-insert-command's are bound to beep. This is actually bogus because the buffer should really be made read-only and the functions that insert in that buffer should bind inhibit-read-only. Also, this map should be bound to highlighted extents in a *Python* shell buffer, but this stuff hasn't been migrated into there. (py-postprocess-output-buffer): New function which extentifies the *Python Output* buffer. The bogosities are that this only runs when the synchronous process in the buffer is finished (so it doesn't work for async procs), and it should also be merged into py-process-filter so the *Python* shell gets mouseable too. (py-shell): Added C-c- and C-c= to the comint buffer's keymap. The bogosity is that py-goto-exception should also be bound, but it cannot be bound to C-cC-c (since that interferes with comint-interrupt-subjob's typical binding). Also, traceback lines aren't mouseable in this buffer. (py-execute-region): Support for traceback jumping. This really is quite a kludge, but necessary based on the way all this stuff works. There's bound to be broken interactions here. (py-jump-to-exception, py-mouseto-exception, py-goto-exception, py-find-next-exception, py-down-exception, py-up-exception): All new commands and functions to implement traceback jumping. (py-compute-indentation): Hope this change doesn't get lost in all the noise above!!!! This fixes broken non-indentation of a line when TAB is hit inside a string that isn't a multi-line string.
* #(py-emacs-features): Fixed typo in docstring.Barry Warsaw1997-11-061-2/+2
|
* (python-font-lock-keywords): Pick up block introducing keywords withBarry Warsaw1997-11-061-11/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | immediately following colons. Sjoerd noticed this one too. Here's a nonsense.py file that flexes all the font-lock keyword combinations. class A: class B(A): pass def __init__(self): if i == 2 and j == 3 or k == 4: import stuff from otherstuff import cool for i in range(cool.count): if i == j: break elif j == 1: continue print i else: return not i elif q is not i: return lambda x: x + 1 else: try: try: raise stuff.error except stuff.error, v: print v except: global q finally: while q > 0: q = q - 1 assert q == 0 def make(): a = A() exec "nonsense" del a
* (python-font-lock-keywords): Fix for consecutive keyword font locking,Barry Warsaw1997-11-051-6/+2
| | | | given by Sjoerd Mullender <Sjoerd.Mullender@cwi.nl>.
* (py-emacs-features): Test for working make-temp-name, which is brokenBarry Warsaw1997-11-051-10/+20
| | | | | | | | | | | on NTEmacs 19.34.6. (py-serial-number): New variable. (py-execute-region): If make-temp-name is broken, simply append a serial number to the string "python-" to get a temporary file name. It's possible concurrent NTEmacs can step on each others toes, but it makes no sense to further coddle a busted NTEmacs.
* (py-execute-region): Fixed small bug with queuing file for executionBarry Warsaw1997-11-051-2/+1
| | | | in a py-shell. Temp files now get cleaned up.
* (mark-python-def-or-class): Renamed to py-mark-def-or-class globally.Barry Warsaw1997-11-051-11/+13
| | | | | | | (py-mode-map): Moved py-mark-def-or-class from M-C-h to C-c C-m since the old binding conflicts with the standard global backward-kill-word binding, and this new binding is more conformant with other language modes. Moved py-mark-block to C-c C-k.
* (py-backspace-function): New variable.Barry Warsaw1997-11-041-60/+101
| | | | | | | | | | | (py-electric-backspace, py-electric-delete): Support the XEmacs 20 Way for backspace and delete mappings. In XEmacs 19, Emacs 19, and Emacs 20, both backspace and delete keysyms are bound to py-electric-backspace. In XEmacs 20, backspace and delete keysyms are bound separately, allowing the user to specify forward or backward deletion of the delete keysym through the variable delete-key-deletes-forward. All this is the Right Way To Do It and this implementation was largely ripped from CC Mode.
* First round of changes, mostly subprocess stuff.Barry Warsaw1997-11-041-138/+129
| | | | | | | | | | | | | | | | | | | | | | (py-execute-file): Better interaction with comint. Set comint-scroll-to-bottom-on-output to t. Wrapper buffer change in unwind-protect in case process filter fails. (py-shell): Start Python with -i flag to fix tty problem on Windows; presumably -- not yet tested. (py-clear-queue): New function to clear the pending exec file queue. Not currently keybound. (py-execute-region, py-execute-buffer): Added optional async flag (use via C-u prefix) to execute the region in a new asynchrous buffer, even if the Python shell is running. (py-append-to-process-buffer): Removed as obsolete. Comint provides this functionality. Removed fbound test defun of match-string. All modern X/Emacsen have this function.
* Changes in preparation for integrating into the Python CVS tree.Barry Warsaw1997-11-031-70/+59
| | | | | | | | | | | | | | | | | | | | | | | Introductory comment updates. (python-font-lock-keywords): Added "assert" (py-block-closing-keywords-re): New variable. (py-no-outdent-re): Rewrite to use py-block-closing-keywords-re. (py-shell): py-process-filter should no longer be necessary. Comint should do all the work. Note that more fixes to the py-shell process mechanism need to be done. (py-execute-region): Check for empty region. Some questionable changes to set-buffer after shell-command-on-region. Again, this all needs to be closely examined for X/Emacs 19/20 compatibility. (py-goto-beyond-final-line): py-parse-partial-sexp-works-p should no longer be necessary. (py-statement-closes-block-p): Use py-block-closing-keywords-re.
* (py-parse-partial-sexp-works-p): Removed as obsolete. All currentBarry Warsaw1997-09-041-20/+10
| | | | | | Emacs and XEmacs versions should have working parse-partial-sexp's. (py-emacs-features): Defined as future placeholder.
* #Fixed two byte-compiler errorsBarry Warsaw1997-08-091-2/+2
|
* #Checkpointing X/Emacs 20'fication of this mode.Barry Warsaw1997-08-091-210/+231
|
* #Bumping to version 3.0Barry Warsaw1997-08-081-2/+1
|
* (py-shell): Remove support for Emacs 18, implicitly add support forBarry Warsaw1997-07-101-15/+7
| | | | Emacs 20, and bind TAB key to self-insert-command in *Python* process.
* (python-font-lock-keywords): Use new convention for installing in modeBarry Warsaw1997-02-241-2/+3
|
* (py-mode-map): Comment Out Region / Uncomment Region should useBarry Warsaw1997-01-301-2/+2
| | | | py-comment-region instead of comment-region.
* #Updated authorship lineBarry Warsaw1997-01-301-1/+1
|
* (py-parse-partial-sexp-works-p): New variable to work around a bug inBarry Warsaw1997-01-301-3/+23
| | | | | | parse-partial-sexp in some Emacsen. (py-goto-beyond-final-line): use py-parse-partial-sexp-works-p.
* (py-delete-function): new variableBarry Warsaw1996-12-171-1/+7
| | | | (py-delete-char): funcall py-delete-function.
* (python-mode): added comment-end definitions.Barry Warsaw1996-12-171-0/+2
|
* (match-string): Added a definition for older Emacsen.Barry Warsaw1996-10-291-0/+9
|
* (py-indent-line): take an optional universal argument which says toBarry Warsaw1996-10-231-13/+22
| | | | | | | | | | | | | | defeat extra outdentation for block closing statements (return, raise, break, continue, pass). (py-compute-indentation): extra argument to honor block closing statements. (py-electric-colon, py-indent-region): use py-compute-indentation's extra argument (py-statement-closes-block-p): `pass' treated as a block closing statement.
* (py-process-filter): Make sure current-buffer is restored, even in theBarry Warsaw1996-09-301-36/+41
| | | | | event of error. Can't use new Emacs primitive save-current-buffer, so use unwind-protect instead.
* (python-font-lock-keywords): with Python 1.4 `access' is no a keywordBarry Warsaw1996-09-041-1/+1
|
* I have been increasingly annoyed about the fact thatBarry Warsaw1996-09-041-0/+28
| | | | | | | | add-change-log-entry-other-window is so bad about guessing the proper name of Python functions, methods and variables, so finally I wrote the following (unidiff patch against python-mode.el 2.73): Per Cederqvist <ceder@signum.se>
* #stylisticsBarry Warsaw1996-09-041-2/+4
|
* (python-mode): typosBarry Warsaw1996-09-041-2/+2
|
* (python-mode): font-lock-defaults must be make-local-variable'dBarry Warsaw1996-09-041-16/+23
|
* (py-dump-help-string): Use documentation-property to get docstring.Barry Warsaw1996-09-031-2/+1
|
* (python-mode): font-lock-defaults necessary for Emacs 19, but doesn'tBarry Warsaw1996-09-031-1/+3
| | | | hurt for XEmacs.
* #py-shell gets an autoload cookieBarry Warsaw1996-09-031-0/+1
|
* *** empty log message ***Barry Warsaw1996-08-201-3/+3
|
* (py-no-outdent-re): Added return, break, raise, continue since weBarry Warsaw1996-08-121-1/+3
| | | | already outdent for those statements.
* #updated commentaryBarry Warsaw1996-08-061-4/+3
|