Commit Graph

214 Commits

Author SHA1 Message Date
Barry Warsaw d164837856 (py-temp-directory): Add /var/tmp to the list of directories this
searches.  This is added after /tmp.  Closes SF bug #505488, except
that /var/tmp comes after /tmp instead of the patch's suggestion of
putting it before /usr/tmp.
2002-03-18 18:53:56 +00:00
Barry Warsaw d36cfe495e (py-honor-comment-indentation, py-compute-indentation): Fix the
implementation to match the documentation for
py-honor-comment-indentation w.r.t. not nil or t value.  In that case
it should still ignore ## for indentation purposes.  Closes SF bug
#523825, w/ patch provided by Christian Stork (mod'd by Barry).

Python 2.2.1 candidate.
2002-03-15 16:46:46 +00:00
Barry Warsaw 19b1c6156b (py-version): Hopefully fixed my XEmacs settings so this doesn't get
clobbered on checkin.
2001-07-06 20:27:29 +00:00
Barry Warsaw 40fb452be9 (py-continuation-offset): Update docstring to describe that this
additional offset is only applied to continuation lines for block
opening statements.

(py-compute-indentation): Only add py-continuation-offset if
py-statement-opens-block-p is true.
2001-07-06 20:07:13 +00:00
Barry Warsaw e275c42c38 (python-font-lock-keywords): Add "yield" as a keyword to support the
new "simple generators" feature of 2.2.  See PEP 255.
2001-06-19 18:24:42 +00:00
Barry Warsaw fd4c9e87a7 (py-continuation-offset): New variable which controls how much to
indent continuation lines, defined as lines following those that end
in backslash.

(py-compute-indentation): Support for py-continuation-offset.
2001-06-18 23:40:35 +00:00
Barry Warsaw c8c1a5b7b6 (py-pdbtrack-track-stack-file): On Ken's suggestion, add "pdbtrack:"
prefix to the message lines.
2001-04-11 22:27:41 +00:00
Barry Warsaw 4f577d2f47 intermediate 2001-04-11 20:23:17 +00:00
Barry Warsaw 68d486c8f4 (py-parse-state): Teach python-mode how to scan code which follows
multi-line list comprehensions.
2001-02-24 00:09:17 +00:00
Barry Warsaw 715346060a (py-execute-region): This one's easy... kill the temporary file's
buffer after executing its contents.
2001-02-20 23:07:56 +00:00
Barry Warsaw e0c182fb5f (python-font-lock-keywords): Add highlighting of `as' as a keyword,
but only in "import foo as bar" statements (including optional
preceding `from' clause).
2000-12-27 17:41:47 +00:00
Barry Warsaw 3c34bb33ff (py-goto-beginning-of-tqs): When searching backwards for the matching
delimiter, watch out for backslash escaped delimiters.  Also use =
instead of eq for character comparison (because a character is = to
it's integer value, but not eq to it).
2000-10-27 05:00:25 +00:00
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
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
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
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
Barry Warsaw 71c3adb7ec #Typos from previous checkin 1998-08-10 16:34:33 +00:00