Hi!My team has been working on integration some custom rules in our build process, and we have a few questions:- Is it possible to enable custom rules to run within Android Studio and highlight errors like built-in rules do?
- Is it possible (and practical!) to run Android Lint on non Android java projects?
- We are generating our custom lint jar as part of the build, and declare a dependent task to all lint tasks that makes it available to the lint tool. ANDROID_LINT_JARS is not convenient for us, since we can't modify an env variable from within the process, and the home directory won't work in shared servers. Copying the jar file into ${buildDir}/lint/lint.jar works, but it feels hacky. What is your recommendation? Also, would it be possible to add a list of custom rule jar files to lintOptions?
- I couldn't find a way to pass configuration parameters for my rules through the Lint options and I have been using Java system properties, but it feels ugly. It would be great to be able to configure rules in the lint configuration file. What is your recommendation for passing configuration into custom lint rules?
- Lint tries to load rules from every jar file in the lint directory, making it impossible for me to add dependent jar files. Is there a way to use custom rule jar files that have external dependencies?
- Your sample code doesn't include support for unit tests, which would be really useful for debugging rules. How can I set them up?
Also, I have a couple of minor questions about writing the rules themselves:- ResolvedClass has getMethods() but not getFields() (which would be useful, for example, to validate immutability). Is that an intentional omission?
- applicableSuperClasses() can't be used with generic base classes, since the Java visitor seems to check against the full signature (which includes type parameters). We are working around this by selecting all classes instead and checking manually, but it seems wasteful. Would it make sense for the visitor to look up the class name as well?
- Super minor nit: Lint only admits "//noinspection" to disable issues, while AS will also take "// noinspection". We've been using the latter, and it took me a while to figure out the problem!
Sorry about the long email!
Great, informative response! Library devs dearly look forward to a lint source set.
--
You received this message because you are subscribed to the Google Groups "adt-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to adt-dev+u...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
--