[Idle-dev] Adapting IDLE for different file types

Tal Einat taleinat at gmail.com
Sun Mar 25 21:05:47 CEST 2007


On 3/25/07, Keith R. Fieldhouse <idle at rexmere.com> wrote:
>
> Hello,
>
> I work on a project that uses Python as the basis for a very domain
> specific development environment.
>
> For documentation and training purposes I'd like to use IDLE as the
> initial development tool.  In other words, my "getting started"
> documentation and class exercises for example, would be produced in
> terms of IDLE.
>
> Thus far, this works quite well, IDLE strikes the right balance between
> simplicity, accessibility and capability.


I'm glad to hear - it means IDLE meets its goals :)

One issue is that our development environment has a number of domain
> specific text files used in the process of developing applications.
> Naturally, IDLE is able to edit these files with no problem.  I would,
> however, now like to add syntax colorization and possibly indentation
> support for these text files.
>
> Has any one done this?  Any thoughts on the proper approach or other
> hints would be greatly appreciated.   If there is some reason that this
> would be a Bad Idea, let me know that as well...


AFAIK and as far as 10 minutes of Google-ing can tell, this hasn't been
done. But I don't see any reason why this would be a Bad Idea.

As for thoughts on the proper approach: This could be an IDLE "extension".
See idlelib/extend.txt for an introduction to extensions, and check out some
of the built-in extensions, like ParenMatch and CodeContext.


For some technical details, check out EditorWindow.py:

        self.per = per = self.Percolator(text)
        if self.ispythonsource(filename):
            self.color = color = self.ColorDelegator()
            per.insertfilter(color)
        else:
            self.color = None

What your extension should do is call per.insertfilter(custom_colorizer),
where custom_colorizer would be your colorizer object. Your colorizer class
should inherit Delegator - see Delegator.py. Also see the implementation of
ColorDelegator in ColorDelegator.py, for a starting point.


Feel free to bug me with questions, I'd be glad to help :)

- Tal Einat
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/idle-dev/attachments/20070325/aa1bf548/attachment.htm 


More information about the IDLE-dev mailing list