Commit Graph

511 Commits

Author SHA1 Message Date
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
Guido van Rossum b65a43a970 News for 1.5.2 (final). 1999-04-13 15:52:45 +00:00
Guido van Rossum 8f9fabd360 More (Cameron Laird is honorary; the others are 1.5.2c1 testers). 1999-04-13 14:32:42 +00:00
Guido van Rossum 7cf904736e Bunch of new names who helped iron out the last wrinkles of 1.5.2. 1999-04-13 14:25:52 +00:00
Guido van Rossum 913a32632f Correct missed character in Andrew Dalke's name. 1999-04-10 17:17:51 +00:00
Guido van Rossum 437cfe842f News for the 1.5.2c1 release. 1999-04-08 20:17:57 +00:00
Guido van Rossum 1e7b0acb4d Removing an unused image of a snake.
I don't know what its origins are but I think I've seen it
once in a NeXT dictionary application -- not sure whether
anyone owns copyright but I don't see why we should risk it.
1999-04-07 17:23:09 +00:00
Guido van Rossum ae14230069 Bunch of new contributors, including 9 who contributed to the Docs,
reported by Fred.
1999-04-05 21:18:12 +00:00
Fred Drake 0df2188d08 Typo: "apparentlt" --> "apparently" 1999-02-22 15:38:58 +00:00
Guido van Rossum 74608e6a05 New in 1.5.2b2. 1999-02-18 16:02:20 +00:00
Guido van Rossum 8a06aea269 Couple of new names. 1999-02-18 16:01:43 +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
Guido van Rossum 71ddcd87e2 Finn Bock. 1999-02-16 21:30:18 +00:00
Guido van Rossum c54367a2f0 Uwe Zessin. 1999-02-08 22:29:40 +00:00
Guido van Rossum 3e0d319196 The usual. 1999-01-25 21:57:29 +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
Guido van Rossum de8b026148 Added shlex and netrc modules; added warning about urllib change
affecting subclasses (which Jeremy just found out).
1998-12-22 16:41:09 +00:00
Guido van Rossum e96bd3f60f News for 1.5.2b1. Moved news before 1.5.1 to HISTORY. 1998-12-21 21:45:04 +00:00
Guido van Rossum 9818d0f06a New names. Keep those contributions coming! 1998-12-21 21:42:22 +00:00
Guido van Rossum 439d1fa8b0 Moved history up to and including 1.5.1 here. 1998-12-21 21:41:14 +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
Guido van Rossum 9819e4c5cf Sjoerd Mullender writes:
The example Makefile.pre.in should also look at Setup.thread and
Setup.local.  Otherwise modules such as thread don't get incorporated
in extensions.
1998-12-09 17:05:33 +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
Guido van Rossum e8c10f90a7 All the news that's fit to print. In other words, it's 1.5.2a2 time. 1998-10-17 19:43:13 +00:00
Guido van Rossum fdb8fb8b31 A few new ones... 1998-10-02 01:21:40 +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
Barry Warsaw d35c255e44 (py-guess-indent-offset): Only print message about py-indent-offset
when in an interactive session (suggested by B. Wiener).
1998-09-25 00:08:38 +00:00
Barry Warsaw 02e5f69c90 (py-execute-file, py-execute-import-or-reload): Use a Python `raw'
string in the argument to execfile() so a Windows temp directory
named, e.g. c:\\tmp doesn't get interpreted as a file name with an
embedded tab!  (given by C. Waldman).
1998-09-24 23:48:40 +00:00
Barry Warsaw 218eb75ba7 (py-block-comment-prefix): Remove trailing space. Also explain that
this string should not end with whitespace.

(py-compute-indentation): Append whitespace regexp to
py-block-comment-prefix so that any combination of intervening
whitespace will be recognized.
1998-09-22 19:51:47 +00:00
Barry Warsaw bc3760b09d #Code rearranging to quiet byte-compiler 1998-09-14 16:16:18 +00:00
Jeremy Hylton faff0bdcba correct bogus instructions 'ccoment out' -> 'uncomment' 1998-09-10 20:18:09 +00:00
Guido van Rossum 106a470da2 Fixed the words in the comment and error message about defining FULL_PATH.
(It's not SCRIPTPATH!)
1998-09-10 18:22:18 +00:00
Jeremy Hylton 1deebabc77 include <string.h> to get prototype for strcmp
change error messages to be a little more straightforward

change definition of FULL_PATH so that an error is raised if the
setuid wrapper is used un-edited
1998-09-10 18:10:59 +00:00
Barry Warsaw 4d1874093f (py-in-literal): How'd this get through? c-point => py-point 1998-08-29 06:32:31 +00:00
Barry Warsaw f7039e29ec Update commentary. For most stuff, point people to the web page 1998-08-20 22:10:46 +00:00
Barry Warsaw 6dfbe5dcec (py-shell-map): New variable contains the keymap used in *Python*
shell buffers.

(py-shell): Moved the require of comint to the top level.  Also
use-local-map py-shell-map instead of hacking on the comint-mode-map.
This eliminates breakage of other comint-mode buffers (e.g. shell).
1998-08-20 21:51:27 +00:00
Barry Warsaw a81fb33c6b (py-shell): comint-output-filter-functions is already buffer-local 1998-08-20 20:00:53 +00:00
Barry Warsaw 3c96f6f361 (py-process-filter): Deleted this function. In order to fix
interactions with newer Emacsen, I've rewritten the way all the
process filters work in the *Python* buffer.  We use more of the
comint infrastructure, specifically the default process filter.  This
means that scrolling is now handled by the default comint variables
including comint-scroll-to-bottom-on-output.  Note that this is
somewhat experimental change!

(py-comint-output-filter-function): Moved to here from the obsolete
py-process-filter function, the logic to pop and exec the next queued
file waiting to be executed.

(py-execute-file): Don't bind comint-scroll-to-bottom-on-output to t,
and save the excursion when inserting the "working on" message.  This
lets the standard comint scrolling variables as set by the user,
continue to work.

(python-mode, py-shell, py-describe-mode): Remove description of
py-scroll-process-buffer.  Also in py-shell, make
comint-output-filter-functions buffer-local, and add
py-comint-output-filter-function to this hook (instead of setting the
process filter).

(py-scroll-process-buffer): Deleted this variable.  See comint
variables including comint-scroll-to-bottom-on-output.

(py-execute-region): When exec files are being queued, push the next
temp file on the end of the list.

(py-submit-bug-report): Removed reporting of py-scroll-process-buffer.
1998-08-20 19:44:51 +00:00
Barry Warsaw 93c88cca06 (imenu-example--create-python-index-engine): Fix nesting breakage when
a method definition has args that span multiple lines; be sure to go
to the beginning of the method definition -- but watch out for the
match-data!
1998-08-18 02:00:44 +00:00
Guido van Rossum 0ceaada2da New contributor. 1998-08-11 19:23:31 +00:00
Guido van Rossum 27b3bc3fbf Reordered the news to make it more accessible. Also removed some dups. 1998-08-11 18:42:26 +00:00
Guido van Rossum ab9d6f0be9 Got all the 1.5.2 news that's fit to print. Now we may need to
organize it better...
1998-08-10 22:01:13 +00:00
Barry Warsaw 650e8a6db2 (imenu-example--python-method-regexp): Patch from Christian Tanzer:
"3.67 fixes Imenu as far as classes are concerned, but some default
values for function arguments are still not supported."

This ought to fix that problem.
1998-08-10 21:46:24 +00:00
Barry Warsaw 12c9294ea3 (py-compute-indentation): Changes to the `t' condition which affect
indetnation of normal statements: The regular expression that searches
for indenting comment lines has been changed to not require a
space/tab after the first `#'.  We then explicitly look for
py-block-comment-prefix depending on the value of
py-honor-comment-indentation.

I think this more accurately reflects the documentation for
py-honor-comment-indentation.
1998-08-10 21:44:37 +00:00
Guido van Rossum 20392ccb87 # mention Porting in list of files 1998-08-10 16:38:58 +00:00
Guido van Rossum 6ca3defcfa mini-faq on porting python 1998-08-10 16:36:48 +00:00
Barry Warsaw 71c3adb7ec #Typos from previous checkin 1998-08-10 16:34:33 +00:00
Barry Warsaw 41a05c75d4 Huge number of docstring changes, typo fixes, rewordings, GNU standard
conformations, etc., etc. inspired and given by Michael Ernst.  These
include error string fixes, moving of comments to docstrings, some
other non-related typos, terminology standardizing (b/w TP and myself,
and b/w myself and myself :-) although more can still be done.
E.g. "outdenting" => "dedenting".
1998-08-10 16:33:12 +00:00
Barry Warsaw 1b3442493a (py-execute-region): When temp-names are broken (Emacs 19.34), a
serial number isn't enough to uniquify the temp file name -- what if
two users are on the same machine?  Add in the (emacs-pid) to help
further.  Should never be tickled on Emacs 20, XEmacs 20, 21.
1998-08-07 22:24:16 +00:00
Guido van Rossum f5475c95a7 Checkpointing news for 1.5.2a1... (Not all done.) 1998-08-06 17:55:46 +00:00
Guido van Rossum a690394cae New meat. 1998-08-04 22:59:26 +00:00
Guido van Rossum fc8f5d1a7f typo (pwill -> will). 1998-08-04 22:58:51 +00:00
Barry Warsaw 7c29b2328b (py-beginning-of-def-or-class, py-end-of-def-or-class,
py-mark-def-or-class): Integrated Michael Ernst latest patches.
Primarily, it allows functions that search or mark defs/classes based
on programmatic specification, to take an 'either flag value which
allows searching for both classes and defs (stopping at the nearest
construct).

Also clean up some docstrings.
1998-07-07 17:45:38 +00:00
Barry Warsaw 003932a508 (py-comment-indent-function): A replacement for
comment-indent-function's default lambda value (in simple.el), this
version finally kills this nit: auto-filling a comment that starts in
column zero with filladapt turned off would cascade the #'s to the
right.

Now auto-filling seems to work with or without filladapt, and with the
comment starting in any column.

(python-mode): Set comment-indent-function.
1998-07-07 15:11:24 +00:00
Guido van Rossum 0b3b43ca6f New blood. 1998-06-30 17:02:57 +00:00
Guido van Rossum 795a4bc666 Added a line to process SGI_ABI. 1998-06-08 21:22:12 +00:00
Guido van Rossum 750c8cee7e Add LDLAST to the list of variables processed by the sed script. 1998-05-20 15:53:22 +00:00
Barry Warsaw 3bfed5b6b1 (py-ask-about-save): New variable used in
py-execute-import-or-reload.  Same semantics as
compilation-ask-about-save.
1998-05-19 16:25:04 +00:00
Barry Warsaw 1d0364b2dc (py-execute-string): Bind to C-c C-s, and put on menu 1998-05-19 16:15:26 +00:00
Barry Warsaw 751f4931d8 (py-stringlit-re): Another ME patch to recognize SQTQs and DQTQs
(single and double quoted triple quoted strings :-) with embedded
single like-quotes.  Also recognizes raw prefix.
1998-05-19 16:06:21 +00:00
Barry Warsaw 820273d6d1 More ME patches:
(py-execute-import-or-reload): Cool new command that imports or
reloads the current file as a module, so as not to clutter the global
namespace.  Bound to C-c C-m.

(py-execute-def-or-class): New command that sends the current def or
class to the interpreter.  Bound to C-M-x.

(py-execute-string): New command that sends arbitrary string to the
interpreter.  Not bound by default.

(py-describe-mode): Doco updates.
1998-05-19 15:54:45 +00:00
Barry Warsaw ab0e86cbcc (beginning-of-python-def-or-class): Renamed to
py-beginning-of-def-or-class, and defaliased for backwards
compatibility.  ME patch to add optional second argument, count.

(end-of-python-def-or-class): Renamed to py-end-of-def-or-class, and
defaliased for backwards compatibility.  ME patch to add optional
second argument, count.
1998-05-19 15:31:46 +00:00
Barry Warsaw ebc7b7ac45 More ME patches:
(py-shell): Recognize the Python debugger prompt

(py-jump-to-exception): Force into python-mode any buffer that gets
jumped to on exception.  Cope with py-exception-buffer possibly a
cons.
1998-05-19 15:01:06 +00:00
Barry Warsaw 145ab1ce9d #Documentation and comment typos patch given by Michael Ernst. More
#of his patches to follow.
1998-05-19 14:49:49 +00:00
Guido van Rossum cc8e1a4ed7 Add some help for AIX. (Konrad Hinsen) 1998-04-30 13:34:12 +00:00
Barry Warsaw 77d1fce2f6 (py-compute-indentation): Use forward-comment to skip over all
whitespace and comment noise.
1998-04-16 20:04:59 +00:00
Guido van Rossum 974f295dd4 Some more new stuff. 1998-04-13 21:00:54 +00:00
Guido van Rossum 9238f23c50 Two more, for beta testers who reported real bugs. 1998-04-13 18:14:22 +00:00
Guido van Rossum c45cf02938 Added changes from 1.5 to 1.5.1.
The sections are now in a more useful order: the most recent changes
are listed first.
1998-04-10 20:06:21 +00:00
Guido van Rossum 07c44c7ad5 Document -x too. 1998-04-10 19:46:00 +00:00
Guido van Rossum 29d465bef7 Document -t flag. 1998-04-10 19:36:09 +00:00
Guido van Rossum 13aa5cedcb Jeff Epler 1998-04-10 19:18:03 +00:00
Barry Warsaw ea609c18a0 (py-toggle-shells): Added a message in the minibuf. 1998-04-10 16:08:26 +00:00
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
Guido van Rossum e2bb8bb90d Tons of new names... 1998-04-09 21:01:06 +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