Hmm.. okay - I might need some files to debug that. Don't expect a new version until I got pointers to work though.. Progress is a bit slow at the moment since I don't have much time to spare, but I will get it done.
Well, I'm getting pretty close to finishing it.. just need to implement the runtime checks for null pointer and array index out of bounds errors. And then of course fix some of the bugs.
The problem with fixing the bugs first is that I already changed much of the code to facilitate pointers.. My code is basically built in stages - parsing, checking and then converting. The parsing and checking is done, so I would have to go back and undo that to make the compiler reject pointer code, if I want to fix bugs before making pointers.. It's not impossible, but it will slow down the overall process, and I might miss somethings, thus creating new bugs.
I don't think I announced it in this thread, but I released a v 1.7.7 before I started on the pointers - you did see that one, right?
Hmm I downloaded 1.77 installed it and now it crashes everytime I compile. Reinstalling didn't help :/ Also some autoupdate function could be of great use.
EDIT: nvm seems that it was a problem with 1 of the options i checked
I did my best with the current icon, although I admit 2d imaging is not one of my strong sides.. :) Is it really that bad?
Edit: Ah, I see that the icon is for some reason wrong in the task bar in the released version.. Ill look into that.
I want to make an advanced algorithm for analyzing when it's needed to check for null pointers, so I avoid placing a runtime check every time a pointer is used. It is proving a bit difficult though, and I decided to rewrite and expand it to include array indexes. It has been some time since the last release though, and I think it's about time I address some of the bugs.. So, I think I'll get to work on those, and then release it with the pointer features that are currently implemented - you just need to keep in mind then that the runtime behavior of the code may change in a future version, if you happen to reference a null pointer, or index a dynamic array out of bounds.
Hi, I really like your editor, it's really been speeding up my development time and ease.
I have just a few requests:
- an option to use tabs instead of spaces
- when making a new project, choose the path where it is created
- the ability to move the file tabs around, re-order them.
Of course, if you are willing to open source your project I could definitely help!
Tested 1.8 (no pointers yet). Most of the issues I mentioned earlier appear to be solved. Code obfuscation, string obfuscation and merging to one file seem to work fine, at least for my script (I have the feeling I am the only one sending you scripts, so you only fix the editor for my specific maps :D)
String obfuscation throws warnings for every constant string? Even if it does not work for constant strings, I would probably remove the warning, since the user did nothing wrong, esentially. Same for the not renaming trigger functions. I would include this information in the documentary, but not in warning messages (maybe add a differend kind of message, like a notification in some other message area, which could probably be hideable and could contain other useful information, like amount of renamed strings or whatever... just thinking loud here ;). I would remove the 'warning' character for these messages in any case, just not sure, how)
I have another suggestion, about triggers. The process of writing triggers is extremely repetitive and often requires the same basic code. Why not condense that into a single declaration, like so:
String obfuscation throws warnings for every constant string? Even if it does not work for constant strings, I would probably remove the warning, since the user did nothing wrong, esentially. Same for the not renaming trigger functions. I would include this information in the documentary, but not in warning messages (maybe add a differend kind of message, like a notification in some other message area, which could probably be hideable and could contain other useful information, like amount of renamed strings or whatever... just thinking loud here ;). I would remove the 'warning' character for these messages in any case, just not sure, how)
Are you referring to the warning about strings in fields? Because they should be made so you can just hide all but the first. I could change all the other warnings to behave in the same way.
Hi, I really like your editor, it's really been speeding up my development time and ease.
I have just a few requests:
- an option to use tabs instead of spaces
- when making a new project, choose the path where it is created
- the ability to move the file tabs around, re-order them.
Of course, if you are willing to open source your project I could definitely help!
I don't know about tabs - currently pressing tab results in 1-4 spaces (up to the next multiple of 4 characters). What is your reason for wanting tabs instead? Perhaps I could do something else.
The others I can put on my todo list ;)
I don't think I will go opensource - I like to be in control of the language.. I haven't really thought about bringing others in to help on the project. I'm not sure how I feel about it. The code is not nearly commented enough for other eyes than mine, and I would probably not have as good an overview of the code. But on the other hand, I don't have as much time to spend on it as I would like at the moment. I'll have to think about it.
I have another suggestion, about triggers. The process of writing triggers is extremely repetitive and often requires the same basic code. Why not condense that into a single declaration (...)
I have been thinking about this myself actually. I was thinking about doing it something like this
#trigger foobar{#events//Optional{TriggerAddEventMapInit(foobar);YourFavoriteEvent(foobar,args);}#conditions//Optional{//Return true if the trigger should be run//I initially didn't think too highly about this section, but I suppose it does//make a diffrence, since it must be guarded by testConds and return false in the trigger.}#actions{//Insert trigger code here. //References to variables runActions and testConds are possible.//Return type is void, and will be changed to boolean by the compiler.}}
Refferencing foobar will then either be the global trigger variable, or the trigger method - depending on the context. The initializer function will be called automatically at map init.
It might be possible for me to add support for chinese symbols in strings, but right now I got a lot to do and no time. Next on my list is the runtime checks of pointers. But right now I got some courses at school that are coming to an end and thus demand a little more time. But once exams are over, there's the holiday period. Should have good time to work there. :)
In the mean time, like mr. Fl4m3Ph03n1x suggested. You should be able to just use the proper escape sequences.
Edit: Hmm. I just tested it a bit in the normal editor. Maybe it's just because I got the European version of SC II, but the highest value I can enter without getting an error is \377 (0xFF).
I don't know about tabs - currently pressing tab results in 1-4 spaces (up to the next multiple of 4 characters). What is your reason for wanting tabs instead? Perhaps I could do something else.
It's just a coding preference. In all of my coding I always configure the editor to put in the tab character instead of some spaces. It's not really a high priority thing but its also pretty easy to implement I think.
Thanks for the answer. I`m not a programer,and I don`t what is ISO format. I`m Chinese , so my OS bases Chinese language. I use always Chinese input method, so if I use of full-width punctuation just careless, and copy the words to Galaxy ++ editor , it will Crash.
This problem also in NewGen ,which is the third party editor of WAR3. Tools complie by the programer who`s mather tongue is English often have this programe. Beacause the words of Chinese or other languages, just like Russian ,is the two-bytes words. And the programers always never think ablout it.
But thank goodness , when i write procedures ,the Chinese words or full-width punctuation can`t write on Galaxy++ editor. The problem just appears at copying words. But the window of the error message is nasty. It will show again till you close the Galaxy ++ editor. Maybe it because the cycle checks . Could you have some detection mechanisms to stop the checks ?
Any specific reason, why output files have tons of seemingly unnecessary linebreaks, especially when checking the "obfuscate strings" option? (7k lines unchecked, 8.8k checked)
It's just because I think the code is easier to read if there is a line break between declarations (functions, fields, includes and struct declarations)
Suddenly, the test and save functionalities stopped working for me. I get flooded with "Unable to copy file X to the map" messages.
Hmm.. okay - I might need some files to debug that. Don't expect a new version until I got pointers to work though.. Progress is a bit slow at the moment since I don't have much time to spare, but I will get it done.
Checking the "obfuscate strings" option causes the editor to crash while compiling
Checking "use short names" causes the same for some of my scripts
i think you should should make something with all these terrible bugs before adding new features, like pointers and etc...
Well, I'm getting pretty close to finishing it.. just need to implement the runtime checks for null pointer and array index out of bounds errors. And then of course fix some of the bugs.
The problem with fixing the bugs first is that I already changed much of the code to facilitate pointers.. My code is basically built in stages - parsing, checking and then converting. The parsing and checking is done, so I would have to go back and undo that to make the compiler reject pointer code, if I want to fix bugs before making pointers.. It's not impossible, but it will slow down the overall process, and I might miss somethings, thus creating new bugs.
I don't think I announced it in this thread, but I released a v 1.7.7 before I started on the pointers - you did see that one, right?
Hmm I downloaded 1.77 installed it and now it crashes everytime I compile. Reinstalling didn't help :/ Also some autoupdate function could be of great use.
EDIT: nvm seems that it was a problem with 1 of the options i checked
Also this tool actually needs a good icon.
I did my best with the current icon, although I admit 2d imaging is not one of my strong sides.. :)
Is it really that bad?
Edit: Ah, I see that the icon is for some reason wrong in the task bar in the released version.. Ill look into that.
I want to make an advanced algorithm for analyzing when it's needed to check for null pointers, so I avoid placing a runtime check every time a pointer is used. It is proving a bit difficult though, and I decided to rewrite and expand it to include array indexes. It has been some time since the last release though, and I think it's about time I address some of the bugs.. So, I think I'll get to work on those, and then release it with the pointer features that are currently implemented - you just need to keep in mind then that the runtime behavior of the code may change in a future version, if you happen to reference a null pointer, or index a dynamic array out of bounds.
Uploaded 1.8.0 with the following changes
Note that as mentioned above, some runtime checks are not yet implemented for pointers.
Hi, I really like your editor, it's really been speeding up my development time and ease.
I have just a few requests:
- an option to use tabs instead of spaces
- when making a new project, choose the path where it is created
- the ability to move the file tabs around, re-order them.
Of course, if you are willing to open source your project I could definitely help!
Tested 1.8 (no pointers yet). Most of the issues I mentioned earlier appear to be solved. Code obfuscation, string obfuscation and merging to one file seem to work fine, at least for my script (I have the feeling I am the only one sending you scripts, so you only fix the editor for my specific maps :D)
String obfuscation throws warnings for every constant string? Even if it does not work for constant strings, I would probably remove the warning, since the user did nothing wrong, esentially. Same for the not renaming trigger functions. I would include this information in the documentary, but not in warning messages (maybe add a differend kind of message, like a notification in some other message area, which could probably be hideable and could contain other useful information, like amount of renamed strings or whatever... just thinking loud here ;). I would remove the 'warning' character for these messages in any case, just not sure, how)
I have another suggestion, about triggers. The process of writing triggers is extremely repetitive and often requires the same basic code. Why not condense that into a single declaration, like so:
Its kinda like the trigger "class" extends the map init event. If you need to pass parameters to the event function, you can do it like so:
the example before would be compiled to:
As you can see, it's a major reduction in code etc.
Are you referring to the warning about strings in fields? Because they should be made so you can just hide all but the first. I could change all the other warnings to behave in the same way.
I don't know about tabs - currently pressing tab results in 1-4 spaces (up to the next multiple of 4 characters). What is your reason for wanting tabs instead? Perhaps I could do something else.
The others I can put on my todo list ;)
I don't think I will go opensource - I like to be in control of the language.. I haven't really thought about bringing others in to help on the project. I'm not sure how I feel about it. The code is not nearly commented enough for other eyes than mine, and I would probably not have as good an overview of the code. But on the other hand, I don't have as much time to spend on it as I would like at the moment. I'll have to think about it.
I have been thinking about this myself actually. I was thinking about doing it something like this
Refferencing foobar will then either be the global trigger variable, or the trigger method - depending on the context. The initializer function will be called automatically at map init.
Galaxy editor is a good tool. But it don`t supposes Chinese. If i copy some Chinese words ,there will be something wrong. Just like the picture.
有关调用实时(JIT)调试而不是此对话框的详细信息, 请参见此消息的结尾。
** 异常文本 ** Galaxy_Editor_2.Compiler.Generated.lexer.LexerException: [38,2] Unknown token: 是 在 Galaxy_Editor_2.Compiler.Generated.lexer.Lexer.GetToken() 在 Galaxy_Editor_2.Compiler.Generated.lexer.Lexer.Next() 在 Galaxy_Editor_2.Suggestion_box.MyListbox.GetMatchingCurrentMethod(Int32& commaCount, TextPoint& parenPos, Boolean& isAsyncInvoke) 在 Galaxy_Editor_2.Suggestion_box.MyListbox.currentEditor_OnCaretChanged(MyEditor sender) 在 Galaxy_Editor_2.Editor_control.MyEditor.Caret.set_Position(TextPoint value) 在 Galaxy_Editor_2.Editor_control.MyEditor.Caret.SetPosition(TextPoint pos, Boolean absolute) 在 Galaxy_Editor_2.Editor_control.MyEditor.ExecuteKey(KeyEventArgs e) 在 Galaxy_Editor_2.Editor_control.MyEditor.OnKeyDown(KeyEventArgs e) 在 Galaxy_Editor_2.Editor_control.MyEditor.ProcessDialogKey(Keys keyData) 在 System.Windows.Forms.Control.PreProcessMessage(Message& msg) 在 System.Windows.Forms.Control.PreProcessControlMessageInternal(Control target, Message& msg) 在 System.Windows.Forms.Application.ThreadContext.PreTranslateMessage(MSG& msg)
** 已加载的程序集 ** mscorlib 程序集版本: 4.0.0.0 Win32 版本: 4.0.30319.225 (RTMGDR.030319-2200) 基本代码: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
--------Galaxy Editor 程序集版本: 1.8.0.0 Win32 版本: 1.8.0.0 基本代码: file:///D:/Game/Galaxy++%20editor/Galaxy++%20Editor.exe--------System.Windows.Forms 程序集版本: 4.0.0.0 Win32 版本: 4.0.30319.1 built by: RTMRel 基本代码: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll--------System.Drawing 程序集版本: 4.0.0.0 Win32 版本: 4.0.30319.1 built by: RTMRel 基本代码: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll--------System 程序集版本: 4.0.0.0 Win32 版本: 4.0.30319.225 built by: RTMGDR 基本代码: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll--------System.Windows.Forms.resources 程序集版本: 4.0.0.0 Win32 版本: 4.0.30319.1 built by: RTMRel 基本代码: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_zh-Hans_b77a5c561934e089/System.Windows.Forms.resources.dll--------System.Core 程序集版本: 4.0.0.0 Win32 版本: 4.0.30319.225 built by: RTMGDR 基本代码: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll--------mscorlib.resources 程序集版本: 4.0.0.0 Win32 版本: 4.0.30319.1 (RTMRel.030319-0100) 基本代码: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_zh-Hans_b77a5c561934e089/mscorlib.resources.dll--------** JIT 调试 ** 要启用实时(JIT)调试, 该应用程序或计算机的 .config 文件(machine.config)的 system.windows.forms 节中必须设置 jitDebugging 值。 编译应用程序时还必须启用 调试。
例如:
<configuration> <system.windows.forms jitDebugging="true" /> </configuration>
启用 JIT 调试后,任何未经处理的异常 都将被发送到在此计算机上注册的 JIT 调试器, 而不是由此对话框处理。
Maybe that happens because Galaxy editor is not supposed to read Kanji!?! I am just saying ... It probably works better if you use an ISO format...
It might be possible for me to add support for chinese symbols in strings, but right now I got a lot to do and no time. Next on my list is the runtime checks of pointers. But right now I got some courses at school that are coming to an end and thus demand a little more time. But once exams are over, there's the holiday period. Should have good time to work there. :)
In the mean time, like mr. Fl4m3Ph03n1x suggested. You should be able to just use the proper escape sequences.
Edit: Hmm. I just tested it a bit in the normal editor. Maybe it's just because I got the European version of SC II, but the highest value I can enter without getting an error is \377 (0xFF).
It's just a coding preference. In all of my coding I always configure the editor to put in the tab character instead of some spaces. It's not really a high priority thing but its also pretty easy to implement I think.
Thanks for the answer.
I`m not a programer,and I don`t what is ISO format.
I`m Chinese , so my OS bases Chinese language.
I use always Chinese input method, so if I use of full-width punctuation just careless,
and copy the words to Galaxy ++ editor , it will Crash.
This problem also in NewGen ,which is the third party editor of WAR3.
Tools complie by the programer who`s mather tongue is English often have this programe.
Beacause the words of Chinese or other languages, just like Russian ,is the two-bytes words.
And the programers always never think ablout it.
But thank goodness , when i write procedures ,the Chinese words or full-width punctuation can`t write on Galaxy++ editor.
The problem just appears at copying words.
But the window of the error message is nasty. It will show again till you close the Galaxy ++ editor.
Maybe it because the cycle checks . Could you have some detection mechanisms to stop the checks ?
Any specific reason, why output files have tons of seemingly unnecessary linebreaks, especially when checking the "obfuscate strings" option? (7k lines unchecked, 8.8k checked)
It's just because I think the code is easier to read if there is a line break between declarations (functions, fields, includes and struct declarations)
Maybe, but the generated code usually doesn't need to be readable anyways, especially with short names and obfuscate strings enabled :D