At some near time I will publish a proper SDK, it is just not ready. But if you already want to learn how to write those plugins before the SDK is released, which is something you would want to learn anyway, start looking at how I wrote Ion, the source is here.
Note that I expect people interested in making plugins to know a bit of C and compiling DLLs for Windows. Main thing to start understanding is the header file for the DLL here.
There is no such thing as you imagine: "how the dll loads the map file", when the map is saved, Omni calls exported functions of the plugin DLL to it do certain things, thats all for plugins.
I will describe what I will let plugins do when the map is saved:
As for the requests, already added the one you asked for hidding that space, just wait for the next version. As for the Data tab, havent considered that, and so I am not willing to make it, so many things planned to do ... right now I am working in a widget for showing a list of natives, also I am studying how to write a parser for Galaxy with ANTLR. But you could write with my help a plugin for that ...
Just a small bug I've noticed while using Omni, the "while" keyword doesn't get highlighted blue like other control structures.
Crash bug: When you have a category (or a folder) that is already at the bottom of the list (or technically the top of the list), and you attempt to move that folder to the bottom of the list, the Omni editor crashes.
To reproduce this easily, open any map, pick the last folder, and move the mouse until you see the red line at the bottom beneath the folder you selected, click and watch it all burn down.
New version, now it got overloads!
The major thing is that I implemented a feature (that I called IntelliWrap) to the code editor for wrapping and inserting code from a list of natives or from a list of language constructs (if, while, for, function). I had planned it long ago, but now I dont find it so usefull, but I have better plans for it, so its like a version for seeing how I am making this kind of UI and if anyone like it, but which I can improve, though I wont work in it again any time soon.
yes, the crash while moving folders to given locations is a known bug, I have to write the checks for invalid places for the dropping, maybe in next release ..
This makes me want to learn galaxy so i can use this. :)
I'm watching you
Need Help with dialogs? Use Dialogception
Does this support plugins, like custom translators from some language to Galaxy? Furthermore, does it have support for highlighting keywords for those custom translators?
Does this find user defined functions for the intellisense and what not?
Probably going to do a Galaxy OO language using Antlr 4. This is a pretty cool tool, but it doesn't appear to support custom stuff atm :\.
Galaxy OO current notes
proof of concept for classes in Galaxy
would also be nice to support version control for teams, like git
This tool is supposed to be extensible with plugins support, something I have decided from the beginning when I started it. Its a language tool, so support for translators, preprocessors is of course what I want for plugins. Plugin support is already working as you can see in the plugin named Ion, that comes with Omni: it is a separeted .dll loaded at startup; it is a preprocessor, when you save the map it process the script and returns a modified version of the script, that is, Ion is a translator.
In order to further develop plugin support, its just a matter of we working together in order to I know in what I should focus for supporting plugins.
Version control inside Omni, that is for a very distant future.
How will plugging into the intellisense work? I'd also really love it to support use stuff, like Visual Studio does.
Might you have a look at Antlr 4? It's not that difficult to do when using that, heh.
My plan for extending intellisense, more specifically the database of symbols keep internally (for displaying autocomplete, nametips, ...), would be letting the user customize it, not just plugins. It would be by reading custom text-blocks with those definitions, those text-blocks located inside the trigger content. For example:
// Define symbol names
int UNIT_LIB_VERSION = 0x03
int UnitLib_AllocateData(int unitid, string key);
void UnitLib_DeallocateData(int data);
// Define snippets
for(int i=0; i<10; i++)
Why this? I am not making another Visual Studio, my effort is toward something really usefull for map-making, not a full-featured IDE. With this approach someone writting a library could define what symbols the library is exporting for the final-user, symbols which would appear in autocompletion, calltips, .., and also the library could define snippets of code that user could insert (like a macro, maybe with parameters, to insert text).
I know ANTLR 4, and only the JAVA target is available. Dont know if you are familiar with DLLs exports, but this is the way Omni loads and communicates with plugins. Im not familiar with JAVA, but I guess you would need to write a DLL in C that Omni can load/talk, while this DLL interops with the JAVA program, what do you think? Are you really making a Galaxy extension with ANTLR?
I r, as long as I stay interested in it =). It would be coolest if other people helped too, it'll all be on github >.<. So far though, nobody has joined, so I'm solo :\, meaning that it will likely never be finished as I'll get bored with it.
Anyways, it would be better if you loaded up both dlls and jar files
All right, I updated to support the last patch for WoL and HotS since someone asked me
I am making version 2.0 which will change many things, it will have its own compiler for Galaxy and maybe there will also have my own language extension for Galaxy, though it will take sometime to get it finished ...
Edit: I'm getting this on startup:
MN: Natives parsing done (78ms
PG: Succeded loading plugin at folder 'Ion
PG: Plugins load done (0ms
IT: GE.I. Starte
[Not-fatal error] ------
msg -> Unsupported version - GE.I. stoppe
desc -> GE version is unsupported or has failed to validate it. Restart Omni and Galaxy Editor to correct it
thats because I updated it to patch 2.0.4, but then the 2.0.5 patch came out
maybe tomorrow I will update it ..
You must login to post a comment. Don't have an account? Register to get one!