Two years later - still the same problems in the Editor (Build 2755 > 3521)

Doerk Hilger  

Hi MetaQuotes,

I was sticking to Build 2755 for almost two years coz it was the most stable version, until I was forced now to update the latest build, since a connection to most of the brokers was not possible anymore. Now I have to use MT5 Build 3521 and I am wondering, that my "problem-list" seems to be unchanged since two years. Early 2021 I made severeal reports, including video to demonstrate the bugs of the editor, which was even crashing here and there. All further builds had other problems, like unbelievably high compile time which made it impossible to use the builds, crash of MT when loading EA and indicators same time and so on. 

I was wondering how often there were new builds of MT and lost interest to update, since I don´t see the big fixes or real improvements. It might all be kind of "ok" with small test-projects, but not anymore when one tries to develop seriously and/or code gets more complex.

0. FREEZE / CRASH while editing. 

In the example: After typing the * character, it freezed and the work before is just lost. I remember from 27xx, typing code between brackets causes the editor to crash from time to time, that is a two years old bug (at least!). What I can add here as information is, that this happens only to "old" code. Means, when I edit classes which are very old and touched rarely, it happens. Same time it never happens to new classes. 



1. Local variable definitions within functions of classes are mostly not recognized by the autofill-feature of the editor.

See the example, where is "index"? And of course, the context-menu function "Go to definition" will also not find it


2. The compile time increased by 500% 

Build 2755 needed 4 seconds between clicking "Run" in the editor and until the dialog-box with the inputs for the EA was shown in MT5. Build 3521 needs 19 seconds for the same code. Of course without optimization. This costs 30 min every day (for nothing) when I start the debugger 100 times e.g. 


3. The "Find" window still covers 25% of a notebook screen

Regarding this, many developers were complaining already two years ago, after this redesign. The find window is an annoying thing, since it is just in the way the most of the time and it needs to be clicked away like 1000 times a day - coz it is just wayyyy tooo big, and this without any recognizable reason, since the space is just wasted within this window. In 99,9% of all cases, every developer just wants to find a code-phrase quickly, nothing else. Rarely coders use it for replace actions, almost never for replacing within files etc. It would be so easy to reduce this size to a minimum like in the C# editor or any other IDE editor without always hovering over the code and hiding the thins I actually need to see all the: My code. 

Besides this: When it opens, always the text of the clipboard is visible in the search field. This is annoying on top, and every time it is activated, the search field has to be edited on top to re-enter again and again what I am actually searching for. 

 

4. The files section of the menu "File" 

The names are shortened, and when there are files from different stages of the same project, organized in different folders, it is just impossible to figure out which is which. Why not some menu points to show A - most recent, B - currently opened files, C - files of the project or related to the currently edited file? 



5. The functions browser is not useable

The menu shows functions, yes, but its still not possible to use the wheel of the mouse to scroll. Just some up/down buttons in the menu are provided, which makes it completely impossible to use when the code is well structured with functions, coz the menu is always restricted to a few entries and it would take hours to find the function what I am looking for.  



6. Still no possibility to see the content of string vars entirely within the Toolbox/Debug

Not visible within the window is one thing, but that it is still not possible - at all - to figure out the content of variable when it exceeds a specific length, is another thing. Even copy and paste and then try to figure out in another editor doesn´t work.


7. Still different behavior within code in debugger vs. run - OnDeinit() etc.

I cannot figure out exactly when what happens and when not. But OnDeinit() is clearly (still) never available for debugging EAs when the chart is closed by clicking the "X" button at the window. And on top there is a different sequence when clicking the "X" button within debugging and between run of a debug-compiled code and between final-compiled code. Every time I see different results, but it is simply impossible to debug and to figure out what is going on. So how is it possible to create an EA which does not cause any problems, when it is impossible to debug exactly that case which seem to cause them?

These points are just the most obvious for me, maybe other developers have others. But I am also sure, there are lots of coders out there who would agree here. 

I´d be happy and grateful if someone of MetaQuotes would take care. 

Doerk Hilger  

PS: This is my personal "way out", but only for my own usage and not yet planned to become a commercial product.

Currently it consists of an intelligent browser as shown, a full-featured parser/pre-compiler which understands the entire syntax of MQL, a search-replace with preview and a script-engine for batch processing of script-conditioned-compiling, backups, deploy, obfuscation etc. 

But I am not sure if MetaQuotes would like it, even if it´s not "hacking" the editor.  

Sample #1 - Files of a project.

Opened files are highlighted to accelerate access to files I need to edit


Sample #2 - Navigation through namespaces, objects and structures.

Tree shows definitions, public objects of classes, inheritances ...


Sample #3 - Search through all the project by highlighting occurences

Context menu helps to find definitions and usages. Project wide replace is also possible including preview.

Fernando Carreiro  
@Doerk Hilger: 2. The compile time increased by 500%. Build 2755 needed 4 seconds between clicking "Run" in the editor and until the dialog-box with the inputs for the EA was shown in MT5. Build 3521 needs 19 seconds for the same code. Of course without optimization. This costs 30 min every day (for nothing) when I start the debugger 100 times e.g.

There have been changes in that regard. There are now two compilation modes:

  • A "Fast" compilation without optimisations similar to how it was done on MQL4.
  • A "Slow" compilation that undergoes several layers of underlying optimisations.

You can choose which one to use under the "Build" menu option ...

So, during the development cycle, you can use the "Fast" mode, and later when in a more final stage use the "Slow" but optimised mode.

Doerk Hilger  
Fernando Carreiro #:

There have been changes in that regard. There are now two compilation modes:

  • A "Fast" compilation without optimisations similar to how it was done on MQL4.
  • A "Slow" compilation that undergoes several layers of underlying optimisations.

You can choose which one to use under the "Build" menu option ...

So, during the development cycle, you can use the "Fast" mode, and later when in a more final stage use the "Slow" but optimised mode.

I did. This is the fast compilation mode I am already using. 

Doerk Hilger  
Fernando Carreiro #:

Oh, OK! Your projects are always so "huge". 😅

I doubt there is anyone else out there that can claim "stress testing" MetaEditor so much.

Maybe MetaQuote could hire you, but I doubt they even see your value.

Haha ... I am "unhirable" ;) 

Doerk Hilger  
I just added point 0 - freeze. This is the worst problem at all, since it destroys work and efforts. 
Doerk Hilger  

And again the editor crashes and work is lost ... and not even any short reply from MetaQuotes



Fernando Carreiro  
Doerk Hilger #: And again the editor crashes and work is lost ... and not even any short reply from MetaQuotes

Send you a PM with some private information that might help!

Reason: