chore: Simplify guessProjectDir

This commit is contained in:
FalsePattern 2024-08-06 14:18:42 +02:00
parent 7638a5422c
commit 8f9ac634fe
Signed by: falsepattern
GPG key ID: E930CDEC50C50E23
3 changed files with 14 additions and 7 deletions

View file

@ -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()) {

View file

@ -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

View file

@ -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();
}
} }