Pallavi 0.5: Text editor utilizing wxPython

Dusty Phillips wrote:

I have recently released a
fully-featured, extensively customizable text editor that utilizes
wxPython as its widget toolkit.

OK, I have to ask -- Why yet another wxPython-based Text editor?

There is PyPE, SPE, UliPad, Peppy, DrPython, .....

It would really be nice to unify these efforts more. In particular, Peppy seems to be very similar in intent, as does UliPad (plug-in based). So what does Pallavi have that the others don't, except that it happens to be one person's pet project (nothing wrong with a pet project -- I'm just curious)

That being said, from your web page, I like its design philosophy. In particular the goal of being general purpose, not just for Python coding -- I'm still waiting for ONE editor that I can use for everything, run on Windows, Linux and OS-X, and customize a bit , ideally without (re)learning LISP.

I'll give Pallavi a try on OS-X when I get a chance.

One question -- can you open files in different Frames -- that's key for me, I have no idea how people can be productive without being able to see files side-by-side!

-Chris

···

--
Christopher Barker, Ph.D.
Oceanographer

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

It uses AUINotebook, you can just drag a page to the right and have 2 files side by side in the same window. I might not be enough if you are accustomed to using 2-3 monitors with code windows on different monitors but for a large wide screen monitor is nice enough.

Peter.

···

On 9/3/07, Christopher Barker Chris.Barker@noaa.gov wrote:

One question – can you open files in different Frames – that’s key for
me, I have no idea how people can be productive without being able to
see files side-by-side!


There is NO FATE, we are the creators.

OK, I have to ask -- Why yet another wxPython-based Text editor?

There is PyPE, SPE, UliPad, Peppy, DrPython, .....

It would really be nice to unify these efforts more. In particular,
Peppy seems to be very similar in intent, as does UliPad (plug-in
based). So what does Pallavi have that the others don't, except that it
happens to be one person's pet project (nothing wrong with a pet project
-- I'm just curious)

I've been waiting for the question, but still haven't prepared an
answer. The shortest answer is that It started out as a pet project.
Then it became useful. I probably would never have announced it at all
except one of the DrPython devs stumbled across it and suggested I do
so, here: Pallavi / Bugs / #3 pallavi_config?

I hadn't heard of Peppy or Ulipad when I started Pallavi; the other
projects (Dr Python, SPE, Pype) all seemed to have flaws to me -- same
old story. For the most part, they didn't seem "unintegrated" enough
for me. I came across Peppy about a month ago when I started adding
wx.aui. I considered joining development at the time, but it seems a
bit "overengineered" for my taste). This is the first I've heard of
Ulipad, so I'll check it out.

In general, Pallavi has a much smaller core than most editors. Even
I/O is a plugin; my idea there was to make it possible to create new
or additional I/O plugins that used the same interface for things like
FTP, SVN, etc. Other editors all have toolbars and menubars. In
Pallavi, these are optional plugins. My design was partially inspired
by the Litestep desktop shell, with its tight core and "everything is
a module" philosophy.

That being said, from your web page, I like its design philosophy. In
particular the goal of being general purpose, not just for Python coding
-- I'm still waiting for ONE editor that I can use for everything, run
on Windows, Linux and OS-X, and customize a bit , ideally without
(re)learning LISP.

I use it for HTML, Javascript, CSS, and Python editing, although there
aren't many plugins to support most features of those yet.

I'll give Pallavi a try on OS-X when I get a chance.

That would be great. I anticipate errors since no testing has been
done on that platform yet and wxPython itself is not quite as mature
on it.

One question -- can you open files in different Frames -- that's key for
me, I have no idea how people can be productive without being able to
see files side-by-side!

Peter answered this -- you can split the view using the wx.AUI widget.
For multiple frames, the only option right now is to have two
instances running, with no communication between them. Setting up
something like jEdit's view server is on my list of "todo someday",
but hasn't been high priority yet.

Thanks for your interest. :slight_smile:

Dusty

Dusty,

You might think about signing up for the pyxides group
(http://groups.google.com/group/pyxides) -- it's a low traffic list
dealing with python based editors and trying to promote collaboration
among us clan of wxPython-based editor writers. (I'm the author of
Peppy.)

Anyway, pyxides sometimes just needs a little spark to come up with
some really cool stuff. Earlier in the year, Stani (of SPE) came up
with a "fold explorer", a way of automatically generate a list of
functions/methods using the STC's code folding code.

So, I recommend joining the pyxides list.

I came across Peppy about a month ago when I started adding
wx.aui. I considered joining development at the time, but it seems a
bit "overengineered" for my taste).

Probably an indictment of my documentation. :slight_smile: I can understand why
you might think that, especially when the website focuses on the
software development process from the project management point of
view. I need to rewrite the focus from a development point of view.
Developer-level docs haven't been a priority for me as my framework is
still evolving, but perhaps that was a bad choice on my part.

And, also, I'm trying to write XEmacs in python. :slight_smile: It is designed to
be much more flexible than a normal text editor, with major modes that
don't necessarily have to be STC instances. For example, you can edit
a file using the STC, switch a hex edit view of the same file and edit
a few bytes in hex, and switch back. Or, view a png file and in
another view look at the hex bytes.

So, my goals for peppy's framework were different than yours, but that
doesn't mean there won't be collaboration among all of us. Check out
PyPE and SPE for more code ideas. I've borrowed a bunch of code from
them.

I like your EventBus idea. My current work in peppy has been with
wx.lib.pubsub and message passing, and the idea of trying to get
messages to particular frames and STC components without keeping track
of a list of listeners myself.

Peter answered this -- you can split the view using the wx.AUI widget.
For multiple frames, the only option right now is to have two
instances running, with no communication between them. Setting up
something like jEdit's view server is on my list of "todo someday",
but hasn't been high priority yet.

From pain of experience, I'd recommend thinking about multiple

top-level windows and multiple views now, if that support is of any
interest to you somewhere down the road. I spent a lot of time
working with other editors before deciding to write my own framework
because I couldn't get around global variables or other assumptions
that made hacking multiple frames into other editors too difficult.
For example, view in your code seems to be tied to one wx.Frame
instance, so that means that a plugin can only be tied to a single
top-level window? Maybe I'm not reading your code correctly...

Also, you might be interested in the setuptools plugin system for
user-written plugins. It is becoming the de-facto standard in plugins
by defining a hooks for plugin entry points. I finally found a nice
tutorial that explained the concepts:
Python plugins egg cooking mini-howto - Base-Art, because I found the setuptools
documentation PkgResources - The PEAK Developers' Center not
to be useful until I knew what was going on.

Anyway, welcome to the club of wxPython editor writers. There are a
few of us out here. :slight_smile: And, I'm finally back on line after a few
months off getting married and moving across country. Most of the
editor writers are on this mailing list; Josiah Carlson (PyPE) is
particularly active.

Rob

Dusty Phillips wrote:

You might think about signing up for the pyxides group
(http://groups.google.com/group/pyxides) -- it's a low traffic list
dealing with python based editors and trying to promote collaboration
among us clan of wxPython-based editor writers. (I'm the author of
Peppy.)

So, I recommend joining the pyxides list.

Excellent! Requesting membership immediately. Thanks for the pointer.

Perhaps I should be replying there. I wouldn't want to impose on Sir
Robin's hospitality for too long.

I don't mind. I enjoy seeing how wxPython is being used, and although I'm subscribed to pyxides I don't read it that often.

···

--
Robin Dunn
Software Craftsman
http://wxPython.org Java give you jitters? Relax with wxPython!