在我看来,新发布的版本比官方发布的版本有更多有趣的Plushies ))
1.将clang预处理程序拧到μl上。现在你可以实现任何预处理器的技巧,甚至是这种http://jhnet.co.uk/articles/cpp_magic。 整个过程看起来像这样:F7->clang预处理器->mql预处理器/编译器。为了将mql传递给mql编译器的特定结构(好吧,不要用任何垃圾来烦扰和迷惑clang,它不太喜欢),请执行以下操作
#ifndef VIM input int MA_Period=13; // Ну или INPUT макрос input int MA_Shift=0; #else int MA_Period=13; int MA_Shift=0; #endif #ifndef VIM mqlcpp_#import "user32.dll" #endif int GetCursorPos(int ref point[]); int GetWindowRect(HWND hWnd, int ref rect[]); #ifndef VIM mqlcpp_#import #endif
在μl预处理器的指令前添加mqlcpp__,否则它将被第一个预处理器处理。包括std库的头文件,如下所示
#ifndef VIM mqlcpp_#include <Arrays/ArrayObj.mqh> #endif
为什么?他们没有包括守卫。如果是这样(每个文件中多出三行),你可以像往常一样包括它们。
2.现在你可以用正常的方式来解除对指针的引用,而不是用你想让MC解除引用的方式。
this->member;
pntr->field;
3.与将数组传入函数的方式相同--你现在可以用正常的、普遍接受的方式来做了
void fn(int ar[]); // в топку &
4)具有utf-16编码的源代码将无法工作(如果源代码中含有西里尔文,则会如此)。但用utf-8重新编码很简单。
$ dos2unix file1 ...
语法是一个加分项,你可以说。便于移植到/从µl+意味着来自clang方面的良好支持(自动完成等)。
ZS:由于论坛搜索一般都是火的(通过搜索引擎搜索论坛也不是王牌),将在我的资料主页上做一个最新版本的链接。
#vim_as_mql_ide_1
加上。我也会把这个话题放在上面,也许开发者会读到它。
关键是你的编辑器真的很俗气(突出显示一个变量的所有出现,在整个项目中自动替换变量/函数名称,搜索对一个变量的所有引用,等等,好吧,看看任何 "成人 "IDE并加以比较)。预处理器似乎是存在的,但实际上它是一个树桩。至于模板,也是如此:不存在非类型的模板参数,没有可能使模板特殊化。也许你可以在某个时候计划一下这个方向的发展?
在你说它俗气之前,请好心地写一份编辑器所有功能的清单。
你还会看到,你的陈述要么是过时的,要么是完全错误的。
在你说它俗气之前,请好心地写出编辑器的全部功能清单。
而且你会看到你的陈述要么是过时的,要么是完全错误的。
你是认真的吗?一个简单的模板超出了你的编辑器的能力。
template <typename T> class Qwerty { public: void func1() {} }; ... Qwerty<int> qwerty; qwerty.
还有,这么多年来,能不能不增加颜色方案(我对深色的感兴趣,我受不了浅色的)?还有vime中的宏,我不能没有它们......。
但我不是来开发编辑器的,周围有那么多现成的编辑器,为什么要重新发明。
伙计们,不要把所有的元编辑放在我身上,真的。
就我个人而言,我喜欢它。
嗯,这个也很酷。
编辑。
突出显示一个变量的所有出现(谁能告诉我如何在编辑器中这样做?)
自动变量/函数名称替换--这就是我的意思。
搜索对一个变量的所有引用--我不只需要这个文件或一般目录中的所有文件,我需要显示所有引用(类似于MVS中的Shift+F12)。
这只是来自我的观察。
是否可以通过热键调用 "它"?我认为是ctrl+h,如果有的话。你妈妈不允许在mql编辑器中按ctrl+h? 在你提出投诉之前,请尝试帮助中没有描述的变体。
但随着所有变量的凸显,我同意。不是一个问题,但没有它也不是致命的。就像我没有塌陷的部分代码一样,我也不吃亏。
这里还有一个小插曲:鼠标的 "前进/后退 "键在mql编辑器中的作用和在其他应用程序中的作用一样。
是否有一个热键来调用 "它"?我认为是ctrl+h,如果有的话。你妈妈不允许你在mql编辑器中按ctrl+h吗?在你提出投诉之前,请尝试帮助中没有描述的变体。
但随着所有变量的凸显,我同意。不是一个问题,但没有它也不是致命的。而且,我也不会在不折叠部分代码的情况下受到影响。
还有一个小提示:鼠标按钮 "前进/后退 "在mql编辑器中和在其他应用程序中一样有效。
总之,我想放弃元编辑器。结果很好,我想和你分享。
要求:1.操作系统 - linux(适合Windows,但不适合我);2 - 安装dos2unix工具;3 - 安装clangd(LSP服务器);4 - vimhttps://github.com/junegunn/vim-plug 的软件包管理器vim-plug。5- 终端目录"~/.wine/drive_c/Program Files/MetaTrader 5";6 - 我使用控制台vim,我还没有测试它在goo的工作情况。
附上必要的文件。指示。
1.放在~.vimrc(或复制到你自己的)。运行vim,运行:PlugInstall
2.重新启动vim,执行:CocConfig,复制
3.复制coc.nvim_vimrc到~/.vim/plugged/。
4.复制到compile_mql的PATH路径之一(必要时改变所有者/组,给予运行权限)。
5.当路径中有空格时,mql编译器拒绝编译,创建一个链接
6.在~/.wine/MQL5/Include创建有内容的compile_flags.txt(代替YOUR_HOME_DIR写你的主目录,${HOME}不起作用)。
7.把vim.mqh放在Include子目录下(我的是Include/myincl)(它必须包含在每个脚本/expert中)。
8.在有scripts/experts的目录中,创建内容为compile_flags.txt的文件。
就这样了。现在我们根本不需要接触元编辑器,创建文件,在vime中编辑,也在那里编译。我们需要注意的是。
1.它是比自动完成更先进的工具,与元编辑器有关,clangd既不能被狡猾的macrosnoy混淆,也不能被模板混淆(模板上的编辑器即使在简单的情况下也不起作用)。而vim本身也更快(至少是通过vin的编辑器)。
2.用F7在vime编译,用:copen或:clist/:cnext/查看结果。有可能跳到错误/警告,也就是说,一切都很严重。
3.关于各种编码技巧的组合(去定义/......)在coc.nvim_vimrc中寻找,基本。
4.当把数组传给一个函数时,用ref代替&,否则不会显示该函数的sinature帮助(void examp_fn(int ref ar[]))。让我们忽略clang在解读指针时对点的抱怨,这并不关键。
5.在每个头文件中做一个包含防护,像这样。
6. clang不喜欢#propert strict
7.每篇有较新版本的文章都会用#vim_as_mql_ide_X作为标签,以方便在可能的洪水中搜索,其中X是版本。
8. vim.mqh包含函数/常量声明。当然,我没有复制所有的东西,如果有人能连接到进程中,并扔进声明(但不要改变现有的格式--缩进、注释;以便能够容易地做出差异),那就更好了。 你可以把更新后的vim.mqh发给我,我会把它合并成一个,然后发布。
9.作为vim的小抄,你可以使用https://www.linux.org.ru/forum/general/15373588
#vim_as_mql_ide_0。