来自stdin与clang的自动完成

我已经在Emacs中设置了一个自动完成环境,使用clang 2.8作为解析器。 它运行良好,但依赖于在完成之前将当前编辑的缓冲区保存到文件。 这很慢,所以我试图让clang解析一个通过stdin给它的文件而不是运气到目前为止。

解析文件时命令行I feed clang如下:

clang -cc1 -fsyntax-only -Iinclude/ -code-completion-at foo.cpp:10:20 foo.cpp 

这很好用。 但尝试从stdin读取失败。 我试过这个:

 cat foo.cpp | clang -xc++ -cc1 -fsyntax-only -Iinclude/ -code-completion-at -:10:20 - 

但这使得clang在没有完成任何完成的情况下终止并打印出警告:

 clang: warning: argument unused during compilation: '-cc1' clang: warning: argument unused during compilation: '-code-completion-at' clang: warning: argument unused during compilation: '-:10:20' 

有任何想法吗?

如果在-x c++之前指定-cc1 ,它是否有效?