Haxeコンパイラからflymake出力をフィードしようとしていますが、makeファイルがどこにあるかを伝える方法がわかりません(理想的には、代わりにnxmlファイルを使用します)。これまでのところ、Makefileにこれがあります。
BIN = ./bin
MAIN = com.wunderwafer.Main
SWF = wunderwafer.swf
SWFSETTINGS = -debug -swf-version 10 -swf-header 800:600:31
HFLAGS = -main $(MAIN) $(SWFSETTINGS) -cp ./src -swf $(BIN)/$(SWF)
HC = haxe
default: compile
compile: $(HC) $(HFLAGS)
clean:
$(RM) -r $(BIN)/*
.PHONY: check-syntax
check-syntax:
$(HC) $(HFLAGS)
後でそのように実行すると:
$ make -k check-syntax
期待される出力を生成します。ただし、チェックしようとしているファイルはsrcディレクトリの奥深くにあるため、flymakeはMakefileを見つけることができません(またはそう思われます)。
makefileがどこにあるかを認識できるようにflymakeを構成する方法は何ですか?(または、さらに良いことに、Haxeコードをコンパイルする一般的な方法は* .nxml設定ファイルを使用することであるため、シェルコマンドを実行するだけです。
編集:
近づいているようですが、どうもありがとうございましたが、flymakeは何か奇妙なことをしていて、それが何をしているのか正確に理解できないので、ここにログがあります:
received 65 byte(s) of output from process 967
file /home/wvxvw/projects/wafer/src/com/wunderwafer/map/Battlefield.hx, init=haxe-flymake-init
parsed 'Error : Invalid class name /home/wvxvw/projects/wafer/build.nxml', no line-err-info
file /home/wvxvw/projects/wafer/src/com/wunderwafer/map/Battlefield.hx, init=haxe-flymake-init
process 967 exited with code 1
cleaning up using haxe-flymake-cleanup
deleted file /tmp/flymake-Battlefield-855Cad.hx
Battlefield.hx: 0 error(s), 0 warning(s) in 0.15 second(s)
switched OFF Flymake mode for buffer Battlefield.hx due to fatal status CFGERR, warning Configuration error has occurred while running (haxe /home/wvxvw/projects/wafer/build.nxml)
実行しようとしているコマンドは次のようになります。
(defun haxe-flymake-get-cmdline (source base-dir)
"Gets the cmd line for running a flymake session in a Haxe buffer.
This gets called by flymake itself. The output is a list of two elements:
the command to run, and a list of arguments. The resulting command is like:
$ haxe ${project-root}/build.nxml
"
(message "base-dir %s" (file-name-as-directory base-dir))
(list *haxe-compiler*
(list
(concat (file-name-as-directory base-dir)
*build-nxml*))))
印刷されるメッセージは次のようになります。
base-dir /home/wvxvw/projects/wafer/
したがって、私が理解できる限り、結果のコマンドは次のようになります。
haxe /home/wvxvw/projects/wafer/build.nxml
しかし、flymakeは引数の前または後に何かを追加するように見えます。これにより、Haxeコンパイラはエラー「エラー:無効なクラス名」を生成します。このエラーは、追加の引数が1つある場合に発生し、コンパイラは次のように理解します。コンパイルする追加のクラス。しかし、ログには何が送信されているかは示されていません...
編集2:
私は追加しました:
#!/usr/bin/env bash
echo "$@" > /home/wvxvw/projects/wafer/log
そして、flymakeにコンパイラの代わりにこのスクリプトを呼び出させ、私が期待するように、引数を1つだけ渡します...ため息