package com.jetbrains.lang.dart.ide.runner.server;
import com.intellij.execution.configurations.ConfigurationFactory;
import com.intellij.execution.configurations.ConfigurationTypeBase;
import com.intellij.execution.configurations.ConfigurationTypeUtil;
import com.intellij.execution.configurations.RunConfiguration;
import com.intellij.openapi.project.Project;
import com.intellij.psi.search.FileTypeIndex;
import com.intellij.psi.search.GlobalSearchScope;
import com.jetbrains.lang.dart.DartBundle;
import com.jetbrains.lang.dart.DartFileType;
import icons.DartIcons;
import org.jetbrains.annotations.NotNull;
public class DartCommandLineRunConfigurationType extends ConfigurationTypeBase {
public static DartCommandLineRunConfigurationType getInstance() {
return ConfigurationTypeUtil.findConfigurationType(DartCommandLineRunConfigurationType.class);
}
public DartCommandLineRunConfigurationType() {
super("DartCommandLineRunConfigurationType",
DartBundle.message("runner.command.line.configuration.name"),
DartBundle.message("runner.command.line.configuration.description"),
DartIcons.Dart_16);
addFactory(new ConfigurationFactory(this) {
@Override
public String getName() {
return "Dart Command Line Application"; // compatibility
}
@NotNull
@Override
public RunConfiguration createTemplateConfiguration(@NotNull Project project) {
return new DartCommandLineRunConfiguration("Dart", project, DartCommandLineRunConfigurationType.this);
}
@Override
public boolean isApplicable(@NotNull Project project) {
return FileTypeIndex.containsFileOfType(DartFileType.INSTANCE, GlobalSearchScope.projectScope(project));
}
});
}
}