Python add-in for MonoDevelop (Updated)

I wrote a python add-in for MonoDevelop last year. Unfortunately, I have a hard time sticking to a single project and therefore it suffered a bit. However, we are getting ready for feature freeze for MonoDevelop 2.2 and so I kicked my ars in gear to fix a few things.

Namely, the code completion is much more bearable. Most of the other niceties come from general improvement in MonoDevelop over the last year. You can thank the incredibly talented folks that run the project for that.

For readers that don't know what monodevelop-python is about, let me show you a couple of the features quick.

MonoDevelop knows where you are within the file. It provides a couple drop-down menus to help you jump around in large files.

It knows when you have typed incorrect syntax. The python add-in will continually check your syntax as you type so you always know immediately when you have syntax errors.

Like PyFlakes? So do I, so the add-in will also lint through common mistakes and underline those in yellow.

What good is code completion if its limited to your current file? Seriously, how useless was that before? Well, now, if you configure the path to your site modules monodevelop will parse those files too and build a code completion index to help you along. It's great for exploring API's! Unfortunately, it doesn't yet work well against libraries like pygtk where most of the data is provided dynamically at runtime from a shared library.

There is plenty more to do for this add-in and I hope I can continue to have time to improve it. But life is crazy like that, and you never know. I'm really quite interested in what people use for a debugger in python. I'd like to add one, but if "pdb" is the best that's universally available then I'm not sure how awesome it can get. Go ahead and leave a comment on what you would like to see and what debugger suggestions you have.

Oh, and here is a little screencast displaying what the add-in looks like live http://www.youtube.com/watch?v=vW-lNuoSNv0.

Comments (19)

  1. Mike wrote:

    Thanks for giving this an upgrade :)

    Tuesday, August 25, 2009 at 10:29 am #
  2. chergert wrote:

    I’m sorry it took so long!

    Tuesday, August 25, 2009 at 10:48 am #
  3. rousseau wrote:

    Looks really great, can’t wait to try it!

    Tuesday, August 25, 2009 at 11:15 am #
  4. Yeah!! Looks very impressive. Thanks so much, I can’t wait.

    P.S. Can you delete my previous post? I didn’t mean to publish my email address! Lol

    Tuesday, August 25, 2009 at 3:53 pm #
  5. Isaiah Heyer wrote:

    Looks nice.

    O/T: What wallpaper is that?

    Tuesday, August 25, 2009 at 4:37 pm #
  6. fdb wrote:

    What’s that background image and where can I get it? It looks great!

    Tuesday, August 25, 2009 at 5:55 pm #
  7. whitemice wrote:

    This looks great; I’m a huge MD fan and Python support will be a huge boost to my Python use.

    As for a debugger? It is all crap, Python hasn’t matured to that level yet. Maybe with IronPython.

    Tuesday, August 25, 2009 at 6:55 pm #
  8. chergert wrote:

    Thanks for the comments!

    I’d host the image myself, but I’m not sure what the license is. Here is the result I found for the filename.

    http://s2.photobucket.com/albums/y24/Generalchicken/?action=view&current=1228519704511.jpg

    Tuesday, August 25, 2009 at 7:27 pm #
  9. Isaiah Heyer wrote:

    That looks different, and it is only 800×500.

    Wednesday, August 26, 2009 at 12:04 am #
  10. ak wrote:

    Thank You. I’ve been waiting for this for quite some time!

    Wednesday, August 26, 2009 at 1:54 am #
  11. chergert wrote:

    Isaiah, I found it!

    http://zyklophon.deviantart.com/art/Hardwood-w-Lights-66313387

    Wednesday, August 26, 2009 at 1:56 am #
  12. pt wrote:

    Rather embarrassing that a fully featured IDE for python has to be from “Mono”develop .

    Great work btw, especially with in regards to explaining the features. Linux developers could learn a lot from you.

    Wednesday, August 26, 2009 at 2:57 am #
  13. Venu wrote:

    @pt
    Rather embarrassing that a fully featured IDE for python has to be from “Mono”develop .

    Well, this is just a plugin, which might interest developers who want to write python in MonoDevelop. It is by no means the only fully featured IDE for python.

    Netbeans and eclipse have better plugins than this, to name a few. Stani’s Python Editor (SPE) is a full featured python only IDE, with debugging and UML modelling supported, along with the standard features expected from an IDE.

    Please note that this is just an effort to bring python support to MonoDevelop.

    Wednesday, August 26, 2009 at 8:36 am #
  14. Mats Taraldsvik wrote:

    @pt : The MonoDevelop team emphasises that it (MonoDevelop) is not only an IDE for programming in C#.

    Does really an IDE for Python have to be written in Python as well? I don’t really care, as long as it works.. :)

    Wednesday, August 26, 2009 at 1:14 pm #
  15. Thom wrote:

    Shit looks incredible dude. I seriously cannot wait to try this.

    Friday, August 28, 2009 at 10:08 am #
  16. adam wrote:

    Well, I would love to try it out, but it is not included in the Ubuntu repositories. I am new to mono and am just starting with MD. This feature is actually the stop gap for me moving the MD in any amount of real development. I com from an Eclipse programming back ground in java, python, C/C++ development. I am justing to learn C# and was hoping to have all the features I have in Eclipse as well as a few extras. I guess I will have to wait a few years before moving from Eclipse and java to MonoDevelop and C#. It does look promising though, and I can’t hardly wait!

    Sunday, August 30, 2009 at 5:53 am #
  17. chergert wrote:

    @adam, we just reached feature freeze in 2.2. When we get to the release candidate stage, I’ll add monodevelop builds to my apt repository.

    Monday, August 31, 2009 at 7:56 pm #
  18. Thomas wrote:

    It would sure be nice to know how to add python to monodevelop. It is not in the addin repo. No word whatsoever to speak where the hell I might get it. Do they think we just conjure it out of thin air?

    Sunday, August 15, 2010 at 1:08 pm #
  19. chergert wrote:

    Thomas, It is part of the official monodevelop project. On ubuntu that would mean apt-get install monodevelop-python (and probably similar on openSuSE and other distros).

    Sunday, August 15, 2010 at 1:17 pm #