Vim come ide per mql - pagina 7

 
Maxim Kuznetsov:

Se ho capito bene, dovremmo ancora usare le protezioni e ci sono alcuni requisiti speciali del codice?

Nei nostri file di intestazione sì, abbiamo bisogno di guardie. Prima passiamo attraverso il tubo, fa un gran casino di tutti gli agganci e questo va al compilatore µl. Senza guardie, le definizioni saranno ripetute e il compilatore µl genererà errori.

Dai requisiti del codice, sì solo uno in linea di principio - impacchettiamo direttive specifiche μl del preprocessore come questo

#ifndef  VIM
mqlcpp_#import  jkjkjk.dll
#endif
void fn_from_jkjkjk_dll();

In modo che clang non inciampi su questa importazione durante l'analisi e la compilazione. Se mql è un costrutto specifico, ma non una direttiva del preprocessore, allora senza mqlcpp_ (non è necessario, ma dal punto di vista di clang questo è una specie di errore).

#ifndef  VIM
input int            MA_Period=13; // Ну или INPUT макрос
input int            MA_Shift=0;
#else
int            MA_Period=13;
int            MA_Shift=0;
#endif

Se dereferenziare i puntatori con -> e se mettere & prima degli array dipende dalla scelta, ma seguire lo stile C++ darà un miglior supporto da parte di clang.

HH: a proposito, non ti ha detto come viene definita la "prima compilazione" nel contesto dell'aggiunta di guardie. Vedere Include/Object.mqh e se non vi troviamo una guardia, allora compiliamo prima. Vorrei anche aggiungere la possibilità di formare una lista nera per i ladri stupidi.
 
Vict:

...

In generale, le tue domande sono sbagliate, più interessanti - ho fatto un ide in un paio di giorni sulle mie ginocchia con tutte le chicche e una qualità molto più alta del meta-editor...

Sì... Con capacità del genere è facile scrivere un sistema operativo in una settimana). A volte mi piace abbellire, ma così tanto...)

Forse è il framework disponibile pubblicamente, che permette di costruire software a livello di puzzle? Bene, allora ognuno può costruire il proprio IDE a suo gusto e usarlo).

Tra un paio di giorni...
 

Leggere, leggere....

Stanco di guardare questi esibizionisti.

Tutti questi trucchi non sono necessari a un trader che sta scrivendo una strategia di trading per se stesso.

E ancora di più per gli ordini personalizzati, visto che sono soprattutto i principianti ad ordinare. Gli ordini lì sono da una serie di innocenze infantili, che sono implementate in poche righe di codice.

Naturalmente mi è piaciuto il fatto che il supporto python è previsto.

È un'aggiunta abbastanza utile.

 
Vict:

...Il resto di noi continuerà a pregare l'MC, mettendo doverosamente le ampolle davanti agli array e dereferenziando tramite un punto.

Per quanto riguarda il punto, è più comodo e laconico, oltre alla compatibilità con i linguaggi OOP. Al contrario, ho spesso pensato che sarebbe bello avere la stessa caratteristica in C++. Certo, c'è un lato negativo, ma penso che ci siano più vantaggi.
 
Реter Konow:
Esattamente! Quanti nomi di variabili e funzioni sono cambiati in questo modo. Un po' più lungo che in VS, ma più controllo.
Non confondete la regolare sostituzione automatica del testo in un file con la sostituzione sensibile al contesto.

 
Alexey Navoykov:
Per quanto riguarda il punto, è più comodo e laconico, oltre alla compatibilità con i linguaggi OOP. Al contrario, ho spesso pensato che sarebbe stato bello implementare la stessa funzione in C++. Naturalmente, c'è un lato negativo, ma ci sono più vantaggi, credo.

Allora dovreste buttare i puntatori intelligenti, gli iteratori, . . Si deve in qualche modo distinguere tra una chiamata di funzione del puntatore stesso e il tipo puntato.

unique_ptr<type> ptr(...);
ptr->call_referenced();
ptr.release();

Un punto non può essere sovraccaricato, cioè l'accesso agli interni è garantito.

Renat Akhtyamov:

E tanto più quando si ordina, visto che sono soprattutto i principianti ad ordinare. Sono ordini di innocenza infantile, che vengono implementati in poche righe di codice.

Non me ne frega niente degli ordini, sto scrivendo per me stesso e condivido le mie conoscenze con gli altri, non per alcuni marketeers.

 
Vict:

Allora dovreste buttare i puntatori intelligenti, gli iteratori, . . Si deve in qualche modo distinguere tra una chiamata di funzione del puntatore stesso e il tipo puntato.

Un punto non può essere sovraccaricato, cioè l'accesso agli interni è garantito.

Beh, non si può nemmeno sovraccaricare -> in MQL. Ecco perché la differenza è fuori questione.
A proposito, è possibile emulare questo sovraccarico in Vim?
 
Alexey Navoykov:
Non confondete la normale sostituzione automatica del testo in un file con la sostituzione del contesto.

E a cosa serve? Nel caso in cui variabili con contesti diversi abbiano lo stesso nome nello stesso file? Sostituzione per significato, non per testo? Si prega di chiarire dove e perché dovrebbe essere usato. All'improvviso, tutti ne hanno bisogno e alcuni non lo sanno.

Zy. Anche Google non sa di questa sostituzione...
 
Реter Konow:
E a cosa serve? Nel caso in cui variabili con contesti diversi abbiano lo stesso nome nello stesso file? Sostituzione per significato, non per testo? Per favore, spiega dove e perché usarlo. All'improvviso, tutti ne hanno bisogno e alcuni non lo sanno.
Beh, in linea di principio hai ragione.
 
Alexey Navoykov:
Beh, in linea di principio hai ragione.
Se lo fai bene, è una cosa da arci-rivale. ))