feat: Better toolchain autodetect

This commit is contained in:
FalsePattern 2024-07-26 16:45:32 +02:00
parent 76f29fa65c
commit 765cd23897
Signed by: falsepattern
GPG key ID: E930CDEC50C50E23
2 changed files with 9 additions and 3 deletions

View file

@ -21,6 +21,7 @@ Changelog structure reference:
- Zig - Zig
- Standard library override always auto-enabling - Standard library override always auto-enabling
- Better toolchain autodetect
## [16.1.0] ## [16.1.0]

View file

@ -30,9 +30,14 @@ public class ToolchainZLSConfigProvider implements ZLSConfigProvider {
public void getEnvironment(Project project, ZLSConfig.ZLSConfigBuilder builder) { public void getEnvironment(Project project, ZLSConfig.ZLSConfigBuilder builder) {
val svc = ZigProjectSettingsService.getInstance(project); val svc = ZigProjectSettingsService.getInstance(project);
val state = svc.getState(); val state = svc.getState();
val toolchain = state.getToolchain(); var toolchain = state.getToolchain();
if (toolchain == null) if (toolchain == null) {
toolchain = AbstractZigToolchain.suggest();
if (toolchain == null) {
return; return;
}
state.setToolchain(toolchain);
}
val projectDir = ProjectUtil.guessProjectDir(project); val projectDir = ProjectUtil.guessProjectDir(project);
val env = toolchain.zig().getEnv(projectDir == null ? Path.of(".") : projectDir.toNioPath()); val env = toolchain.zig().getEnv(projectDir == null ? Path.of(".") : projectDir.toNioPath());
env.ifPresent(e -> builder.zig_exe_path(e.zigExecutable()).zig_lib_path(state.overrideStdPath ? Path.of(state.explicitPathToStd).getParent().toString() : e.libDirectory())); env.ifPresent(e -> builder.zig_exe_path(e.zigExecutable()).zig_lib_path(state.overrideStdPath ? Path.of(state.explicitPathToStd).getParent().toString() : e.libDirectory()));