FlashDevelop HelpPanel 1.4 Beta

The HelpPanel plugin for FlashDevelop is getting complex enough that I feel I need to do a beta release this time around. I’m excited about this release because it’s my first public version that is powered by Apache Lucene. Lucene is the search system that powers Eclipse, among other things.

What does this mean for you, the ambitious FlashDevelop user? Well, thanks to Lucene, searches complete almost instantaneously. If you blink, you’ll miss it! This great speed improvement comes from Lucene’s indexing features. Lucene analyzes your help files and saves certain information about each one. Instead of using the old method of actually reading all the help files for every search, Lucene uses the single index file and a little black magic to spit out results for you.

Why is this a beta release? Well, honestly, it’s because I’d like feedback. I’m pretty sure I’ve stabilized my codebase, but I’m not entirely sure about the user interface implementation. Right now, when you run your first search in a default source (Flash’s help files), it will automatically create the index and show a simple progress dialog. Should I include a message that says this process will only need to happen once? Where would be a good place for it? I’d rather not create a message box specifically for this message. Perhaps it will be best if I placed it on the indexing dialog.

I’m also unsure if the behavior for adding a new source is the best choice. Instead of waiting for the first search to create the new index, I do it right away when the Help Source Manager is closed. I felt it would be good to do it so that you don’t have to wait for it during your first search. Yet, I wonder if it would be better to make the behavior match that of the default sources?

Please let me know what you think of this beta version. Also, if you have any thoughts about other things I can do to improve the HelpPanel, I’d be happy to hear them. You can download the HelpPanel plugin from the FlashDevelop plugins page.

About Josh Tynjala

Josh Tynjala is a frontend developer, open source contributor, bowler hat enthusiast, and karaoke addict. You might be familiar with his project, Feathers UI, an open source user interface library for Starling Framework that is included in the Adobe Gaming SDK.

Discussion

  1. Igor

    That is really fast!
    But I am not sure why you are not using standard help_toc.xml and help_search_index.xml files yet? There are already tools that create those automatically and existing documentation is based on that. Neglecting them is like not confirming to standards. Parsing could be faster and it could be easy to create browsable documentation. Another thing is that you rely on html title when building the index, instead of using name defined in help_toc.xml
    Also, if documentation files could open directly inside FlashDevelop that would be great.
    Flash Resource Manager does all of the above mentioned. It would just be much better having everything inside FlashDevelop.

    Thanks.

  2. Josh Tynjala

    Igor,

    Thanks for your input. I plan to make use of the internal xmls for a help Contents panel eventually. This will allow the user to view the help without searching. I was not aware that there were tools that would generate these files for other help sources. I might be willing to look into using such a solution if the HelpPanel searches will be as fast as they are now. Can you point me to an example of one of these tools? Are there any open source tools like this? I quick Google search didn’t give me much hope.

    I too would like to open help files directly inside FlashDevelop (as an option). However, the Internet Explorer control will not behave correctly. There seems to be a problem loading it from a plugin dll because I can modify FlashDevelop’s internal code and get it to work correctly. Phillipe and Mika would prefer not to include browser support, and I agree with their reasons. I may try to support an internal browser again at some point, but it’s not a priority.

  3. Josh Tynjala

    If anyone else is interested, I found an article from Adobe about Extending Flash Help Panel Content. It gives information about the file formats used by Flash’s help system. I should be able to write some code to generate similar xml files to be used with user-defined help sources. Since Lucene does some pretty heavy-duty analysis of the files, creating the xml files instead should be faster because I’ll just be stripping html and storing the text. Hopefully search performance will be tolerable. Obviously, Flash uses this system, and so does the Flash Resource Manager, so it should be good.

    I’d like to hear additional thoughts as well.

  4. bruno

    Wow that’s fast !
    Thanks Josh. now we (at least you should) can paraphrase that famous osflash developper “no more coffe break while searching for help!” 😉
    I do agree with Igor help inside flashdevelop would be cool but still it’s really cool as it is. (the livedocs search is faster than the call for the help panel in the flash IDE !!! maybe fasterfox helps it a tiny bit). Regarding the first time indexing message thingy, from my point of view don’t bother adding a new box, people playing around with FD know what indexing means (i hope so…).

    Thanks again and continue good work.

  5. Marcelo de Moraes Serpa

    Great work dude… I don´t have FD installed here at work, but I can´t wait to get home and put my hands on this new release, now things are getting really interesting! Once I test it I will get back here and express my opinions and sugestions.

    Keep up the good work 😉

  6. Angus

    Cheers, but maybe a note in the readme to say how to install the thing cos it’s really not all that clear. The dll is obvious enough, with the other dll’s in the plugins folder but the source folder? I mean I’ll work it out eventually but, gies a clue 🙂

  7. Josh Tynjala

    You don’t need to put the source anywhere. I believe in providing source code whenever I can, so it’s there to allow you to learn from it or to extend the plugin if you wish.