Pages: 1
  Print  
Author Topic: Code auto completion + Better syntax error system + Few other stuff  (Read 3189 times)
Offline (Unknown gender) AsuMagic
Posted on: November 23, 2013, 04:44:36 pm
Member
Joined: Nov 2013
Posts: 23

View Profile Email
Code autocompletion is really nice in GM and permits the developers to gain a loooot of time instead of going on documentation. I'm impressed that it is not in todo list, it is one of the greatest script editor functions in GM.

fdisj ijfids pj(llelellele) - 'No errors'.  :raise: Tell me, it seems just 'a bit' screwed up. 80% of times my errors are due to syntax and LGM can't find the worse ones before compiling.

Also doc is really incomplete - You can't even know the arguments for bullet physics, box2d setup is not detailed at all ( Even less for Windows platform )
Accent support for objects - Because if you write your object/scripts/whatever names with accents, compiler will return an error.
More sound filestypes supported - Well, FLAC / WMA / etc. stuff should be interesting.
VST effects... - Should be fucking awesome for sounds effect.
... VST instruments for MID - Well, I guess I'm asking too much x)
A last - What about a better error debugger? Like, much more easier to understand.

Bye

edit :
Also I can help for french translation, do you need some help?
« Last Edit: November 23, 2013, 04:53:23 pm by AsuMagic » Logged
Offline (Male) Goombert
Reply #1 Posted on: November 23, 2013, 06:52:45 pm

Developer
Location: Cappuccino, CA
Joined: Jan 2013
Posts: 2993

View Profile
Quote
Code autocompletion is really nice in GM
Yeah we already have that, try CTRL+Space, it just doesn't show up automatically yet, noone has gotten to it yet.

Quote
Accent support for objects
That really is not possible and is being left deprecated for a reason. The resources are treated as variables, and just as you can not have such variables, you can not name resources similarly.

Quote
More sound filestypes supported
Build->Settings and select "API" to switch audio systems.
DirectSound: WAV (nobody has added mp3 yet, but will soon)
OpenAL: WAV, OGG, MP3
We basically support all the basic sound formats of Game Maker and intend to keep it that way to prevent unnecessary bloat on peoples games, but extra formats are possible through extensions.

Quote
What about a better error debugger? Like, much more easier to understand.
This is somewhat not possible, the output window simply displays the feedback from the MinGW compiler and looks like standard output in any IDE, such as Visual Studio.

We do however have plans for symbolic message feedback in our C++ rewrite of LGM.
Logged
I think it was Leonardo da Vinci who once said something along the lines of "If you build the robots, they will make games." or something to that effect.

Offline (Unknown gender) AsuMagic
Reply #2 Posted on: November 24, 2013, 02:50:11 am
Member
Joined: Nov 2013
Posts: 23

View Profile Email
Thanks for the quick answer.
But errors are really not clear. If a error makes compilation abort, it should be nice if it was showing a message if, for example, you have forgotten an argument : 'ERROR while compiling. Incorrect arguments at draw_parallaxbg(); ( Clicking should focus on the script window )' or if there is like a totally unknown D2D error : 'ERROR while compiling. Unknown error. More informations about the issue : someshit'.
Bye, keep making this compiler awesome!  ;)
Logged
Offline (Unknown gender) TheExDeus
Reply #3 Posted on: November 24, 2013, 08:02:12 am

Developer
Joined: Apr 2008
Posts: 1860

View Profile
If the problem is in your code, then ideally it should show the error in the syntax editor. It works for most common errors, like invalid argument count for a function. If the script editor didn't catch it, then in most cases it's because of bug in the parser that changes your GML/EDL into C++. So if it shows an error only when you run it, then the parser made an error converting your code. There are already several known situations when this can happen (mostly when using "var" together with object variables in scripts).
Code: [Select]
fdisj ijfids pj(llelellele);If you don't have a script named pj, then this should show a syntax error (Unknown function or script 'pj'). Otherwise, this code is valid. For example, this code:
Code: [Select]
fdisj ijfids show_message(llelellele); is parsed as:
Code: [Select]
fdisj; ijfids; show_message(llelellele); where the 3 weird looking things are just variables. That is a valid syntax. They will default to 0 if not initialized. To error on uninitialized variables launch the project in Debug mode - sadly though, it will not be able to tell you WHERE that uninitialized variable is. That is something that needs to be done for sure.

edit: Ok to be clear, it's actually parsed as this:
Code: [Select]
with((self))
  {
    enigma::varaccess_fdisj(int(self));
    enigma::varaccess_ijfids(int(self));
    show_message(enigma::varaccess_llelellele(int(self)));
   
  }
  ;
But the idea is the same.
Logged
Pages: 1
  Print