202 Commits

Author SHA1 Message Date
Barry Warsaw
99eadf4de9 (py-execute-region): Make sure the new temporary buffer is current for
the insertion of the text.
2000-06-23 20:24:25 +00:00
Barry Warsaw
caee2fe35d (py-execute-region): Based on suggestions by Francois Pinard and Skip
Montanaro, handle execution of indented regions by inserting an "if
1:" in front of the block.  This better preserves things like triple
quoted strings and commented regions.  This patch resolves PR#264.
2000-05-23 05:47:43 +00:00
Barry Warsaw
50765abb29 (py-shell): Set the default shell if not set yet. It's sometimes
convenient to call py-shell before the first Python file has been
visited.
1999-08-10 21:49:00 +00:00
Barry Warsaw
5ed843fc52 A few minor Customize changes:
(python): Set defgroup :prefix to "py-" to make variable names cleaner.

(py-jpython-command, py-jpython-command-args): Set :tag for proper
capitalization of JPython in variable name display.
1999-07-28 22:06:06 +00:00
Barry Warsaw
11f215607e (python-mode): Set which interpreter (CPython or JPython) to use the
first time a py buffer is visited during the Emacs session.  This
ensures that py-which-shells is initialized and also guarantees that
the mode lines reflect the correct shell.  First bug found by GvR,
second one has long bugged :) me.

(py-toggle-shells): Programmatically, arg can also take the symbols
`cpython' or `jpython', which makes it easy to call with the value of
py-default-interpreter.

(py-shell): Don't need to initialize py-which-* variables since these
will guarantee to be initialized by python-mode when the first py
buffer is visited.

(py-default-interpreter): Update docstring.
1999-07-28 21:59:43 +00:00
Barry Warsaw
ddc469679b (py-beginning-of-def-or-class): Only move to match-beginning if the
regex match actually succeeded!
1999-07-27 21:40:02 +00:00
Barry Warsaw
c0d2d51dd2 (py-statement-closes-block-p): py-goto-initial-line could leave us in
the line's whitespace.  back-to-indentation should /follow/ this call.
1999-06-03 22:18:59 +00:00
Barry Warsaw
fa2def2a61 (py-electric-backspace): I'm not sure this function should be special
casing when py-honor-comment-indentation is nil, but this could be a
religious issue with some.  Seems to me we should still be dedenting
such comment lines one level.
1999-05-24 21:43:37 +00:00
Barry Warsaw
53db859408 (py-parse-state): When running under Emacs -- which doesn't have
buffer-syntactic-context -- just short circuit the TQS test by jumping
to point-min and doing the test from there.  For long files, this will
be faster than looping with a re-search-backwards.
1999-05-24 19:57:32 +00:00
Barry Warsaw
a8f99ba2d2 (py-statement-closes-block-p): Add a py-goto-initial-line which fixes
indentation when the return value is a multiline sexp:

def bug():
    try:
        if 2>1:
            return (11+
                    12)

        else:   #XXX
            return 12
    except:
        return 13
1999-05-24 18:37:57 +00:00
Barry Warsaw
3b4e2f0b87 (py-shell): Added optional argprompt, which will prompt for additional
switches to pass into the shell process (only on initial startup).
1999-02-16 23:52:46 +00:00
Barry Warsaw
aa384fd616 (py-default-interpreter): New variable which selects whether CPython
or JPython is the default interpreter to use when `C-c !' is entered
for the first time.
1999-02-16 23:36:16 +00:00
Barry Warsaw
f19feb8fb5 (py-mode-map): Add back force of RET (aka C-m) to
py-newline-and-indent.
1999-01-21 17:06:11 +00:00
Barry Warsaw
cb5540e72a (py-mode-map): Removed special bindings for C-m and C-j to
py-newline-and-indent.  These ought to get picked up by the mapcar
that follows; any existing binding to newline-and-indent gets shadowed
to py-newline-and-indent.

This will break some people who, e.g. bind C-m or C-j to newline but
still want these bound to py-newline-and-indent in Python mode.  On
the other hand, the forced binding pisses off Emacs diehards.  So
consider this experimental and see if any tall Dutch guys complain :-)
1999-01-19 13:26:56 +00:00
Barry Warsaw
f8ddb6afa0 (py-narrow-to-defun): New command (bound to C-x n d) which mimics the
standard narrow-to-defun but works with Python classes and methods.
With no arg, narrows to most enclosing def/method.  With C-u arg,
narrows to most enclosing class.
1999-01-18 21:49:39 +00:00
Barry Warsaw
1d7b0fa9ca (py-electric-delete): Implement the XEmacs 21 blessed way of checking
for delete forwardness.
1999-01-15 02:12:31 +00:00
Barry Warsaw
1a1c6bbf8c (py-outdent-p): Short circuit infloop for illegal construct
(e.g. except: on first line of buffer).
1999-01-09 17:22:38 +00:00
Barry Warsaw
9c1696cff5 (py-goto-beginning-of-tqs): Finds the beginning of the triple quoted
string we find ourselves in, based on the passed in delimiter.

(py-compute-indentation): Fixes for indentation errors when we land
inside a triple quoted string.  For example:

def foo():
   if os.path.isfile(o_pri_mbox_file) and os.path.isfile(o_pub_mbox_file):
       print """\
I found both a private and a public mbox archive file
    private: %s
    public : %s

I won't move either file, but you should choose one and move it to

    %s

You may want to merge them manually, but be careful about exposing private
correspondences to the public.""" % (
    o_pri_mbox_file, o_pub_mbox_file, mbox_file)
*----indentation would be wrong on this line.
1998-12-15 04:36:22 +00:00
Barry Warsaw
34d8317013 (py-execute-region): Hack around the different behavior and switch
semantics between CPython/JPython when the script source is piped to
stdin.
1998-11-20 03:04:07 +00:00
Barry Warsaw
014e0e29b1 (py-execute-region): Patch by Hunter Kelly so that execution uses the
correct Python shell (CPython or JPython).
1998-11-17 19:24:47 +00:00
Barry Warsaw
1d5f988457 (py-imenu-method-regexp): Fix suggested by Daniel Calvelo to
generalize the matching of function arguments.
1998-10-28 04:08:13 +00:00
Barry Warsaw
6839d3af10 #XEmacs 21 now supports Imenu, so I am able to test (and fix) some
#simple things.  First step: rename the Imenu supportive variables and
#functions in this file to py-imenu-* so I can grok what is part of
#python-mode and what is part of Imenu.

(py-imenu-create-index-engine): Fixed problem with two classes in a
single file, caused by new semantics of py-beginning-of-def-or-class
when called programmatically.

#Note, there are still some problems with Imenu when arguments to
#functions are funky, but it should be much better now.
1998-10-28 00:10:45 +00:00
Barry Warsaw
38e21e75ad #Some minor changes in the commentary, obstensibly to test the new
#checkin script.
1998-10-27 22:09:25 +00:00
Barry Warsaw
1bbc031999 #Fixed some typos in docstrings. 1998-10-27 21:54:56 +00:00
Barry Warsaw
4f94c73879 (py-comint-output-filter-function): Horrible kludgearound for making
the de-queing of exec files work for NT XEmacs 21.0.
1998-09-25 19:40:10 +00:00