Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 1 addition & 12 deletions src/io/flutter/run/SdkAttachConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
import com.intellij.execution.configurations.GeneralCommandLine;
import com.intellij.execution.configurations.RunConfiguration;
import com.intellij.execution.configurations.RuntimeConfigurationError;
import com.intellij.execution.filters.TextConsoleBuilder;
import com.intellij.execution.runners.ExecutionEnvironment;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.module.ModuleUtilCore;
Expand All @@ -30,11 +29,9 @@
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.psi.PsiElement;
import com.intellij.refactoring.listeners.RefactoringElementListener;
import com.jetbrains.lang.dart.ide.runner.DartConsoleFilter;
import com.jetbrains.lang.dart.sdk.DartConfigurable;
import com.jetbrains.lang.dart.sdk.DartSdk;
import io.flutter.FlutterBundle;
import io.flutter.console.FlutterConsoleFilter;
import io.flutter.dart.DartPlugin;
import io.flutter.pub.PubRoot;
import io.flutter.run.daemon.FlutterApp;
Expand Down Expand Up @@ -102,15 +99,7 @@ public void flutterSdkRemoved() {
};

LaunchState launcher = new AttachState(env, mainFile.getAppDir(), mainFile.getFile(), this, createAppCallback);

// Set up additional console filters.
TextConsoleBuilder builder = launcher.getConsoleBuilder();
builder.addFilter(new DartConsoleFilter(env.getProject(), mainFile.getFile()));

if (module != null) {
builder.addFilter(new FlutterConsoleFilter(module));
}

addConsoleFilters(launcher, env, mainFile, module);
return launcher;
}

Expand Down
42 changes: 31 additions & 11 deletions src/io/flutter/run/SdkRunConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,28 @@
*/
package io.flutter.run;

import static java.nio.file.FileVisitResult.CONTINUE;

import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonPrimitive;
import com.intellij.execution.ExecutionException;
import com.intellij.execution.Executor;
import com.intellij.execution.configurations.*;
import com.intellij.execution.configurations.ConfigurationFactory;
import com.intellij.execution.configurations.GeneralCommandLine;
import com.intellij.execution.configurations.LocatableConfigurationBase;
import com.intellij.execution.configurations.RefactoringListenerProvider;
import com.intellij.execution.configurations.RunConfiguration;
import com.intellij.execution.configurations.RuntimeConfigurationError;
import com.intellij.execution.configurations.RuntimeConfigurationException;
import com.intellij.execution.filters.TextConsoleBuilder;
import com.intellij.execution.filters.UrlFilter;
import com.intellij.execution.runners.ExecutionEnvironment;
import com.intellij.execution.runners.RunConfigurationWithSuppressedDefaultRunAction;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.module.ModuleUtil;
import com.intellij.openapi.module.ModuleUtilCore;
import com.intellij.openapi.options.SettingsEditor;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.Disposer;
Expand All @@ -40,16 +50,18 @@
import io.flutter.run.daemon.FlutterDevice;
import io.flutter.run.daemon.RunMode;
import io.flutter.sdk.FlutterSdkManager;
import org.jdom.Element;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.*;
import java.nio.file.FileSystems;
import java.nio.file.FileVisitResult;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.PathMatcher;
import java.nio.file.SimpleFileVisitor;
import java.nio.file.attribute.BasicFileAttributes;

import static java.nio.file.FileVisitResult.CONTINUE;
import org.jdom.Element;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

/**
* Run configuration used for launching a Flutter app using the Flutter SDK.
Expand Down Expand Up @@ -139,7 +151,7 @@ public LaunchState getState(@NotNull Executor executor, @NotNull ExecutionEnviro
final MainFile mainFile = MainFile.verify(launchFields.getFilePath(), env.getProject()).get();
final Project project = env.getProject();
final RunMode mode = RunMode.fromEnv(env);
final Module module = ModuleUtil.findModuleForFile(mainFile.getFile(), env.getProject());
final Module module = ModuleUtilCore.findModuleForFile(mainFile.getFile(), env.getProject());
final LaunchState.CreateAppCallback createAppCallback = (device) -> {
if (device == null) return null;

Expand Down Expand Up @@ -212,16 +224,22 @@ public void flutterSdkRemoved() {
};

final LaunchState launcher = new LaunchState(env, mainFile.getAppDir(), mainFile.getFile(), this, createAppCallback);
addConsoleFilters(launcher, env, mainFile, module);
return launcher;
}

protected void addConsoleFilters(@NotNull LaunchState launcher,
@NotNull ExecutionEnvironment env,
@NotNull MainFile mainFile,
@Nullable Module module) {
// Set up additional console filters.
final TextConsoleBuilder builder = launcher.getConsoleBuilder();
builder.addFilter(new DartConsoleFilter(env.getProject(), mainFile.getFile()));

if (module != null) {
builder.addFilter(new FlutterConsoleFilter(module));
}

return launcher;
builder.addFilter(new UrlFilter());
}

@NotNull
Expand All @@ -233,12 +251,14 @@ public GeneralCommandLine getCommand(@NotNull ExecutionEnvironment env, @Nullabl
return fields.createFlutterSdkRunCommand(project, mode, FlutterLaunchMode.fromEnv(env), device);
}

@Override
@Nullable
public String suggestedName() {
final String filePath = fields.getFilePath();
return filePath == null ? null : PathUtil.getFileName(filePath);
}

@Override
public SdkRunConfig clone() {
final SdkRunConfig clone = (SdkRunConfig)super.clone();
clone.fields = fields.copy();
Expand Down
2 changes: 0 additions & 2 deletions src/io/flutter/run/daemon/DaemonConsoleView.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
import com.intellij.execution.configurations.SearchScopeProvider;
import com.intellij.execution.filters.TextConsoleBuilder;
import com.intellij.execution.filters.TextConsoleBuilderImpl;
import com.intellij.execution.filters.UrlFilter;
import com.intellij.execution.impl.ConsoleViewImpl;
import com.intellij.execution.runners.ExecutionEnvironment;
import com.intellij.execution.ui.ConsoleView;
Expand Down Expand Up @@ -47,7 +46,6 @@ protected ConsoleView createConsole() {

// Set up basic console filters. (More may be added later.)
builder.addFilter(new DartRelativePathsConsoleFilter(env.getProject(), workDir.getPath()));
builder.addFilter(new UrlFilter());
launcher.setConsoleBuilder(builder);
}

Expand Down