MQLファイルのエディター探しの旅、完結
メタエディターを試してみたり、VSCodeを試してみたりと右往左往していましたが、結局、一周回って秀丸に落ち着きました。
そもそも秀丸以外のMQLエディターを探していた最大の理由は「コンパイル結果を標準出力できなくなり、秀丸内でエラー箇所に直接飛べなくなったから」でした。
それが解決したのです!!
右往左往したおかげです。
VSCodeを試している中で、Powershellコマンド経由でコンパイルを実行し、そのログファイルを読込み標準出力するというスクリプト(COMPILE-MQL.PS1)を見つけたわけですが、「これを秀丸に応用すればいいんじゃない?」と思いついて試してみたら上手くいったのです。
これで秀丸を使わない理由がなくなったわけです。
シェアウェアなのがネックになる人もいるかもしれませんが、それだけの価値は十分にある製品だと思いますよ。起動時の通知さえ我慢すれば無料でも使えますし。
秀丸は15年近く使っていて完全に手に馴染んでいるので、ほんとに良かったです。
ただいま、秀丸^-^
秀丸の設定方法
備忘録がてら、秀丸の設定方法を紹介します。
上図のコマンドライン部分の全文は以下の通りです。
"powershell.exe" "C:\Users\ユーザ名\AppData\Roaming\MetaQuotes\Terminal\長い文字列\MQL4\Compile-MQL.ps1" "%f"
Compile-MQL.ps1の中身は以下の通りです。
#コンパイル対象のMQLファイルを外部パラメータとして取得し、$FileToCompileに格納 Param($FileToCompile) #コンソールをクリア Clear-Host #パス設定(PCごとに異なるので、適宜編集すること) $MT4_Path = "C:\Program Files (x86)\Tradeview MetaTrader 4 Terminal" $MQL_Path = "C:\Users\ユーザ名\AppData\Roaming\MetaQuotes\Terminal\長い文字列" #MQLファイル名やパスに空白が含まれていたらエラー(先人が試した結果、これは回避できなかった模様) if($FileToCompile.Contains(" ")){ Write-Host "エラー:コンパイルに失敗しました。ファイル名かパスに空白が含まれています。 $FileToCompile" return } #コンパイル実行 & "$MT4_Path\metaeditor.exe" /compile:"$FileToCompile" /log:"$FileToCompile.log" /inc:"$MQL_Path\MQL4" | Out-Null #ログファイルを読み込み、空白行を除去し、1行目も役に立たないのでスキップ $Log = Get-Content -Path "$FileToCompile.log" | Where-Object {$_ -ne ""} | Select-Object -Skip 1 #ログファイルの内容をコンソールに出力 $Log | ForEach-Object{Write-Host $_}