Vim の Lint チェックに Neomake を使っていて、実行時に
Neomake: flow: completed with exit code 64.
と表示されてしまったときのメモ。
Flow のバージョンは 0.37.4。
原因と解決策
https://github.com/neomake/neomake/blob/master/doc/neomake.txt#L319-L327
によると g:neomake_verbose
という変数があるので、.vimrc
に
g:neomake_verbose=3
を追加して Neomake を再度実行する。
:messages
でメッセージを表示したところ、以下のようになっていた。
Neomake [0.850]: [#2] stderr: flow: ['flow: unknown option ''--old-output-format''.', 'Usage: flow [COMMAND] ', '', 'Valid values for COMMAND:', ' ast Print the AST', ' autocomple te Queries autocompletion information', ' check Does a full Flow check and prints the results', ' check-contents Run typechecker on contents from stdin', ' coverage Show s coverage information for a given file', ' find-module Resolves a module reference to a file', ' find-refs Gets the reference locations of a variable or property', ' force-recheck Forces the server to recheck a given list of files', ' gen-flow-files EXPERIMENTAL: Generate minimal .js.flow files for publishing to npm.', ' get-def Gets the definition location of a variable or property', ' get-importers Gets a list of all importers for one or more given modules', ' get-imports Get names of all modules imported by one or more given modules', ' init Initializes a directory to be used as a flow root directory', ' ls Lists files visible to Flow', ' port Shows ported type annotations for given file s', ' server Runs a Flow server in the foreground', ' start Starts a Flow server', ' status (default) Shows current Flow errors by asking the Flow server', ' sto p Stops a Flow server', ' suggest Shows type annotation suggestions for given files', ' type-at-pos Shows the type at a given file and position', ' version Pri nt version information', '', 'Default values if unspecified:', ' COMMAND^Istatus', '', 'Status command options:', ' --color Display terminal output in color. never, always, auto (default: auto)', ' --from Specify client (for use by editor plugins)', ' --help This list of options', ' --ignore-version Ignore the version constraint in .flowconfig', ' --json Output results in JSON format', ' --no-auto-start If the server is not ru nning, do not start it; just exit', ' --one-line Escapes newlines so that each error prints on one line', ' --pretty Pretty-print JSON output ( implies --json)', ' --quiet Suppress output about server startup', ' --retries Set the number of retries. (default: 3)', ' --retry-if-init retry if the server is initializing (default: true)', ' --sharedmemory-dep-table-pow The exponent for the size of the shared memory dependency table. The default is 17, i mplying a size of 2^17 bytes', ' --sharedmemory-dirs Directory in which to store shared memory heap (default: /dev/shm/)', ' --sharedmemory-hash-table-pow The exponent for t he size of the shared memory hash table. The default is 19, implying a size of 2^19 bytes', ' --sharedmemory-log-level The logging level for shared memory statistics. 0=none, 1=some', ' --sharedmemory-minimum-available Flow will only use a filesystem for shared memory if it has at least these many bytes available (default: 536870912 - which is 512MB)', ' --show-all-error s Print all errors (the default is to truncate after 50 errors)', ' --strip-root Print paths without the root', ' --temp-dir Direct ory in which to store temp files (default: /tmp/flow/)', ' --timeout Maximum time to wait, in seconds', ' --version (Deprecated, use `flow vers ion` instead) Print version number and exit', ''] Neomake [0.854]: Channel has been closed: channel 2 closed
どうやら --old-output-format
という古いオプションをつけて実行しており、そんなオプションないよと怒られているようだ。
参考(関係ある?):Remove --old-output-format
· Issue #2844 · facebook/flow
で、今度は Neomake 側を調べてみたところこの PR でどうも修正したように見える。
Fix flow output by rafaelrinaldi · Pull Request #880 · neomake/neomake
そういえばしばらくプラグインのアップデートとかしてなかったなと思い、私は dein.vim を使っているので
:call dein#update()
でアップデートしてみたところ lint が通るようになった。
※ただ、それ以外にも色々 Neomake ではうまくいかないことがあったので現在は ALE を使うことにした。それはまた別途書くことにする。