ANN: peppy-0.7.0 "Kibbles 'n' Snouts": dogfooding release!

New release of peppy, my attempt to kick the XEmacs habit. I'm
dogfooding now, and having two weeks of editing itself with itself,
I'm happy with its stability.

http://www.flipturn.org/peppy

The feature that really made it comfortable to switch from XEmacs was,
interestingly, M-x find-file, which uses the minibuffer, tab
completion, and some modifications to the textctrl_autocomplete
control to load files. Tab also scrolls through the list of available
choices.

The thing I miss the most is M-x fill-paragraph. If anyone's got a
good algorithm for that, I'm happy to include it. :slight_smile:

Still working on features from sources like Robin's blog and comments,
and other requests. New features include:

* M-x processing -- all actions are available through named
equivalents. Try M-X <tab> to get the list of currently available
actions. (M-X is equivalent to Alt-X for people not familiar to
emacs.) Emacs style lower-case-with-dash aliases are available for
most commands

* Updated STC styling from Editra (www.editra.org) -- wrote an adapter
around Editra's styling dialog and am now using all the lexer and
style information from that project. Cody Precord has gone to a lot
of work to create a mapping of scintilla styling information to a
common style sheet specification. All related syntactic entities are
styled in the same manner regardless of language. Make a change in
the comment color, for instance, and it is reflected in all languages.
Cody's got support for over 40 of scintilla's language lexers, and
I'm going to be tracking his progress from now on. He's done too much
good work for me to reinvent that wheel.

* Thanks to the suggestion of Peter Damoc, you can run scripts from
within the editor, capturing the standard out/error to a logging minor
mode window. You can also run multiple scripts at the same time.

* Integrated Stani Michiels' fold explorer as a replacement for custom
class browsers. It doesn't update itself in response to your typing,
so there's plenty of work to do, but at least it shows what's possible
without knowing anything about the syntax of the language. I suspect
major modes will start from this information and then do a little
additional scanning to fully populate the class browser

* Session saving plugin that can save and load the buffers shown in
all the top level windows.

* Created a tutorial plugin (in peppy/plugins/tutorial_plugin.py) that
demonstrates how to add new actions and minor modes. I'm still
debating an architectural change to major modes that has kept me from
writing up a full tutorial on creating a major mode, but you can look
at peppy/plugins/makefile_mode.py for a simple example or
peppy/plugins/python_mode.py for a non-trivial example.

* Still no towers of hanoi, but I did add hangman from the wxPython
samples -- it uses the current buffer as the source for its words.

Lots of work still to do. I also find a buffer list mode very useful,
so that will be coming soon. M-x describe-* would be nice. Context
menus. Menus on notebook tabs to close tabs, open a new tab, show
related files, ...

I'm also in the market for good reindent code. The idea is that each
major mode will provide its own implementation of reindent, electric
return, etc. or fall back to the superclass implementation. For my
python mode my current code tries to handle the complicated cases
rather than just indenting to the previous line, but ends up getting
confused at a lot of things emacs gets right.

Feedback welcome! After closing off my trac ticket creationg because
of huge amounts of trac spam, I'm trying to see if simple math
problems are enough to keep the spambots away. Anonymous ticket
creation at http://trac.flipturn.org is again available.

Thanks,

Rob

Rob McMullen wrote:

New release of peppy, my attempt to kick the XEmacs habit. I'm
dogfooding now, and having two weeks of editing itself with itself,
I'm happy with its stability.

http://www.flipturn.org/peppy

Great! I hope to get some time soon to sample your dogfood. Yum!

The thing I miss the most is M-x fill-paragraph. If anyone's got a
good algorithm for that, I'm happy to include it. :slight_smile:

Well, C-h f fill-paragraph took me to the help, which led me to fill.el with the cursor positioned at (defun fill-paragraph (arg)... (This is in Gnu Emacs; I don't know how or whether it translates to XEmacs.) There's a bunch of other "fill-" functions in that file too, in case you get a burst of energy and enthusiasm. 8^)

The function seems to be fairly well commented, so even if your elisp-foo isn't great, you might be able to make out what's going on. I'll be happy to help if you get stuck. (I'm subscribed to pyxides, so maybe we should have that discussion there if it's needed.)

···

--
Don Dwiggins
Advanced Publishing Technology

Rob McMullen wrote:

http://www.flipturn.org/peppy

I'll give it a try on OS-X

The thing I miss the most is M-x fill-paragraph. If anyone's got a
good algorithm for that, I'm happy to include it. :slight_smile:

I don't know how good it is, but I did do some work on one a while back -- I'll go try to dig it up. there is one in the Python standard library, but it's not great.

* Thanks to the suggestion of Peter Damoc, you can run scripts from
within the editor, capturing the standard out/error to a logging minor
mode window.

Are they run in a separate Python process?

Menus on notebook tabs to close tabs, open a new tab, show
related files, ...

Yes -- very handy!

I'm also in the market for good reindent code.

Is this to re-indent a whole block of code? That's a bit tricky for Python, but key for brace-delimited languages, but there will need to be a way to specify what style of indentation you want -- i.e. with C, people like to put their brackets in different places.

> electric return,

Is that indenting when you hit a return at the end of a line? That is key, and Emacs Python mode does it right (most don't).

For my
python mode my current code tries to handle the complicated cases
rather than just indenting to the previous line, but ends up getting
confused at a lot of things emacs gets right.

oh well, tricky stuff -- maybe trying to parse the elisp is worth a try.

-Chris

···

--
Christopher Barker, Ph.D.
Oceanographer

Emergency Response Division
NOAA/NOS/OR&R (206) 526-6959 voice
7600 Sand Point Way NE (206) 526-6329 fax
Seattle, WA 98115 (206) 526-6317 main reception

Chris.Barker@noaa.gov

I'll give it a try on OS-X

Thanks -- I hope the menu code is still working (i.e. Help menu and
Window menu still doing the right things) because I had to rewrite the
menu system as the last menu system was the cause of massive slowdowns
in the code.

> The thing I miss the most is M-x fill-paragraph. If anyone's got a
> good algorithm for that, I'm happy to include it. :slight_smile:

I don't know how good it is, but I did do some work on one a while back
-- I'll go try to dig it up.

That would be great.

there is one in the Python standard library, but it's not great.

Didn't know that, I'll look for it. At least it's a starting point.
I'll probably move discussion of fill-paragraph to the pyxides list
and see if there's any collaboration interest.

> * Thanks to the suggestion of Peter Damoc, you can run scripts from
> within the editor, capturing the standard out/error to a logging minor
> mode window.

Are they run in a separate Python process?

Yep. Additionally there's a whole job control module in peppy/lib and
a sidebar where you can look at running subprocesses.

> I'm also in the market for good reindent code.

Is this to re-indent a whole block of code?

And just to know what at what level the current line should be
indented. It would be nice to rely on the scintilla folding
information, but as it only tells what the indention *is*, not what it
should be, it's only a starting point.

That's a bit tricky for
Python, but key for brace-delimited languages, but there will need to be
a way to specify what style of indentation you want -- i.e. with C,
people like to put their brackets in different places.

Not only that, but modes will inherit their parent mode's indentation
style, with hooks to modify stuff as needed. I intend to make most
text modifications mixins to the STC class as well. So, you can
either inherit from CMode to get C style indention, or use the C
indention mixin in the custom mode's STC instance.

> electric return,

Is that indenting when you hit a return at the end of a line? That is
key, and Emacs Python mode does it right (most don't).

Yes. As Don pointed out, working through the elisp comments may be
enough to figure out what their algorithm does. All those parens make
my eyes water, but at least when there aren't comments, the function
names tend to be verbose. It's probably easier reading the intent of
elisp than it is writing it...

Rob

···

On 10/18/07, Christopher Barker <Chris.Barker@noaa.gov> wrote:

Hi Rob,
Congratulations! I'll try it out. Please make your announcements from
now on also on the pyxides list. I am sure your good progress might
interest people outside this list. Nice you implemented the fold explorer.
Keep up the great work!
Stani

Rob McMullen schreef:

···

New release of peppy, my attempt to kick the XEmacs habit. I'm
dogfooding now, and having two weeks of editing itself with itself,
I'm happy with its stability.

http://www.flipturn.org/peppy

The feature that really made it comfortable to switch from XEmacs was,
interestingly, M-x find-file, which uses the minibuffer, tab
completion, and some modifications to the textctrl_autocomplete
control to load files. Tab also scrolls through the list of available
choices.

The thing I miss the most is M-x fill-paragraph. If anyone's got a
good algorithm for that, I'm happy to include it. :slight_smile:

Still working on features from sources like Robin's blog and comments,
and other requests. New features include:

* M-x processing -- all actions are available through named
equivalents. Try M-X <tab> to get the list of currently available
actions. (M-X is equivalent to Alt-X for people not familiar to
emacs.) Emacs style lower-case-with-dash aliases are available for
most commands

* Updated STC styling from Editra (www.editra.org) -- wrote an adapter
around Editra's styling dialog and am now using all the lexer and
style information from that project. Cody Precord has gone to a lot
of work to create a mapping of scintilla styling information to a
common style sheet specification. All related syntactic entities are
styled in the same manner regardless of language. Make a change in
the comment color, for instance, and it is reflected in all languages.
Cody's got support for over 40 of scintilla's language lexers, and
I'm going to be tracking his progress from now on. He's done too much
good work for me to reinvent that wheel.

* Thanks to the suggestion of Peter Damoc, you can run scripts from
within the editor, capturing the standard out/error to a logging minor
mode window. You can also run multiple scripts at the same time.

* Integrated Stani Michiels' fold explorer as a replacement for custom
class browsers. It doesn't update itself in response to your typing,
so there's plenty of work to do, but at least it shows what's possible
without knowing anything about the syntax of the language. I suspect
major modes will start from this information and then do a little
additional scanning to fully populate the class browser

* Session saving plugin that can save and load the buffers shown in
all the top level windows.

* Created a tutorial plugin (in peppy/plugins/tutorial_plugin.py) that
demonstrates how to add new actions and minor modes. I'm still
debating an architectural change to major modes that has kept me from
writing up a full tutorial on creating a major mode, but you can look
at peppy/plugins/makefile_mode.py for a simple example or
peppy/plugins/python_mode.py for a non-trivial example.

* Still no towers of hanoi, but I did add hangman from the wxPython
samples -- it uses the current buffer as the source for its words.

Lots of work still to do. I also find a buffer list mode very useful,
so that will be coming soon. M-x describe-* would be nice. Context
menus. Menus on notebook tabs to close tabs, open a new tab, show
related files, ...

I'm also in the market for good reindent code. The idea is that each
major mode will provide its own implementation of reindent, electric
return, etc. or fall back to the superclass implementation. For my
python mode my current code tries to handle the complicated cases
rather than just indenting to the previous line, but ends up getting
confused at a lot of things emacs gets right.

Feedback welcome! After closing off my trac ticket creationg because
of huge amounts of trac spam, I'm trying to see if simple math
problems are enough to keep the spambots away. Anonymous ticket
creation at http://trac.flipturn.org is again available.

Thanks,

Rob

---------------------------------------------------------------------
To unsubscribe, e-mail: wxPython-users-unsubscribe@lists.wxwidgets.org
For additional commands, e-mail: wxPython-users-help@lists.wxwidgets.org

Hi,

When I run this on Windows XP SP2, all the toolbar icons are the same.
They look like a bunch of stylized question marks. Is this how it's
supposed to look? Currently, I'm using Python 2.4 and wxPython 2.8.4.2.

Mike

···

-----Original Message-----
From: Rob McMullen [mailto:rob.mcmullen@gmail.com]
Sent: Wednesday, October 17, 2007 5:12 PM
To: wxPython-users@lists.wxwidgets.org
Subject: ANN: peppy-0.7.0 "Kibbles 'n' Snouts": dogfooding release!

New release of peppy, my attempt to kick the XEmacs habit.
I'm dogfooding now, and having two weeks of editing itself
with itself, I'm happy with its stability.

http://www.flipturn.org/peppy

The feature that really made it comfortable to switch from
XEmacs was, interestingly, M-x find-file, which uses the
minibuffer, tab completion, and some modifications to the
textctrl_autocomplete control to load files. Tab also
scrolls through the list of available choices.

The thing I miss the most is M-x fill-paragraph. If anyone's
got a good algorithm for that, I'm happy to include it. :slight_smile:

Still working on features from sources like Robin's blog and
comments, and other requests. New features include:

* M-x processing -- all actions are available through named
equivalents. Try M-X <tab> to get the list of currently
available actions. (M-X is equivalent to Alt-X for people
not familiar to
emacs.) Emacs style lower-case-with-dash aliases are
available for most commands

* Updated STC styling from Editra (www.editra.org) -- wrote
an adapter around Editra's styling dialog and am now using
all the lexer and style information from that project. Cody
Precord has gone to a lot of work to create a mapping of
scintilla styling information to a common style sheet
specification. All related syntactic entities are styled in
the same manner regardless of language. Make a change in the
comment color, for instance, and it is reflected in all languages.
Cody's got support for over 40 of scintilla's language
lexers, and I'm going to be tracking his progress from now
on. He's done too much good work for me to reinvent that wheel.

* Thanks to the suggestion of Peter Damoc, you can run
scripts from within the editor, capturing the standard
out/error to a logging minor mode window. You can also run
multiple scripts at the same time.

* Integrated Stani Michiels' fold explorer as a replacement
for custom class browsers. It doesn't update itself in
response to your typing, so there's plenty of work to do, but
at least it shows what's possible without knowing anything
about the syntax of the language. I suspect major modes will
start from this information and then do a little additional
scanning to fully populate the class browser

* Session saving plugin that can save and load the buffers
shown in all the top level windows.

* Created a tutorial plugin (in
peppy/plugins/tutorial_plugin.py) that demonstrates how to
add new actions and minor modes. I'm still debating an
architectural change to major modes that has kept me from
writing up a full tutorial on creating a major mode, but you
can look at peppy/plugins/makefile_mode.py for a simple
example or peppy/plugins/python_mode.py for a non-trivial example.

* Still no towers of hanoi, but I did add hangman from the
wxPython samples -- it uses the current buffer as the source
for its words.

Lots of work still to do. I also find a buffer list mode
very useful, so that will be coming soon. M-x describe-*
would be nice. Context menus. Menus on notebook tabs to
close tabs, open a new tab, show related files, ...

I'm also in the market for good reindent code. The idea is
that each major mode will provide its own implementation of
reindent, electric return, etc. or fall back to the
superclass implementation. For my python mode my current
code tries to handle the complicated cases rather than just
indenting to the previous line, but ends up getting confused
at a lot of things emacs gets right.

Feedback welcome! After closing off my trac ticket creationg
because of huge amounts of trac spam, I'm trying to see if
simple math problems are enough to keep the spambots away.
Anonymous ticket creation at http://trac.flipturn.org is
again available.

Thanks,

Rob

Sorry for not getting back to you earlier. Apparently my spam filter
got overly aggressive on the wxpython mailing list and I didn't see
it.

I regularly check on WinXP and do see the correct icons, but maybe if
using python setup.py install it will fail because I'm looking in the
module directory for the icons. I need to convert the icons to be
embedded in the application, so I'll do that for next release.

Rob

···

On 10/19/07, Mike Driscoll <mdriscoll@co.marshall.ia.us> wrote:

Hi,

When I run this on Windows XP SP2, all the toolbar icons are the same.
They look like a bunch of stylized question marks. Is this how it's
supposed to look? Currently, I'm using Python 2.4 and wxPython 2.8.4.2.

Mike

> -----Original Message-----
> From: Rob McMullen [mailto:rob.mcmullen@gmail.com]
> Sent: Wednesday, October 17, 2007 5:12 PM
> To: wxPython-users@lists.wxwidgets.org
> Subject: ANN: peppy-0.7.0 "Kibbles 'n' Snouts": dogfooding release!
>
> New release of peppy, my attempt to kick the XEmacs habit.
> I'm dogfooding now, and having two weeks of editing itself
> with itself, I'm happy with its stability.
>
> http://www.flipturn.org/peppy
>
> The feature that really made it comfortable to switch from
> XEmacs was, interestingly, M-x find-file, which uses the
> minibuffer, tab completion, and some modifications to the
> textctrl_autocomplete control to load files. Tab also
> scrolls through the list of available choices.
>
> The thing I miss the most is M-x fill-paragraph. If anyone's
> got a good algorithm for that, I'm happy to include it. :slight_smile:
>
> Still working on features from sources like Robin's blog and
> comments, and other requests. New features include:
>
> * M-x processing -- all actions are available through named
> equivalents. Try M-X <tab> to get the list of currently
> available actions. (M-X is equivalent to Alt-X for people
> not familiar to
> emacs.) Emacs style lower-case-with-dash aliases are
> available for most commands
>
> * Updated STC styling from Editra (www.editra.org) -- wrote
> an adapter around Editra's styling dialog and am now using
> all the lexer and style information from that project. Cody
> Precord has gone to a lot of work to create a mapping of
> scintilla styling information to a common style sheet
> specification. All related syntactic entities are styled in
> the same manner regardless of language. Make a change in the
> comment color, for instance, and it is reflected in all languages.
> Cody's got support for over 40 of scintilla's language
> lexers, and I'm going to be tracking his progress from now
> on. He's done too much good work for me to reinvent that wheel.
>
> * Thanks to the suggestion of Peter Damoc, you can run
> scripts from within the editor, capturing the standard
> out/error to a logging minor mode window. You can also run
> multiple scripts at the same time.
>
> * Integrated Stani Michiels' fold explorer as a replacement
> for custom class browsers. It doesn't update itself in
> response to your typing, so there's plenty of work to do, but
> at least it shows what's possible without knowing anything
> about the syntax of the language. I suspect major modes will
> start from this information and then do a little additional
> scanning to fully populate the class browser
>
> * Session saving plugin that can save and load the buffers
> shown in all the top level windows.
>
> * Created a tutorial plugin (in
> peppy/plugins/tutorial_plugin.py) that demonstrates how to
> add new actions and minor modes. I'm still debating an
> architectural change to major modes that has kept me from
> writing up a full tutorial on creating a major mode, but you
> can look at peppy/plugins/makefile_mode.py for a simple
> example or peppy/plugins/python_mode.py for a non-trivial example.
>
> * Still no towers of hanoi, but I did add hangman from the
> wxPython samples -- it uses the current buffer as the source
> for its words.
>
>
> Lots of work still to do. I also find a buffer list mode
> very useful, so that will be coming soon. M-x describe-*
> would be nice. Context menus. Menus on notebook tabs to
> close tabs, open a new tab, show related files, ...
>
> I'm also in the market for good reindent code. The idea is
> that each major mode will provide its own implementation of
> reindent, electric return, etc. or fall back to the
> superclass implementation. For my python mode my current
> code tries to handle the complicated cases rather than just
> indenting to the previous line, but ends up getting confused
> at a lot of things emacs gets right.
>
> Feedback welcome! After closing off my trac ticket creationg
> because of huge amounts of trac spam, I'm trying to see if
> simple math problems are enough to keep the spambots away.
> Anonymous ticket creation at http://trac.flipturn.org is
> again available.
>
> Thanks,
>
> Rob
>

---------------------------------------------------------------------
To unsubscribe, e-mail: wxPython-users-unsubscribe@lists.wxwidgets.org
For additional commands, e-mail: wxPython-users-help@lists.wxwidgets.org