読者です 読者をやめる 読者になる 読者になる

Error detected while processing function ghcmod#util#check_version

ghc-mod.vimでエラーが出た
具体的にはghc-modを5.2.1にupdateしたら.hsファイルを開いたときにエラーが出るようになった
文法エラーを表示する機能には影響していないようなのでほっておいてもいいが、起動時に毎回出るのは面倒なので調べてみた
ちなみにghc-mod.vimはversion 1.2.0

出ていたエラー

Error detected while processing function ghcmod#util#check_version:
line    3:
E684: list index out of range: 0
E15: Invalid expression: a:version[l:i] > l:ghc_mod_version[l:i]
E684: list index out of range: 1
E15: Invalid expression: a:version[l:i] > l:ghc_mod_version[l:i]
E684: list index out of range: 2
E15: Invalid expression: a:version[l:i] > l:ghc_mod_version[l:i]

こちらのページの通りでひとまずエラーは出なくなった
Pyon's Diary - 舊 平成廿陸年甲午水無月拾捌日丙戌 (月・晴)

↑のページの通りだが以下のように変更するだけ
ghcmod#util#ghc_mod_version()という関数内のmatchlistの部分

# .vim/bundle/ghcmod-vim/autoload/ghcmod/util.vim
-  let l:m = matchlist(vimproc#get_last_errmsg(), 'version \(\d\+\)\.\(\d\+\)\.\(\d\+\)')
+  let l:m = matchlist(vimproc#system('ghc-mod version'), 'version \(\d\+\)\.\(\d\+\)\.\(\d\+\)')

errmsgから取るのではなく、ghc-mod versionの出力からversionを取るようにしたらしい
vimscriptはあまりわかっていないので勉強せねば。。
↓本ならこれがいいのか?気になっていたもののまだ読んでおらず

Vim script テクニックバイブル ~Vim使いの魔法の杖

Vim script テクニックバイブル ~Vim使いの魔法の杖