Nan, le μl est une sorte de sous-langage. Pourquoi ont-ils dû tout gâcher avec toutes ces améliorations ? J'ai commencé à utiliser mon propre truc, et il s'avère que les gabarits étaient notammentde travers, ça fait vraiment chier le tuyau :
Ils n'auraient pas pu le faire bêtement comme chez les pros. En général, je suis fatigué de me battre avec toutes ces puces et d'utiliser des éditeurs de flux pour modifier le code. Peut-être que quelqu'un trouvera cela utile - joint vim.mqh avec toutes les déclarations µl.
Nan, le μl est une sorte de sous-langage. Pourquoi ont-ils dû tout gâcher avec toutes ces améliorations ? J'ai commencé à utiliser mon propre truc, et il s'avère que les gabarits étaient notammentde travers, ça fait vraiment chier le tuyau :
Ils n'auraient pas pu le faire bêtement comme chez les pros. En général, je suis fatigué de me battre avec toutes ces puces et d'utiliser des éditeurs de flux pour modifier le code. Peut-être que quelqu'un peut trouver cela utile - joint vim.mqh avec toutes les déclarations µl.
Peut-être devriez-vous visiter un autre forum ?
Ou peut-être ne savez-vous tout simplement pas comment exprimer correctement vos revendications - sans épithètes de cantine scolaire ?
2. J'ai décidé de ne pas faire d'édition sérieuse des fichiers std, juste les couper de l'analyseur clang lorsqu'ils sont activés :
#ifndef VIM
#include <Object.hh>
#endif
si vous voulez des indications de type à partir de là, vous devez faire les déclarations correspondantes (je n'en ai pas besoin).
Fichier README :
//--------------------------------------------------------------
// Описание |
//--------------------------------------------------------------
1. Компиляция (общая схема процесса)
F7->clang препроцессор->правка исходников потоковыми
редакторами(во временном файле)->mql препроцессор/компилятор.
Просмотр ошибок :copen или :clist
2. Правка исходников. Цель - максимально писать в c++ подобном
стиле (дабы угодить clang анализатору, да и приятней как-то),
для этого (исходники правятся автоматически при каждой
компиляции, во временном файле):
* меняем -> на .
* добавляется амперсанд при передаче массива в функцию
* убираем угловые скобки при объявлении функции-члена
шаблонного класса (во второй строке)
-------------code begin-----------
template <typename Tr_, typename Cbspec_>
double Trend3_cml<Tr_, Cbspec_>::get_breakprice() {}
void f(Type ar[]) {}
ptr->call()
-------------code end-------------
3. Рекомендую использовать расширение hh для заголовочных
файлов, так будет подсказка при вводе имени файла при
его включении.
4. Запись мкл специфичных конструкций
Во время написания кода в виме определён макрос VIM,
благодаря которому можно прятать от clang анализатора
ошибочные (с его точки зрения) конструкции:
-------------code begin-----------
#ifndef VIM
input int i; // input мкл специфичная
#else
int i;
#endif
-------------code end-------------
В такое же макроусловие оборачиваем включение файлов
стандартной библиотеки (там может быть что угодно,
clang анализатор может споткнуться).
-------------code begin-----------
#ifndef VIM
#include <Object.hh>
#endif
-------------code end-------------
5. Передача директив мкл препроцессору. Во время правки
исходников префикс mqlcpp_ будет удалён.
-------------code begin-----------
#ifndef VIM
mqlcpp_#property strict
#endif
-------------code end-------------
6. При первой компиляции в файлы стандартной библиотеки
добавляются include guard'ы (первая компиляция - нет
guard'а в Object.mqh). Пользовательские файлы не
модифицируются, поддиректории MQL/Include с пользовательскими
данными задаются через compile_mql::user_include_subdir. В свои
mqh добавлять guard'ы самостоятельно. Также при первой
компиляции будет изменено расширение файлов стд на hh,
если compile_mql::subst_std_extension='1'.
7. Подавление предупреждений мкл компилятора. Коды
предупреждений задаются через compile_mql::waring_black_list
8. Автокомплит, переход к определению, ... реализованы через
clangd(lsp сервер)<--> coc(lsp клиент). Основные сочетания
клавиш
gd - defenition
gy - type defenition
gy - implementation
gr - reference
K - show documentation
[g - diagnost previous
]g - diagnost next
<leadir> rn - rename (у меня leadir - ,)
<space> a - diagnost list
<space> o - outline list
<space> s - symbol list
9. Кодировка исходников должна быть utf-8 (mqh из std
конвертируются автоматически). Для пользовательских файлов
$ dos2unix file1 file2 ...
//--------------------------------------------------------------
// Установка |
//--------------------------------------------------------------
1. Зависимости: clang, clangd, dos2unix, nodejs, neovim
2. Cоздаём ссылку без пробелов на Meta Trader/MQL, указываем
путь к ссылке в compile_mql::mql_link
(дефолтно mql_link="$HOME/.wine/MQL5")
3. Копируем файлы в соответствующие директории (compile_mql, ..).
vim.hh кидаем в поддиректорию Include (у меня это
Include/myincl) (он должен быть включён в каждый
скрипт/эксперт).
4. В виме выполнить :PlugInstall
5. В MQL/Include создаём compile_flags.txt с содержимым (вместо
YOUR_HOME_DIR вписать свою домашнюю директорию, ${HOME} не
работает):
-xc++-header
-IYOUR_HOME_DIR/.wine/MQL5/Include
-DVIM
6. В директории со скриптами/экспертами создаём
compile_flags.txt с содержимым:
-xc++
-IYOUR_HOME_DIR/.wine/MQL5/Include
-DVIM
7. Правим compile_mql::user_include_subdir (дефолтно ''),
делаем компиляцию чего-нибудь (для вставки guard'ов в стд),
иначе правильная работа невозможна.
HH : vim.hh contient toutes les déclarations sauf std, c'est-à-dire l'auto-complétion.
J'avais l'habitude de penser que les programmeurs C++ étaient des personnes à l'esprit flexible et brillant... Il s'avère que ce n'est pas le cas de tout le monde.
Dmitry Fedoseev: J'avais l'habitude de penser que les programmeurs C++ étaient des personnes à l'esprit flexible et brillant... Il s'avère que ce n'est pas le cas de tout le monde.
Quelle différence cela fait-il de programmer dans quel (langage) et dans quel IDE, l'essentiel n'est pas l'environnement, mais la tête !
J'ai, par exemple, programmé en Pascal (Delphi) lorsque j'ai fait connaissance avec ME (MT5),
En trois minutes, je programmais comme dans ma langue maternelle.
Quand un chat n'a rien à faire, il se lèche les couilles...
C'est difficile à expliquer aux personnes qui ne savent pas comment utiliser vim. Ce n'est pas seulement un éditeur et vous en devenez dépendant, il devient anatomiquement inconfortable d'effleurer avec une souris dans les " blocs-notes ". Je veux juste un outil pratique, à mon avis, un désir normal.
Honnêtement, quand je vois MetaEditor s'ouvrir, l'envie de coder diminue, ce qui nuit à la productivité, pourquoi voudrais-je ce facteur gênant ?
C'est difficile à expliquer aux personnes qui ne savent pas comment utiliser vim. Ce n'est pas seulement un éditeur et on en devient dépendant, il devient anatomiquement inconfortable d'effleurer avec une souris dans les "bloc-notes". Je veux juste un outil pratique, à mon avis, un désir normal.
Honnêtement, quand je vois MetaEditor s'ouvrir, l'envie de coder diminue, ce qui affecte négativement la productivité, pourquoi voudrais-je ce facteur gênant ?
Vous n'avez pas besoin d'expliquer quoi que ce soit !
Vous aimez vim, très bien, utilisez-le,
mais ça ne vous suffit pas, vous avez commencé à imposer vos vues aux autres.
Je voulais demander ce qu'est vim...
exactement ce que c'est, je n'ai pas pu le fermer, j'ai paniqué, je l'ai supprimé.
Je n'ai aucune idée de qui a inventé ce bâtard et je ne veux pas le savoir.
Nan, le μl est une sorte de sous-langage. Pourquoi ont-ils dû tout gâcher avec toutes ces améliorations ? J'ai commencé à utiliser mon propre truc, et il s'avère que les gabarits étaient notammentde travers, ça fait vraiment chier le tuyau :
Ils n'auraient pas pu le faire bêtement comme chez les pros. En général, je suis fatigué de me battre avec toutes ces puces et d'utiliser des éditeurs de flux pour modifier le code. Peut-être que quelqu'un trouvera cela utile - joint vim.mqh avec toutes les déclarations µl.
Nan, le μl est une sorte de sous-langage. Pourquoi ont-ils dû tout gâcher avec toutes ces améliorations ? J'ai commencé à utiliser mon propre truc, et il s'avère que les gabarits étaient notammentde travers, ça fait vraiment chier le tuyau :
Ils n'auraient pas pu le faire bêtement comme chez les pros. En général, je suis fatigué de me battre avec toutes ces puces et d'utiliser des éditeurs de flux pour modifier le code. Peut-être que quelqu'un peut trouver cela utile - joint vim.mqh avec toutes les déclarations µl.
Les gars, j'ai décidé de le terminer. Les principaux changements sont les suivants
1) Déclarez les fonctions membres des classes modèles comme elles doivent l'être :
2. J'ai décidé de ne pas faire d'édition sérieuse des fichiers std, juste les couper de l'analyseur clang lorsqu'ils sont activés :
si vous voulez des indications de type à partir de là, vous devez faire les déclarations correspondantes (je n'en ai pas besoin).
Fichier README :
HH : vim.hh contient toutes les déclarations sauf std, c'est-à-dire l'auto-complétion.
#vim_as_mql_ide_4
J'avais l'habitude de penser que les programmeurs C++ étaient des personnes à l'esprit flexible et brillant... Il s'avère que ce n'est pas le cas de tout le monde.
Pouvez-vous faire du C++ ? Oui, surprends-moi.
Connaissez-vous le C++ ? Oui, tu m'as surpris.
Quelle différence cela fait-il de programmer dans quel (langage) et dans quel IDE, l'essentiel n'est pas l'environnement, mais la tête !
J'ai, par exemple, programmé en Pascal (Delphi) lorsque j'ai fait connaissance avec ME (MT5),
En trois minutes, je programmais comme dans ma langue maternelle.
Quand un chat n'a rien à faire, il se lèche les couilles...
Quelle différence cela fait-il de programmer dans quel (langage) et dans quel IDE, l'essentiel n'est pas l'environnement, mais la tête !
J'ai, par exemple, programmé en Pascal (Delphi) lorsque j'ai fait connaissance avec ME (MT5),
En trois minutes, je programmais comme dans ma langue maternelle.
Quand un chat n'a rien à faire, il se lèche les couilles...
C'est difficile à expliquer aux personnes qui ne savent pas comment utiliser vim. Ce n'est pas seulement un éditeur et vous en devenez dépendant, il devient anatomiquement inconfortable d'effleurer avec une souris dans les " blocs-notes ". Je veux juste un outil pratique, à mon avis, un désir normal.
Honnêtement, quand je vois MetaEditor s'ouvrir, l'envie de coder diminue, ce qui nuit à la productivité, pourquoi voudrais-je ce facteur gênant ?C'est difficile à expliquer aux personnes qui ne savent pas comment utiliser vim. Ce n'est pas seulement un éditeur et on en devient dépendant, il devient anatomiquement inconfortable d'effleurer avec une souris dans les "bloc-notes". Je veux juste un outil pratique, à mon avis, un désir normal.
Honnêtement, quand je vois MetaEditor s'ouvrir, l'envie de coder diminue, ce qui affecte négativement la productivité, pourquoi voudrais-je ce facteur gênant ?Vous n'avez pas besoin d'expliquer quoi que ce soit !
Vous aimez vim, très bien, utilisez-le,
mais ça ne vous suffit pas, vous avez commencé à imposer vos vues aux autres.
Il est inutile d'aller plus loin.
Vous n'avez pas besoin d'expliquer quoi que ce soit !
Vous aimez vim, très bien, utilisez-le,
mais ça ne vous suffit pas, vous avez commencé à imposer vos vues aux autres.
Il n'y a pas besoin de continuer.
Je ne vous impose rien, vous êtes venu sur mon fil de discussion. On ne vous a pas forcé à venir ici, c'est à moi de décider si vous voulez continuer.