gradle: how do I list tasks introduced by a certain plugin

I'm afraid it is not possible because of the nature how gradle plugins are applied.

If you take a look at Plugin interface, you will see it has a single apply(Project p) method. Plugin responsibility is to configure a project - it can add specific tasks / configurations / etc. For example, gradle JavaPlugin is stateless, so you can't get tasks from it.

The only solution that comes to mind is to get a difference of tasks after the plugin is applied:

build.gradle

def tasksBefore = [], tasksAfter = []    
project.tasks.each { tasksBefore.add(it.name) } // get all tasks

apply(plugin: 'idea') // apply plugin

project.tasks.each { tasksAfter.add(it.name) } // get all tasks
tasksAfter.removeAll(tasksBefore); // get the difference

println 'idea tasks: ' + tasksAfter;

This will print tasks that were added by Idea plugin:

idea tasks: [cleanIdea, cleanIdeaModule, cleanIdeaProject, cleanIdeaWorkspace, idea, ideaModule, ideaProject, ideaWorkspace]

You can play a bit with this code and build an acceptable solution.