3

私はいくつかのJavaコードを持っています

@Subscribe
public void catchEvent(SomeEvent

そして、 ~/.ctags でこのようなものと一致させたい

--langdef=javaspring
--langmap=javaspring:.java
--regex-javaspring=/@Subscribe(\s)*([a-z ]+)\s([a-zA-Z]*)\(([a-zA-Z]*)/\3-\4/

これにより、「catchEvent-SomeEvent」のようなものが生成されるはずですが、生成されません。@Subscribe と public void の間の改行を削除すると、取得されます。

@Subscribe public void catchEvent(SomeEvent

rm -rf tags && ctags -R . && cat tags|grep Subs
catchEvent-SomeEvent    PathToMyFile.java    /^@Subscribe public void catchEvent(SomeEvent event) {$/;"      r

このように行頭/行末を使ってみました

--regex-javaspring=/^\s*@Subscribe[a-z \s]+\s([a-zA-Z]+)\(([a-zA-Z]+).*$/@Subscribe \1 \2*/

現在の ctag 実装でこれを行うことができるかどうか、何か考えはありますか? 何か間違っているのでしょうか、それとも ctags は複数行の正規表現をサポートしていませんか?

ありがとうございました!

4

1 に答える 1