Is there a way to read file annotations?


#1

I have a lot of files under a folder. For each file, I have some annotations, for example, @file:Tag(“Purpose 1”).

Can I write a little program to read all those files, and figure out what annotations those files have?


#2

I don’t see why not. Just read each file line by line and use regular expressions to check if that line contains a tag and if so which one.


#3

Take a look at https://kotlinlang.org/docs/reference/kapt.html. It is not that easy to use (in my opinion), but once you get used to it, this is really powerful.


#4

Isn’t KAPT only for source files?

@aug828 didn’t specify that his files are source files, so I assumed he meant text files in general.

An example of text file with annotations would be Gherkin feature file: Tags in Cucumber tests


#5

Yes, kapt is looking only in source files for annotations. But because @aug828 used @file:Tag("Purpose 1") as their example I thought they were talking about source file annotations.


#6

I guess we will have to wait for @aug828 to clarify…


#7

Thanks for the reply.
I was talking about Kotlin source files. I want to tag those source files, and then have a little program to search them by their usage. For example, if I want source files that fulfill purpose 1, I just search files with @file:Tag(“Purpose 1”).

I think @forinil2’s method should work.


#8

If you really want to be fast I think you can even stop after you see the first code, as the @file:Annotation() needs to be at the before the package declaration. But I am not 100% sure about it.