Vim в качестве ide для mql - страница 11

 
Vict:

:) я вам ниего не навязываю, это вы пришли в мою тему. Вас сюда насильно не гнали, продолжать ли - решу сам.

Крутышка...

 
Vict:
Умудрился напороться на баг в AWK, позже выложу исправленную версию.

Не, сам накосячил. Записал небольшую демонстрацию, стоит обратить внимание на то, какой лютой шаблонно-макросной солянкой является vector_fund. Не смотря на это, выдаются правильные подсказки и переход к определению, невиданный уровень для метаэдитора.


ЗЫ: смотреть на хорошем качестве.

#vim_as_mql_ide_5

Файлы:
 
Vict:

Не, сам накосячил. Записал небольшую демонстрацию, стоит обратить внимание на то, какой лютой шаблонно-макросной солянкой является vector_fund. Не смотря на это, выдаются правильные подсказки и переход к определению, невиданный уровень для метаэдитора.


ЗЫ: смотреть на хорошем качестве.

#vim_as_mql_ide_5

В последнем архиве не хватает vimrc, видимо, файлы этого архива нужно распаковывать поверх файлов другого архива, не очень ясно, как получить консистентный сет.

Активно использую neovim, если получится завести, присоединюсь к развитию конфигурации. Есть ли возможность выложить на GitHub полностью vimrc и все утилиты? 

 
alter-ego:

В последнем архиве не хватает vimrc, видимо, этот файлы этого архива нужно распаковывать поверх файлов другого архива, не очень ясно, как получить консистентный сет.

Активно использую neovim, если получится завести, присоединюсь к развитии конфигурации. Есть ли возможность выложить на GitHub полностью vimrc и все утилиты? 

Во - оттопырка. 

 
а мне MetaEditor нравится.
я бы на нём всё остальное тоже писал)
 
alter-ego:

В последнем архиве не хватает vimrc, видимо, этот файлы этого архива нужно распаковывать поверх файлов другого архива, не очень ясно, как получить консистентный сет.

Активно использую neovim, если получится завести, присоединюсь к развитии конфигурации. Есть ли возможность выложить на GitHub полностью vimrc и все утилиты? 

Причешу Readme и выложу GitHub.

 
alter-ego:

В последнем архиве не хватает vimrc

Он там, просто он скрытый (HOME/.config/nvim/init.vim), посмотрите в консоли $ ls -a

Причешу Readme и выложу GitHub

Я тут покумекал сегодня - негоже в таком виде выкладывать (правка "системных" .mqh с заданием исключений), тут нужно как-то решать вопрос элегантней (научить clangd воспринимать mqh как с++, пробовать другой lsp сервер, хранить пользовательские исходники отдельно от МКЛ дерева), для себя костыль сгодится, а выпускать в мир - нет. Навскидку решить не удалось, времени на детальный разбор нет совсем. Поэтому пока так к сожалению, GitHub откладывается.
 

научить clangd воспринимать mqh как с++

Я как раз этим занялся в первую очередь, когда запустил вашу конфигурацию. Это делается добавлением в init.vim:

au BufNewFile,BufRead *.mq5 set filetype=cpp
au BufNewFile,BufRead *.mqh set filetype=cpp
 
Vict:

Он там, просто он скрытый (HOME/.config/nvim/init.vim), посмотрите в консоли $ ls -a

Я тут покумекал сегодня - негоже в таком виде выкладывать (правка "системных" .mqh с заданием исключений), тут нужно как-то решать вопрос элегантней (научить clangd воспринимать mqh как с++, пробовать другой lsp сервер, хранить пользовательские исходники отдельно от МКЛ дерева), для себя костыль сгодится, а выпускать в мир - нет. Навскидку решить не удалось, времени на детальный разбор нет совсем. Поэтому пока так к сожалению, GitHub откладывается.

вообще логично делать language server (https://langserver.org/) для mql. Тогда он одинаково подхватится и vim и emacs. И визуал-студией и eclipse. Но это объём существенный и на 90% сделанный разработчиками MQ, то есть это переделка чужой работы с новыми багами и заблуждениями.

Langserver.org
  • langserver.org
The Language Server protocol is used between a tool (the client) and a language smartness provider (the server) to integrate features like auto complete, go to definition, find all references and alike into the tool The LSP was created by Microsoft to define a common language for programming language analyzers to speak. Today, several...
 
alter-ego:

научить clangd воспринимать mqh как с++

Я как раз этим занялся в первую очередь, когда запустил вашу конфигурацию. Это делается добавлением в init.vim:

Это я сделал, в vimrc аналогичные строки

function Mql_hook()
    setlocal ft=cpp
    setlocal makeprg=compile_mql
    nnoremap <buffer> <F7> :exe "make" expand('%:p')<CR>
endfunction

augroup Mode_hooks_group
    autocmd!
    autocmd FileType c call CandCPP_hook()
    autocmd FileType cpp call CandCPP_hook()
    autocmd BufNewFile,BufRead *.mq5 call Mql_hook()
    autocmd BufNewFile,BufRead *.mqh call Mql_hook()
augroup End


В mq5 и mqh автокмплит чётко отрабатывает, но когда костылил столкнулся с проблемой - если написать

#include <

то Language server (LS) не выдаёт подсказку по файлам (vim умеет и сам из коробки, но LS учитывает -I... в compile_flags.txt). Решить это красиво не удалось, было принято решение автоматом сменить расширение всех системных mqh -> hh, что костыльно, естественно.

ЗЫ: я тут подумал, можно ведь задавать vim переменную path для МКЛ проектов и получать правильную подсказку без LS.

Причина обращения: