All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.xtext.gradle.idea.tasks.RunIdea Maven / Gradle / Ivy

There is a newer version: 2.0.9-alpha.3
Show newest version
package org.xtext.gradle.idea.tasks;

import com.google.common.collect.Lists;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.xtend.lib.annotations.Accessors;
import org.eclipse.xtend2.lib.StringConcatenation;
import org.eclipse.xtext.xbase.lib.Pure;
import org.gradle.api.internal.tasks.options.Option;
import org.gradle.api.tasks.Input;
import org.gradle.api.tasks.JavaExec;

@Accessors
@SuppressWarnings("all")
public class RunIdea extends JavaExec {
  @Input
  private File sandboxDir;
  
  @Input
  private File ideaHome;
  
  @Input
  private boolean debugBuilder;
  
  public RunIdea() {
    this.setMain("com.intellij.idea.Main");
    this.setMaxHeapSize("2G");
    this.jvmArgs("-XX:MaxPermSize=512m");
  }
  
  @Override
  public List getJvmArgs() {
    ArrayList _xblockexpression = null;
    {
      List _jvmArgs = super.getJvmArgs();
      final ArrayList args = Lists.newArrayList(_jvmArgs);
      StringConcatenation _builder = new StringConcatenation();
      _builder.append("-Didea.home.path=");
      _builder.append(this.ideaHome, "");
      args.add(_builder.toString());
      StringConcatenation _builder_1 = new StringConcatenation();
      _builder_1.append("-Didea.plugins.path=");
      _builder_1.append(this.sandboxDir, "");
      args.add(_builder_1.toString());
      if (this.debugBuilder) {
        StringConcatenation _builder_2 = new StringConcatenation();
        _builder_2.append("-Dcompiler.process.debug.port=5005");
        args.add(_builder_2.toString());
      }
      _xblockexpression = args;
    }
    return _xblockexpression;
  }
  
  @Option(option = "debug-builder", description = "Starts Idea\'s external builder process in debugging mode on port 5005")
  public boolean setDebugBuilder(final boolean debugBuilder) {
    return this.debugBuilder = debugBuilder;
  }
  
  @Pure
  public File getSandboxDir() {
    return this.sandboxDir;
  }
  
  public void setSandboxDir(final File sandboxDir) {
    this.sandboxDir = sandboxDir;
  }
  
  @Pure
  public File getIdeaHome() {
    return this.ideaHome;
  }
  
  public void setIdeaHome(final File ideaHome) {
    this.ideaHome = ideaHome;
  }
  
  @Pure
  public boolean isDebugBuilder() {
    return this.debugBuilder;
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy