EmacsでJavaを書く時に、auto-java-completeを使おうとしているのですが、どうもアノテーションが補完対象外になっているようです。
試しに、Java EE 7のWeb Profileの範囲でJAX-RSのアノテーションを補完しようとすると、候補が妙なことになります。
※ApplicationPathが出てきて欲しい
まあ、そもそもアノテーションは補完対象外のような?「@」を打っても何も反応しないし…。
Java EE 7 Web Profileを指定して作成したはずのタグファイルにも、入っていません。
$ grep ApplicationPath .java_base.tag
で、auto-java-completeのTags.javaを見てみました。
private ClassItem tagClass(Class c) throws ApplicationException{ if(c.isAnnotation()) throw new ApplicationException("sorry ,you are an Annotation:"+c.getName());
「sorry」じゃないよ!!
というわけで、意図的に外されているようです。
しかし、これは困りました。今のJava開発で、アノテーションが外れているのはねぇ…。
で、ものは試しと、上記の1行だけコメントアウトして実験。
private ClassItem tagClass(Class c) throws ApplicationException{ // if(c.isAnnotation()) throw new ApplicationException("sorry ,you are an Annotation:"+c.getName());
タグファイルを作成して、「M-x ajc-reload」で再読み込み。
とはいえ、「@」から補完しようと思ってもこれだとうまくいきません…Javadocの要素とかがサジェストされたりします…。
「@」の前に、いきなりアノテーションの名前を書こうとすると、ちょっと補完してくれますけど(笑)。
まあ、importで補完してくれるだけでも少しはマシなのですが。
auto-complete-java自体、更新も最近はされていないようですし、elispが読めたらもうちょっとなんとかしたいんですけどねぇ。
あ、やるなら自己責任で。