Commit Graph

251 Commits

Author SHA1 Message Date
Barry Warsaw a239880a22 Quick and extremely dirty hacks to toggle between using CPython and
JPython interpreters.  This implementation may suck.

(py-jpython-command, py-jpython-command-args): New variables.

(py-mode-map): py-toggle-shells bound to C-c C-t

(py-toggle-shells): Command to toggle between using CPython (the
default) and JPython.  This is buffer local, and notice the mode-name
change.

(py-shell): Use either CPython or JPython.  Note that py-execute-*
still needs to be modified.
1998-04-09 23:28:20 +00:00
Barry Warsaw 3179fe03ca (imenu-example--python-class-regexp): Fix to recognize Module.Class in
inheritance list.
1998-04-04 21:36:53 +00:00
Barry Warsaw 5204b4a984 #Oops, I lost the CVS/RCS $Revision$ 1998-04-02 19:27:18 +00:00
Barry Warsaw 92166d9a75 (py-compute-indentation): When looking at a continuation line inside
an open paren, do a better job of reindenting the line.  For example:

def foo():
    print 'hello %s, %d' % (
    a, b)

Hit TAB on the line starting with `a'.  Without this patch this line
will never be reindented.
1998-04-01 21:59:41 +00:00
Barry Warsaw 585f733b39 Two patches for Emacs 20.2 compatibility:
(py-compute-indentation): int-to-char isn't defined in Emacs, but we
don't really need it anyway, so just remove this conversion.  XEmacs
is happy either way.

(py-parse-state): The Emacs branch (i.e. w/o buffer-syntactic-context)
wasn't adjusting point correctly.
1998-04-01 21:13:51 +00:00
Barry Warsaw f9b99f4375 (py-postprocess-output-buffer): Return t if an exception was found,
otherwise return nil.

(py-execute-region): When executing the buffer asynchronously in a
subprocess, if an exception occurred, show both the output buffer and
the file containing the exception, leaving point on the source line
containing bottom-most error in the traceback.  If no exception
occurred, jump to the output buffer (no change).
1998-03-26 16:08:59 +00:00
Barry Warsaw 512af04b35 (py-execute-region): Watch out for shell-command-on-region killing a
zero sized output buffer.
1998-03-25 23:27:17 +00:00
Barry Warsaw beef9e73c3 Removed all the mixed indentation face stuff. It's not as helpful as
it at first seems.  I think we've got a good idea of what to do, but
it'll be a bit of work... for later.
1998-03-20 17:06:11 +00:00
Barry Warsaw 8ca702823d (py-tab-face): => py-mixed-indentation-face
(python-font-lock-keywords): Better regexp given by Sjoerd.  This
matches only mixed indentation which is probably more useful than
matching all tabs.
1998-03-20 14:48:30 +00:00
Barry Warsaw e908b6ba57 (py-in-literal, py-fast-in-literal): New functions (mostly) stolen
from CC Mode.

(py-guess-indent-offset): Teach it about colons in `literals'
(e.g. comments and strings).  Don't false hit colons in literals; keep
searching for a real block introducing line.
1998-03-19 22:48:02 +00:00
Barry Warsaw b6c1f1f927 #minor change to eval-while-compile so that it must both find
#custom.el and have an up-to-date version (i.e. one that defines
#defcustom -- which Emacs 19.34's by default does not).
1998-03-19 22:33:06 +00:00
Barry Warsaw 0d2805b771 (py-tab-face, python-font-lock-keywords): Color all tabs at the start
of a line in py-tab-face to aid in seeing mixed tab/space indentation.
This face defaults to the `default' face so it is unobtrusive until
you `M-x customize-face' py-tab-face to something obnoxious like
"Yellow".
1998-03-19 21:52:06 +00:00
Barry Warsaw 639eea670c (py-smart-indentation): Updated docstring for new policy.
(python-mode): Implement new policy: never turn indent-tabs-mode on.
Only turn it off if tab-width != py-indent-offset.
1998-03-16 18:12:13 +00:00
Barry Warsaw 8046befce7 #(py-smart-indentation): Small fixes for clarity in the docstring. 1998-03-13 20:04:52 +00:00
Barry Warsaw 9e9968859e (python-mode): Removed vi vi vi hack for setting the tab width from a
magic comment.  Now Guido only has to worry about the northern
Wisconsin Braces Freedom Fighter Militia.
1998-03-13 18:53:15 +00:00
Barry Warsaw 742a5116d2 (py-smart-indentation): New variable which controls the automagic
setting of py-indent-offset and indent-tabs-mode.

(python-mode): After python-mode-hook is run, do the automagic
calculation if py-smart-indentation is non-nil.

(py-parse-state): Get rid of unused variable to quiet the
byte-compiler.
1998-03-13 17:29:15 +00:00
Barry Warsaw 2f32fbba34 (py-execute-region): Simplified calculation of temporary file name.
When running synchronously in a subproc buffer, be sure to
pop-to-buffer so the output is visible.
1998-02-25 16:45:43 +00:00
Barry Warsaw 6c6db0a073 (py-temp-directory): Minor docstring nit. 1998-02-25 16:33:56 +00:00
Barry Warsaw 50b3eb6a9e (py-master-file): Fixed some typos in the docstring. 1998-02-25 15:57:47 +00:00
Barry Warsaw f64b4054af (py-compute-indentation): Several changes made to improve navigation
over and around triple-quoted strings:

    - move the beginning-of-line to above the p-p-s call

    - in the `t' clause of the big cond, where we skip over
      triple-quoted strings, first find out if we're looking at a
      single or TQS, then skip over it in one fell swoop, instead of
      trying to loop over skipage of SQS's.

(py-parse-state): Implement XEmacs only hack to more accurately figure
out whether we're in a string or not.  Can't do this in Emacs because
it lacks the necessary primitive, so we just do it the old (and mostly
accurate, but foolable) way for Emacs.
1998-02-12 16:52:14 +00:00
Barry Warsaw 8ee4a60c70 (py-scroll-process-buffer): Default value changed to nil to act more
like default shell-mode behavior.
1998-02-06 16:01:52 +00:00
Barry Warsaw f1b3e89800 (py-parse-state): When looking for landing inside triple-quoted
string, don't check for indentation at column zero.  This will falsely
hit a line inside a docstring that starts at column zero but ends in a
colon.
1998-02-05 23:35:09 +00:00
Barry Warsaw 8f972b762a (py-python-command-args): New variable, allows user to customize the
arguments past to py-python-command when invoking the Python shell.
1998-02-05 20:45:49 +00:00
Barry Warsaw f06777dd7c (py-outdent-p): When looking at the previous line, watch out for
continuation lines.  This fixes this bug report, reported by Frank
Stajano.

# But if I split the "raise" line and reindent, the else WRONGLY goes up a
# level (?!?)

while condition1:
    if condition2:
        raise error3, \
              moreInfo4
else: # meant to close "if condition2"
    action5()
1998-01-21 05:36:18 +00:00
Barry Warsaw 9ec9fbc355 (py-goto-initial-line): Shut up the byte compiler. 1998-01-21 05:15:57 +00:00
Barry Warsaw 82aecb9d66 (py-mode-map): Add a binding of C-m to py-newline-and-indent. This is
a religious issue: RMS decrees that the Enter (RET) key should just do
a newline and a LFD (C-j) should do a newline and indent (i.e. the
python-mode version of this).  Almost everyone I know disagrees and
finds that RET should do newline and indent.  Almost everyone hacks
their modes to do this, if they know how.  Because it's hard for
newbies to figure out how to do this, and because most DOS keyboards
lack a LFD (leaving users to the more obscure C-j), I think it makes
better sense to add this default binding.
1998-01-21 05:14:24 +00:00
Barry Warsaw c210e69981 (py-compute-indentation): In the most common case, where indentation
is based on the line above, watch out for landing inside a triple
quoted string.  In this case, use iterative search +
parse-partial-sexp backwards to find the beginning of the string.

Note this does affect performance, but very little in the common cases
(I hope).  It could be made *much* faster by adding Emacs and XEmacs
dependent code -- different code naturally.  :-(

Fixes the following reported bug:

if len(sys.argv) >= 6:
    # More lines here
    fptr = open('/etc/hosts', 'w')
    fptr.write("""# /etc/hosts -- autocreated by /etc/ppp/ip-up
#
# Address from pppd
%-15s	%s

# For loopbacking
127.0.0.1	localhost

255.255.255.255	broadcast
""" % (ipaddr, ipname) )

os.chmod('/etc/hosts', 0644)
1998-01-20 22:52:56 +00:00
Barry Warsaw c0ecb53194 (py-master-file): New buffer-local variable which can be set in the
file local variable section of a file.  When set, and the user hits
C-c C-c, this file gets executed instead of the buffer's file.  Idea
given by Roy Dragseth <royd@math.uit.no>, but implemented differently.

(py-execute-buffer): Support py-master-file variable.  If this names a
relative path, default-directory is prepended via expand-file-name.
1998-01-20 21:43:34 +00:00
Barry Warsaw 3723152c5b Update to the Big Comment at the top of the file. It should better
explain what the users of the various Emacsen have to do to get this
all working.
1997-12-11 17:23:13 +00:00
Barry Warsaw 5ea20d52c7 Added some links to OO-Browser, given by Harri Pasanen.
Updated the to do list.
1997-12-06 00:00:47 +00:00
Barry Warsaw 9981d2226d (py-jump-on-exception): Variable which if t, means that if an
exception occurs in a synchronous Python subprocess, the mode will
automatically jump to the innermost exception.
1997-12-03 05:25:48 +00:00
Barry Warsaw 27ee115fd7 Removed redundant eval-when-compile.
(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.
1997-12-03 05:03:44 +00:00
Barry Warsaw 5c38bf6c62 (python-mode): Patch to make font-lock work automatically for Emacs.
Unnecessary for XEmacs, but oh well...
1997-12-02 22:01:04 +00:00
Barry Warsaw 673d05f0ee Test for an up-to-date Custom library when byte-compiling, and issue
an informative message when one cannot be found, as is the case with a
vanilla Emacs 19.34 (and NTEmacs 19.34).
1997-12-02 21:51:57 +00:00
Barry Warsaw 8529ebb78c Require 'cl when compiling so that the push macro gets picked in Emacs
19.34.
1997-12-01 20:03:12 +00:00
Barry Warsaw ffbc17da19 (py-traceback-line-re): Relaxation of regexp to catch SyntaxErrors.
Harri Pasanen.
1997-11-27 20:08:14 +00:00
Barry Warsaw f471056b0a (py-process-filter): py-delete-file-silently is obsolete. Use a
py-safe wrapped delete-file call instead.
1997-11-26 21:00:36 +00:00
Barry Warsaw 3b3ff4e96e (py-compute-indentation): Check for multiline stringness and
commentness so that hitting TAB in the middle of a comment will still
indent the line.
1997-11-26 20:58:48 +00:00
Barry Warsaw 8c4a8de75e (py-mode-map): Bind py-mark-def-or-class to C-M-h with a different
spelling so that it doesn't clobber the standard M-BS binding.  This
should be portable between X/Emacsen.
1997-11-26 20:30:33 +00:00
Barry Warsaw c8520351af (python-mode): Make imenu-create-index-function buffer local.
(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>
1997-11-26 06:14:40 +00:00
Barry Warsaw 4da6bd51dd (py-mark-def-or-class): Added an exchange-point-and-mark and a
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.
1997-11-26 06:00:26 +00:00
Barry Warsaw e467bfbfe9 (python-mode): Patch to fix Imenu support under Emacs, given by
Torsten Hilbrich <Torsten.Hilbrich@bln.de>.
1997-11-26 05:40:58 +00:00
Barry Warsaw 47384789b2 (py-kill-emacs-hook): Simplification. 1997-11-26 05:27:45 +00:00
Barry Warsaw a0ee8cd982 Added comment about where to find details on python-mode.el, pointing
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.
1997-11-26 01:04:44 +00:00
Barry Warsaw 6ae21ad687 #(py-emacs-features): Fixed typo in docstring. 1997-11-06 14:36:49 +00:00
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