Beginnings of a haxe "ide" written in haxeui!

So ive been toying around with this for a little while, and what was a test project has, as usual turned into so much more. So here is a teaser of “hxIDE”… Its not supposed to compete with any of the “big boys” like VSCode or HaxeDevelop… in fact, i think of it more like a “HaxeDevelop-Lite”, but written in HaxeUI, which makes its pretty cool imo!


(Full sized gif: http://haxeui.org/shared/hxide.gif)

It works remotely (via websockets) or locally, all using the same api (which is also pretty swish actually) :slight_smile:

autoconnect

Eventually it will have a native build also, once haxeui has a treeview component in core with a native counterpart (currently its just a composite treeview only, and a fairly basic one at that - no datasource, no item renderers etc)

Still, its pretty fun developing it, and a damn good test for HaxeUI, its also pretty “simple” for what it actually can already do, including compilation and build discovery… remote and local. Plus, the layouts make it really easy to mess around with things. Eg: heres the main layout:

<splitter id="mainContent" width="100%" height="100%" style="padding: 5px;background-color: #F3F3F3;padding-top:15px;" direction="horizontal">
    <tabview id="projectTabs" width="300" height="100%">
        <vbox text="Project" icon="icons/brick.png" width="100%" height="100%" style="padding: 0px;background-color: white">
            <project-tree width="100%" height="100%" />
        </vbox>    
    </tabview>
    
    <splitter width="100%" height="100%" direction="vertical">
        <splitter width="100%" height="100%" direction="horizontal">
            <editor-tabs width="100%" height="100%" />
            
            <tabview id="sideTabs" width="250" height="100%">
                <vbox text="Outline" icon="icons/shadowless-node-select-all.png" width="100%" height="100%" style="padding: 0px;background-color: white">
                    <outline-view width="100%" height="100%" />
                </vbox>    
            </tabview>    
        </splitter>    
        
        <tabview id="outputTabs" width="100%" height="200" tabPosition="bottom">
            <vbox text="Output" icon="icons/application_xp_terminal.png" width="100%" height="100%">
                <output-view width="100%" height="100%" />
            </vbox>
        </tabview>
    </splitter>
</splitter>    

2 Likes

Very cool!
Do you plan to release it ?
It would be a great showcase for haxe-ui.

Also can you share that Splitter component ? Or is there a builtin way to do it ?

Thanks

I will defo be releasing it, for sure. Not sure when though - first i need to get intellisense hooked up, which i think will go smoothly has i already have tests running for the haxe language server and seem to get decent results

Id like to get the haxeui builder hooked up in there by default too - but it needs a little more work first, see: https://twitter.com/IanHarrigan1982/status/1188142998929977344

As for the splitters, they are something i think will work their way into haxeui-core. In fact there are a few components i think will once they have been “battle tested” in this project. The main ones i can think of off hand are: splitters, treeview, propertygrid

These are all in this project and seem to work pretty well, once they are put into core however they will need native counterparts - ive had a look and i think all of them should be fairly easy to migrate to native, but ofc, its all time.

FYI - heres the property grid (as none of the screens above show it):

Cheers,
Ian

Looking good!
I love the idea of having the builder insider the IDE ala QtCreator or XCode.

I’m looking for a splitter for hxWidgets, I’ll look into it if I can come up with something.
Yes, I’m not familiar with all the supported backends but most should have equivalents.

What backend are you using for now (for the IDE) ? Would you mind sharing the splitter only ?

Thanks

ps: Those new components are fundamental addition for core IMHO ! Great job.