def extend()

in src/main/groovy/org/jetbrains/gradle/ext/IdeaExtPlugin.groovy [29:60]


  def extend(Project project) {
    def ideaModel = project.extensions.findByName('idea') as IdeaModel
    if (!ideaModel) { return }

    IdeaFilesProcessor ideaFilesProcessor = new IdeaFilesProcessor(project)
    if (ideaModel.project) {
      def projectSettings = (ideaModel.project as ExtensionAware).extensions.create("settings", ProjectSettings, project.objects, ideaFilesProcessor)

      def settingsExt = (projectSettings as ExtensionAware).extensions

      settingsExt.create("delegateActions", ActionDelegationConfig)
      settingsExt.create("taskTriggers", TaskTriggersConfig, project)
      settingsExt.create("compiler", IdeaCompilerConfiguration, project)
      settingsExt.create("groovyCompiler", GroovyCompilerConfiguration)
      settingsExt.create("codeStyle", CodeStyleConfig)
      settingsExt.create("copyright", CopyrightConfiguration, project)
      settingsExt.create("encodings", EncodingConfiguration, project)
      addRunConfigurations(settingsExt, project)
      addInspections(settingsExt, project)
      addArtifacts(settingsExt, project)
    }

    def ideaModule = ideaModel.module
    if (ideaModule) {
      def moduleSettings = (ideaModel.module as ExtensionAware).extensions.create("settings", ModuleSettings, project, ideaFilesProcessor)

      def settingsExt = (moduleSettings as ExtensionAware).extensions

      settingsExt.create("packagePrefix", PackagePrefixContainer, ideaModule)
      settingsExt.create("moduleType", ModuleTypesConfig, project, settingsExt)
    }
  }