Hi, I'm looking for some ideas on https://github.com/gradle/gradle/blob/master/design-docs/ide-integration.md#ide-hides-implementation-tasks& 2nd part of https://github.com/gradle/gradle/blob/master/design-docs/ide-integration.md#feature---tooling-api-parity-with-command-line-for-task-visualisation-and-executiondescribing how to tell important task from implementation pieces.
I agree that if a task has non empty group attribute then it is a signal that it should be important enough. I don't understand the other part 'any task that is declared as a public task of a build element'. If build element == BuildableElement then the only class implementing it is GradleProject and I guess we don't want to change behavior of GradleProject.getTask() to return subset of current results. Or what else is build element in this context? Now the question is how to make this available in Tooling API. We can add GradleTask#getGroup(). I like using task's group attribute because it is more powerful than say using description attribute or filtering based on some naming convention (for example ignoring tasks starting with '-'). It allows to filter some tasks (w/o group) and group the rest into tree-like view. The problem is that this is an addition to an existing interface. It is expected that this is OK for ToolingAPI users but it can be hard to support this for an older Gradle providers. I think it can be relatively easy to support this for Gradle 1.8+ only. Would it be sufficient? -Radim