Commit Graph

206 Commits

Author SHA1 Message Date
Barry Warsaw b8f1166922 (python-font-lock-keywords): Pick up block introducing keywords with
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
1997-11-06 14:35:15 +00:00
Barry Warsaw ef3c891773 (python-font-lock-keywords): Fix for consecutive keyword font locking,
given by Sjoerd Mullender <Sjoerd.Mullender@cwi.nl>.
1997-11-05 18:55:50 +00:00
Barry Warsaw 5e21cb0bfb (py-emacs-features): Test for working make-temp-name, which is broken
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.
1997-11-05 18:41:11 +00:00
Barry Warsaw a9ce70f3bc (py-execute-region): Fixed small bug with queuing file for execution
in a py-shell.  Temp files now get cleaned up.
1997-11-05 16:56:51 +00:00
Barry Warsaw 2518c67984 (mark-python-def-or-class): Renamed to py-mark-def-or-class globally.
(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.
1997-11-05 00:51:08 +00:00
Barry Warsaw 6d48c4a00b (py-backspace-function): New variable.
(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.
1997-11-04 19:21:50 +00:00
Barry Warsaw a97a3f34d6 First round of changes, mostly subprocess stuff.
(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.
1997-11-04 18:47:06 +00:00
Barry Warsaw affc0ca0e8 Changes in preparation for integrating into the Python CVS tree.
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.
1997-11-03 16:59:38 +00:00
Barry Warsaw c12c62ee5a (py-parse-partial-sexp-works-p): Removed as obsolete. All current
Emacs and XEmacs versions should have working parse-partial-sexp's.

(py-emacs-features): Defined as future placeholder.
1997-09-04 04:18:07 +00:00
Barry Warsaw 516b6208c7 #Fixed two byte-compiler errors 1997-08-09 06:43:20 +00:00
Barry Warsaw c72c11c9e3 #Checkpointing X/Emacs 20'fication of this mode. 1997-08-09 06:42:08 +00:00
Barry Warsaw 7d6b7d3f54 #Bumping to version 3.0 1997-08-08 16:19:03 +00:00
Barry Warsaw e6648967b7 (py-shell): Remove support for Emacs 18, implicitly add support for
Emacs 20, and bind TAB key to self-insert-command in *Python* process.
1997-07-10 15:58:36 +00:00
Barry Warsaw fb07f408b6 (python-font-lock-keywords): Use new convention for installing in mode 1997-02-24 03:37:22 +00:00
Barry Warsaw 941f70c331 (py-mode-map): Comment Out Region / Uncomment Region should use
py-comment-region instead of comment-region.
1997-01-30 20:16:18 +00:00
Barry Warsaw 2ccda502f6 #Updated authorship line 1997-01-30 19:50:39 +00:00
Barry Warsaw f770578225 (py-parse-partial-sexp-works-p): New variable to work around a bug in
parse-partial-sexp in some Emacsen.

(py-goto-beyond-final-line): use py-parse-partial-sexp-works-p.
1997-01-30 19:49:39 +00:00
Barry Warsaw b05399373c (py-delete-function): new variable
(py-delete-char): funcall py-delete-function.
1996-12-17 22:05:07 +00:00
Barry Warsaw 5c8bef1888 (python-mode): added comment-end definitions. 1996-12-17 21:56:10 +00:00
Barry Warsaw 3622e0d090 (match-string): Added a definition for older Emacsen. 1996-10-29 15:32:57 +00:00
Barry Warsaw 7cb505c89b (py-indent-line): take an optional universal argument which says to
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.
1996-10-23 20:44:59 +00:00
Barry Warsaw 7a73ef852f (py-process-filter): Make sure current-buffer is restored, even in the
event of error.  Can't use new Emacs primitive save-current-buffer, so
use unwind-protect instead.
1996-09-30 23:00:40 +00:00
Barry Warsaw 2e049b2b05 (python-font-lock-keywords): with Python 1.4 `access' is no a keyword 1996-09-04 15:21:55 +00:00
Barry Warsaw b3e81d58aa I have been increasingly annoyed about the fact that
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>
1996-09-04 15:12:42 +00:00
Barry Warsaw 01af401e27 #stylistics 1996-09-04 14:57:22 +00:00
Barry Warsaw 550a02e6ae (python-mode): typos 1996-09-04 14:23:00 +00:00
Barry Warsaw 615d4a458f (python-mode): font-lock-defaults must be make-local-variable'd 1996-09-04 14:14:10 +00:00
Barry Warsaw 604cefa8df (py-dump-help-string): Use documentation-property to get docstring. 1996-09-03 18:17:04 +00:00
Barry Warsaw b1f895150a (python-mode): font-lock-defaults necessary for Emacs 19, but doesn't
hurt for XEmacs.
1996-09-03 16:38:30 +00:00
Barry Warsaw c72ad871ba #py-shell gets an autoload cookie 1996-09-03 16:16:04 +00:00
Barry Warsaw 261f87dac1 *** empty log message *** 1996-08-20 19:57:34 +00:00
Barry Warsaw f67a57efc4 (py-no-outdent-re): Added return, break, raise, continue since we
already outdent for those statements.
1996-08-12 19:52:27 +00:00
Barry Warsaw cf34d2a010 #updated commentary 1996-08-06 15:57:58 +00:00
Barry Warsaw 5490a06fc7 (py-menu): Create default value 1996-08-06 15:43:33 +00:00
Barry Warsaw c5a8cbd35d (py-forward-into-nomenclature): Slightly better regex for stopping on
underscore.
1996-08-05 21:53:02 +00:00
Barry Warsaw a766182f08 (py-electric-colon): Use (py-next-statement -1) instead of
(forward-line -1), to properly catch continued statements.
1996-08-02 16:22:43 +00:00
Barry Warsaw 3fcaf61768 #updated comments 1996-08-01 20:11:51 +00:00
Barry Warsaw 755c6714cc (python-mode): automatically install imenu stuff. 1996-08-01 20:02:55 +00:00
Barry Warsaw 8143746750 (imenu-example--python-show-method-args-p,
imenu-example--python-class-regexp,
imenu-example--python-method-regexp,
imenu-example--python-method-no-arg-parens,
imenu-example--python-method-arg-parens,
imenu-example--generic-python-expression,
imenu-example--python-generic-regexp,
imenu-example--python-generic-parens): New variables.

(imenu-example--create-python-index,
imenu-example--create-python-index-engine): New functions.
1996-08-01 19:48:02 +00:00
Barry Warsaw ce60bc7192 (py-keep-region-active): Zap duplicate defun. 1996-08-01 18:17:14 +00:00
Barry Warsaw 6e527d2ca3 (py-delete-char): Check for py-honor-comment-indentation. 1996-08-01 15:57:48 +00:00
Barry Warsaw a7891718e1 (py-mode): comment-start is now "# " so indent-for-comment does the
right thing.

(py-comment-region): let-bind comment-start to "## " so commented
regions get transformed into non-indenting comment lines.

(py-compute-region): Implement modification to rule for recognizing
"indenting comment lines".
1996-08-01 15:53:09 +00:00
Barry Warsaw 9e277db76b #comment update 1996-07-31 22:33:40 +00:00
Barry Warsaw c08a949549 #comment update 1996-07-31 22:27:58 +00:00
Barry Warsaw 5c0d00f553 #updated to do list 1996-07-31 21:30:21 +00:00
Barry Warsaw 170ffa775d (py-parse-state): stop searching backwards when we found a keyword at
column zero.  Perhaps a kludge, but similar in nature to Emacs'
beginning-of-defun shortcut.
1996-07-31 20:57:22 +00:00
Barry Warsaw f831d81999 (py-statement-closes-block-p, py-compute-indentation): Outdent one
level after a return, raise, break, or continue statement.
1996-07-31 20:42:59 +00:00
Barry Warsaw 42f707f40f (python-mode): Added menu support, requires easymenu. 1996-07-29 21:05:05 +00:00
Barry Warsaw c846f46113 (py-forward-into-nomenclature): small fix to not infinitely loop at
underscores.
1996-07-25 18:53:17 +00:00
Barry Warsaw fb3494276e #comment update, re: py-mode-syntax-table 1996-07-24 18:32:08 +00:00
Barry Warsaw 9e5a9c8c99 (py-forward-into-nomenclature, py-backward-into-nomenclature): New functions. 1996-07-24 18:26:53 +00:00
Barry Warsaw 71e315b9d9 (py-shift-region-left): When checking for left edged code, watch for
blank lines.
1996-07-23 15:03:16 +00:00
Barry Warsaw fc9cc3a9ce added a thing on the to-do list 1996-07-08 22:37:06 +00:00
Barry Warsaw 44b7220b8b (python-font-lock-keywords): added class and def 1996-07-05 20:11:35 +00:00
Barry Warsaw 8e9d7d7e83 (py-mode-syntax-table): revert underscore to word class, even though I
don't agree with it.
1996-07-03 23:15:51 +00:00
Barry Warsaw 039707399e (py-delete-char): Obey numeric argument. 1996-07-03 23:12:52 +00:00
Barry Warsaw dea4a29e9a (py-shift-region-left, py-shift-region-right, py-indent-right,
py-outdent-left, py-mode-map): Folded all functionality into
py-shift-region-* commands.  Bound C-c C-l to py-shift-region-left and
C-c C-r to py-shift-region-right.  Removed py-indent-right and
py-indent-left.
1996-07-03 22:59:12 +00:00
Barry Warsaw f2389a0b24 (py-indent-right, py-outdent-left): fixed placement of point after
adjustments.
1996-04-08 23:05:56 +00:00
Barry Warsaw 43ecf8ee58 (py-parse-state): make sure we don't land inside a triple-quoted
string
1996-04-06 00:00:19 +00:00
Barry Warsaw 5f204775bf (py-indent-right, py-outdent-left): Watch out for (mark) returning
nil.
1996-03-25 21:24:26 +00:00
Barry Warsaw 4669d7e415 #updated some comments 1996-03-22 16:13:24 +00:00
Barry Warsaw 826255ba32 (py-indent-right, py-indent-left): support indentation of regions or
current line.
1996-03-22 16:09:34 +00:00
Barry Warsaw 867a32ab53 (py-comment-region): obsoleted by comment-region
(python-mode): set comment-start to "## " for comment-region.

(py-mode-map): Bind C-c# to comment-region.
1996-03-07 18:30:26 +00:00
Barry Warsaw 62d9d6ed40 (python-font-lock-keywords): make it a defconst 1996-03-06 20:32:27 +00:00
Barry Warsaw 6d627754c1 (py-honor-comment-indentation, py-compute-indentation): allow other
than nil or t values.
1996-03-06 18:41:38 +00:00
Barry Warsaw 33d6ec062e (py-honor-comment-indentation): new variable.
(py-compute-indentation): use new variable.
1996-03-05 16:28:07 +00:00
Barry Warsaw 6245a3ca3f #removed font-lock cruft 1996-03-05 16:20:19 +00:00
Barry Warsaw 33ab6e4915 (python-font-lock-keywords): Much improved descrimination between
keywords and names with keywords in them.
1996-03-05 00:44:31 +00:00
Barry Warsaw fd0fb38055 (py-compute-indentation): fix skipping backwards over comments by
using forward-comment (and Emacs 19 function) if available.
1996-03-04 17:15:40 +00:00
Barry Warsaw 9fbcc6a6c2 (py-shell): Fixed Emacs 18 bug, use of boundp instead of fboundp. 1996-01-23 22:52:02 +00:00
Barry Warsaw 17914f4e17 (py-indent-offset): Change default to 4. 1995-11-03 18:25:15 +00:00
Barry Warsaw 2bbe49bf6f changed underscore to have symbol syntax 1995-10-18 14:41:12 +00:00
Barry Warsaw 52bc17cd9e (py-indent-offset): this should be buffer local. 1995-10-12 21:15:49 +00:00
Barry Warsaw 095e9c6954 (py-align-multiline-strings-p): new variable 1995-09-19 20:01:42 +00:00
Barry Warsaw 0c6563f7c7 (py-electric-colon): turn off electric behavior inside strings and
comments.
1995-09-14 20:57:02 +00:00
Barry Warsaw 57697af9b0 (python-mode): comment-multi-line must be nil for Emacs 19 1995-09-14 20:01:14 +00:00
Barry Warsaw c01c5c859c (py-compute-indentation): when inside a comment, indent to under the
most previous non-blank line.
1995-09-14 18:49:11 +00:00
Barry Warsaw fec75d66a7 #changed all email address to go through python.org 1995-07-05 23:26:15 +00:00
Barry Warsaw 4dba7e2b67 (py-append-to-process-buffer): XEmacs doesn't have last-input-start or
last-input-end either!
1995-07-05 23:01:43 +00:00
Barry Warsaw 4d82c9aef5 (python-font-lock-keywords): merged with XEmacs 19.12 font-lock.el
value
1995-07-05 22:50:55 +00:00
Barry Warsaw e64bfee412 (py-process-filter): if command takes a long time, input typed before
the next prompt could end up in the middle of the line, instead of
after it.  Fix given by klm@nist.gov.
1995-07-05 22:27:23 +00:00
Barry Warsaw 6e98f3350f (py-shell): cope with make-comint instead of make-shell 1995-07-05 22:06:50 +00:00
Barry Warsaw b01b4fa130 Added tbd's on python-font-lock-keywords 1995-06-20 18:55:34 +00:00
Barry Warsaw 7a1f6f4f2a #updated to-do list 1995-05-08 21:36:20 +00:00
Barry Warsaw 3aca2a1f1c (py-electric-colon): use a save-excursion instead of a progn in
indentation calculation test.
1995-03-20 18:32:14 +00:00
Barry Warsaw d865bc5984 #(py-electric-colon): updated comment 1995-03-15 18:23:16 +00:00
Barry Warsaw a6a714eb3b (py-electric-colon): don't indent, only outdent. 1995-03-15 18:19:15 +00:00
Barry Warsaw 1a6c82f1e6 (py-indent-right, py-outdent-left): new commands, bound to C-c C-r and
C-c C-l respectively.
1995-03-15 16:23:59 +00:00
Barry Warsaw 9b623b3d63 (py-electric-colon): don't re-indent the line if it starts in column
zero
1995-03-14 23:59:07 +00:00
Barry Warsaw 464c94af2a (py-no-outdent-re): fixed the regexp for try: clauses 1995-03-14 23:25:44 +00:00
Barry Warsaw 3874a3d7ef (py-outdent-p): new function
(py-electric-colon, py-indent-line): watch out for intervening blank
or comment lines.
1995-03-14 22:05:53 +00:00
Barry Warsaw 4f009fb092 (py-no-outdent-re): new constant
(py-indent-line, py-electric-colon): watch for compound statements one
line after another.
1995-03-14 20:53:08 +00:00
Barry Warsaw b5e0ecbd33 (py-submit-bug-report): fixed summary querying
#Added a summary of changes
1995-03-14 18:32:54 +00:00
Barry Warsaw 0012c1ec74 (py-outdent-re): new constant
(py-electric-colon): use py-outdent-re instead of hardcoding

(py-indent-line): look for py-outdent-re and outdent a level
accordingly
1995-03-14 16:32:55 +00:00
Barry Warsaw b86bbada37 #(py-indent-line): cosmetic 1995-03-14 15:56:35 +00:00
Barry Warsaw b91b743476 (py-electric-colon): new command 1995-03-14 15:55:20 +00:00
Barry Warsaw cfec359016 #updated copywrite notice by removing the GPL language according to
#Guido's request.

# Updated the `Created' date
1995-03-10 15:58:16 +00:00
Barry Warsaw fc8a01fc5a (py-delete-char): must have 'supersede value for 'delete-selection and
'pedning-delete properties.
1995-03-09 16:07:29 +00:00
Barry Warsaw 65bc7a7bf2 (python-font-lock-keywords): better defaults. 1995-03-08 22:25:47 +00:00
Barry Warsaw 74d9cc5b73 (py-keep-region-active): new function. 1995-03-08 22:05:16 +00:00
Barry Warsaw c723b75fe3 #(python-font-lock-keywords): paren typo 1995-03-08 22:03:16 +00:00
Barry Warsaw 4f005cf5d6 (python-font-lock-keywords): new variable 1995-03-08 22:02:44 +00:00
Barry Warsaw 850437a932 (py-mode-map): py-mark-block moved to C-c C-m (was C-c C-b).
py-submit-bug-report placed on C-c C-b, and py-version placed on C-c
C-v.

(py-version, py-submit-bug-report): new functions

(py-version, py-help-address): new variables
1995-03-08 21:50:28 +00:00
Barry Warsaw 7b0f5681d8 #initial stylistic rewrite 1995-03-08 21:33:04 +00:00
Barry Warsaw 3ff444992f (py-compute-indentation): in `t' clause, watch for the
re-search-backwards landing you inside a mult-line string.
1994-12-16 00:13:34 +00:00
Barry Warsaw 7ae7768890 Initial revision 1994-12-12 20:38:05 +00:00