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:
preprocess the script: plugin receives the raw script of Omni and return a modified version
compile the script: there can be only one compiler, it will be responsible for receiving the already preprocessed plugin, and 'compile' it to pure Galaxy code, returning the final script of the map to be put in its MPQ
modify the MPQ: make any changes desired to the map MPQ, just before everything is packed as the .SC2Map
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.
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 ..
Translators: yes it should be supported as plugins, but not really rdy yet, custom highlighters are also doable.
Intellisense: no user-defined symbols, only the symbols parsed (when Omni is started) from the .galaxy files in the \ScriptData folder of Omni, which at the moment contains the game natives. This kind of runtime parsing would need a lot of work to make, its too advanced.
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.
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:
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 ...
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