Kaxaml 1.0 is Finally Done

Get it at www.kaxaml.com, or go straight to the download here.

kaxaml

So, it’s finally done.  Done is never as done as you want it to be, so make sure you let me know if you find bugs. But it’s done enough.  What a great feeling!  I’ve been working on this version on and off since MIX and something like 70% of was done on a plane or in an airport.  The other 30% has been done over the holidays.  And that’s the kind of commitment I have to my New Year’s resolutions.  I knocked out the first one in two days.  I also intend to do 23 solid days of exercise starting tomorrow.

So there’s a lot of new stuff in this release.  I’ve been working on it for long enough now that I don’t actually think I could tell you everything that has changed.  So, in lieu of a complete change log, here are my top ten favorite new features (from the included readme):

1. Intellisense / code completion
This has the most requested feature by far.  I ended up writing this from scratch even though the text editor I’ve been using (see #2) already supported it because I didn’t like the UI (see #3). The Intellisense is based on an XSD so it will be roughly equivalent to the support you get in VS2005. Right now it only supports WPF (no Silverlight) but the plumbing is all there for a future update.

2. A better editor
I can’t take most of the credit for this one because I’m hosting the editor from the SharpDevelop project and I got a lot of cool stuff (syntax highlighting, line numbers, automatic indenting, node collapsing, tab to space translation, etc.) for free.  A big thanks to SharpDevelop community for making all of this stuff easy.

3. New UI
The New UI definitely in the spirit of original Kaxaml, but (hopefully) cleaner and nicer.  I played with some other ideas (like a floating plugin bar, resizeable plugins, etc.) but I really like the simplicity of the current model and didn’t want to abandon it.  Visually, I purposely kept it dark and flat so that whatever content you’re working on is the thing that pops.  Unfortuately, I ended up removing the full screen view and the ability to swap the code editor up to the top.  These are not tough features to add, I just wanted to get this out the door.  Expect them in future updates.

4. Better Snippets
Two new things here: first, you can right click on a snippet now and edit it in a popup snippet code editor.  Second (and this is kind of a hidden feature), you can assign each snippet a shortcut and then access it from a drop down in the code editor. The hidden part is the shortcut key: it’s Alt-Down.  Right now, there is no other way to access that. 

By the way, the snippets file format hasn’t changed so you can hang on to you original snippets.  Hopefully, you backed up your copy.  The old installer didn’t automatically keep it around for you.  The file is in the Program Files folder and it’s called KaxamlSnippets.xml.

5. Tabs
This one is pretty self explanatory.  You can open up more than one file now.  Also, if you hover over the tabs you can see a preview.  Ctrl+T will open a new tab.  Ctrl+W will close one.  There are some shortcomings still with tabs and hopefull I can fix these in a futuer version.  First, there’s no tab overflow.  If you run out of room, you’ll need to close some tabs to see the ones at the end.  Second, I don’t detect multipe instances of Kaxaml so double clicking a file will always create a new instance.

6. A better color picker (and color sync)
I rewrote the color picker.  It’s bigger now and you can tweak the individual RGBA or HSBA values.  Also, your palette of saved colors gets saved now.  The coolest feature, however, is the ability to synchronize the color you choose in the color picker with your selected text in the editor.  To use this, select a color and then choose the "plug"; button in the color picker (it’s the top button, above copy and save).  This makes it really easy to fine tune or tweak colors even when you’re hand-coding your XAML.

7. Zoom
This was definitely lacking in previous versions.  Now you can zoom in our on your content.  In my prerelease use of Kaxaml, zooming has turned out to be most surprisingly useful feature for me.  The shortcut keys are the same as those in Blend (and most other design tools).  Ctrl+= will zoom in (think Ctrl++) and Ctrl+- will zoom out.  Ctrl+1 returns to 100%. 

8. New plugins
New plugins are: XamlScrubber (it formats your XAML and removes unnecessary properties that are commonly inserted by Blend) and Snapshot (it lets you save an image of your content).  The ColorPicker is also a proper plugin. 

So far the actual API exposed for plugin authors is kind of spotty.  I’ve been adding stuff as I need it to build the plugins I want to build.  No one has ever contacted me about writing their own plugins, but if you happen to embark on this path let me know and I will happily expose new APIs for you.

9. Silverlight support
Kind of anyway.  Right now it’s just a big hack.  I do some preprocessing on the XAML so that I can parse Silverlight XAML as WPF XAML.  The hack really just involves switching out the Silverlight namespace with the WPF namespace.  That said, the plumbing to someday have right support for Silverlight is all there.  This will be the next thing I work on: real support for Silverlight xaml.

10. Better file management
There were some bugs with the file management in previous versions.  Sometimes you thought you had saved a file but hadn’t.  Worse, sometimes you had saved a file you didn’t mean to (and overwritten a previous version).  That’s (hopefully) cleared up now.  Also, you can drag a file into app and it will open.  There’s also kind of a quirky feature (but one that is super useful for me) that allows you to drag or paste an image and it will copy the image into a predefined directory and then generate some XAML for you.

Well, that’s the top ten.  Coming soon are better support for Silverlight, a font chooser plugin and some more cleanup.  I’m going to take a break for a while and move on to some other attic projects.  So for now, happy XAMLing.

13 Responses to “Kaxaml 1.0 is Finally Done”

  1. Mark Heath Says:

    thanks for this, it looks really good
    Just one bug I found. When I press CTRL+S in the editor I get an “Attempted to read or write protected memory” error, and then have to kill the application from task manager.

  2. Laurent Says:

    Well done Robby! Can’t wait to try this new version!

    Greetings,
    Laurent

  3. Walt Ritscher Says:

    Hey Robbie.

    This is excellent news. There are a number of free XAML editors out there, but KAZAML is fast, has a great code editor(thanks to SharpDevelop), has a clean yet functional UI and and keeps getting better over time.

    Nice work!

  4. KaXaml V1.0 released Says:

    […] just in case, he has great news: KaXaml 1.0 is released!! More information about this great tool here. Also included: XSD-based Intellisense support (like in VS2005) and basic Silverlight XAML support! […]

  5. KludgeHack Says:

    […] can see some release notes on the author blog or download this new version. The source code will also be available soon on […]

  6. Ben Carey Says:

    It’s about time :) Thanks Robby!

  7. Nigel S Says:

    Hi Robby,

    As soon as I try to edit anything I get the following error:

    The Instruction at “0×7c8150fa” referenced memory at “0×3a01d000″. The memory could not be “read”. Click on OK to terminate the program

    It happens every time. Any ideas?

    All the best and Happy New Year.

    Nigel.

  8. Robby Says:

    Hey Nigel. What operating system are you running? Anything else unique about your current environment? Thanks.

  9. Silverlight Cream for January 6, 2007 - 2 -- #166 Says:

    […] totally do away with my “tooltips” :) … this is the link to his blog with his Tip ‘o’ Day tag. Kaxaml 1.0 is Finally Done KaXAML from Robby Ingebretsen is a small-footprint xaml editor with source … so there’s GOT to be […]

  10. Wöchentliche Rundablage: LINQ, ASP.NET MVC, Silverlight, WPF, C# 3.0, Oracle (ODAC), SQL Server 2008, Visual Studio 2008… | Code-Inside Blog Says:

    […] netten kostenlosen Editor (mit IntelliSense!) für XAML gibt es jetzt auch: Kaxaml - hier ein kleines Review. Von Microsoft bzw. einem MS Mitarbeiter gibt es das XamlPadX V3, allerdings ohne IntelliSense - […]

  11. Kaxaml: The XAML editor for me « dotUpdate() Says:

    […] won’t bother listing all of the features that you can read about here, but my favorites are Intellisense support (with code completion!), snippets including a generous […]

  12. HowTo: Windows Presentation Foundation (Einstieg, Infos, Programme, Überblick) | Code-Inside Blog Says:

    […] Kaxaml 1.0: Ein Geheimtipp wie ich finde. Sehr schick umgesetzt und sogar mit IntelliSense - daher aus meiner Sicht momentan besser als XAMLPad oder XAMLPADX V3. […]

  13. Christian S. Says:

    Hi!

    First of all i would like to thank you for this fantastic piece of software. It’s in my oppinion simply the best XAML-Editor out there.

    But there is one thing that really drives me crazy. The programme always crashes when I don’t follow a certain scheme when starting it.

    This is what usually happens:
    1. Click on the Shortcut to Kaxaml.exe
    2. Kaxaml starts
    3. Click into the editor pane between the 2 Grid-Tags
    4. Programme crashes without any error message

    The really weird thing about this behaviour is that it only happens on my PC at home and on my laptop. I tried it with 2 laptops of friends of mine and it worked perfectly.

    To this point it’s kind of mysterious but it’s getting better now! I downloaded your Kaxaml code to look for a possible reason for the crash. I tried to debug the programme with VS2008 Express and to my surprise it worked perfectly. Whenever I debug it with VS it’s working simply perfect. However when I start a freshly built Kaxaml.exe without VS it crashes like I’ve described above.

    The only thing that prevents this crash is pulling a code-snippet from the sidebar to every code/xaml-window I open.

    I’m absolutely clueless why this crashes happen and hope you have a idea.

    Ah btw my home PC consists of a AMD AthlonX2 64 Bit processor and runs Windows XP Home while my laptop uses a Intel Core2Duo and runs Windows XP Professional.

    The 2 laptops where the programme ran fine both run Windows XP Home and one of them has an AMD Athlon Turion 64bit processor and the other a Intel Centrino Duo processor.

    I hope you can help me with this absolutely awkward problem.

    Best regards,

    Christian S.

Leave a Reply