chore: Simplify guessProjectDir
This commit is contained in:
parent
7638a5422c
commit
8f9ac634fe
3 changed files with 14 additions and 7 deletions
|
@ -17,10 +17,10 @@
|
||||||
package com.falsepattern.zigbrains.project.console;
|
package com.falsepattern.zigbrains.project.console;
|
||||||
|
|
||||||
import com.falsepattern.zigbrains.common.util.FileUtil;
|
import com.falsepattern.zigbrains.common.util.FileUtil;
|
||||||
|
import com.falsepattern.zigbrains.project.util.ProjectUtil;
|
||||||
import com.intellij.execution.filters.Filter;
|
import com.intellij.execution.filters.Filter;
|
||||||
import com.intellij.execution.filters.OpenFileHyperlinkInfo;
|
import com.intellij.execution.filters.OpenFileHyperlinkInfo;
|
||||||
import com.intellij.openapi.project.Project;
|
import com.intellij.openapi.project.Project;
|
||||||
import com.intellij.openapi.project.ProjectUtil;
|
|
||||||
import com.intellij.openapi.vfs.VirtualFile;
|
import com.intellij.openapi.vfs.VirtualFile;
|
||||||
import kotlin.Pair;
|
import kotlin.Pair;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
@ -63,7 +63,7 @@ public class ZigSourceFileFilter implements Filter {
|
||||||
@Override
|
@Override
|
||||||
public Result applyFilter(@NotNull String line, int entireLength) {
|
public Result applyFilter(@NotNull String line, int entireLength) {
|
||||||
val lineStart = entireLength - line.length();
|
val lineStart = entireLength - line.length();
|
||||||
val projectPath = Optional.ofNullable(ProjectUtil.guessProjectDir(project)).map(VirtualFile::toNioPath).orElse(null);
|
val projectPath = ProjectUtil.guessProjectDir(project);
|
||||||
val results = new ArrayList<ResultItem>();
|
val results = new ArrayList<ResultItem>();
|
||||||
val matcher = LEN_REGEX.matcher(line);
|
val matcher = LEN_REGEX.matcher(line);
|
||||||
while (matcher.find()) {
|
while (matcher.find()) {
|
||||||
|
|
|
@ -16,16 +16,15 @@
|
||||||
|
|
||||||
package com.falsepattern.zigbrains.project.execution.base;
|
package com.falsepattern.zigbrains.project.execution.base;
|
||||||
|
|
||||||
|
import com.falsepattern.zigbrains.project.util.ProjectUtil;
|
||||||
import com.intellij.execution.ExecutionException;
|
import com.intellij.execution.ExecutionException;
|
||||||
import com.intellij.execution.Executor;
|
import com.intellij.execution.Executor;
|
||||||
import com.intellij.execution.configurations.ConfigurationFactory;
|
import com.intellij.execution.configurations.ConfigurationFactory;
|
||||||
import com.intellij.execution.configurations.LocatableConfigurationBase;
|
import com.intellij.execution.configurations.LocatableConfigurationBase;
|
||||||
import com.intellij.execution.runners.ExecutionEnvironment;
|
import com.intellij.execution.runners.ExecutionEnvironment;
|
||||||
import com.intellij.openapi.project.Project;
|
import com.intellij.openapi.project.Project;
|
||||||
import com.intellij.openapi.project.ProjectUtil;
|
|
||||||
import com.intellij.openapi.util.InvalidDataException;
|
import com.intellij.openapi.util.InvalidDataException;
|
||||||
import com.intellij.openapi.util.NlsActions;
|
import com.intellij.openapi.util.NlsActions;
|
||||||
import com.intellij.openapi.vfs.VirtualFile;
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.val;
|
import lombok.val;
|
||||||
import org.jdom.Element;
|
import org.jdom.Element;
|
||||||
|
@ -41,9 +40,7 @@ public abstract class ZigExecConfigBase<T extends ZigExecConfigBase<T>> extends
|
||||||
private ZigConfigEditor.CheckboxConfigurable pty = new ZigConfigEditor.CheckboxConfigurable("pty", "Emulate Terminal", false);
|
private ZigConfigEditor.CheckboxConfigurable pty = new ZigConfigEditor.CheckboxConfigurable("pty", "Emulate Terminal", false);
|
||||||
public ZigExecConfigBase(@NotNull Project project, @NotNull ConfigurationFactory factory, @Nullable String name) {
|
public ZigExecConfigBase(@NotNull Project project, @NotNull ConfigurationFactory factory, @Nullable String name) {
|
||||||
super(project, factory, name);
|
super(project, factory, name);
|
||||||
workingDirectory.setPath(getProject().isDefault() ? null : Optional.ofNullable(ProjectUtil.guessProjectDir(getProject()))
|
workingDirectory.setPath(getProject().isDefault() ? null : ProjectUtil.guessProjectDir(getProject()));
|
||||||
.map(VirtualFile::toNioPath)
|
|
||||||
.orElse(null));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -19,11 +19,21 @@ package com.falsepattern.zigbrains.project.util;
|
||||||
import com.falsepattern.zigbrains.project.openapi.components.ZigProjectSettingsService;
|
import com.falsepattern.zigbrains.project.openapi.components.ZigProjectSettingsService;
|
||||||
import com.falsepattern.zigbrains.project.toolchain.AbstractZigToolchain;
|
import com.falsepattern.zigbrains.project.toolchain.AbstractZigToolchain;
|
||||||
import com.intellij.openapi.project.Project;
|
import com.intellij.openapi.project.Project;
|
||||||
|
import lombok.val;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
|
import java.nio.file.Path;
|
||||||
|
|
||||||
public class ProjectUtil {
|
public class ProjectUtil {
|
||||||
public static @Nullable AbstractZigToolchain getToolchain(Project project) {
|
public static @Nullable AbstractZigToolchain getToolchain(Project project) {
|
||||||
return ZigProjectSettingsService.getInstance(project).getState().getToolchain();
|
return ZigProjectSettingsService.getInstance(project).getState().getToolchain();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static @Nullable Path guessProjectDir(Project project) {
|
||||||
|
val dir = com.intellij.openapi.project.ProjectUtil.guessProjectDir(project);
|
||||||
|
if (dir == null)
|
||||||
|
return null;
|
||||||
|
return dir.toNioPath();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue