feat: Better ZLS autodetect
This commit is contained in:
parent
765cd23897
commit
e68b89b6ed
2 changed files with 13 additions and 1 deletions
|
@ -23,6 +23,9 @@ Changelog structure reference:
|
||||||
- Standard library override always auto-enabling
|
- Standard library override always auto-enabling
|
||||||
- Better toolchain autodetect
|
- Better toolchain autodetect
|
||||||
|
|
||||||
|
- ZLS
|
||||||
|
- Better language server autodetect
|
||||||
|
|
||||||
## [16.1.0]
|
## [16.1.0]
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
|
@ -23,13 +23,22 @@ import java.util.List;
|
||||||
public class ZLSStreamConnectionProvider extends ProcessStreamConnectionProvider {
|
public class ZLSStreamConnectionProvider extends ProcessStreamConnectionProvider {
|
||||||
private static final Logger LOG = Logger.getInstance(ZLSStreamConnectionProvider.class);
|
private static final Logger LOG = Logger.getInstance(ZLSStreamConnectionProvider.class);
|
||||||
public ZLSStreamConnectionProvider(Project project) {
|
public ZLSStreamConnectionProvider(Project project) {
|
||||||
super.setCommands(getCommand(project));
|
super(getCommand(project));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static List<String> getCommand(Project project) {
|
public static List<String> getCommand(Project project) {
|
||||||
var svc = ZLSProjectSettingsService.getInstance(project);
|
var svc = ZLSProjectSettingsService.getInstance(project);
|
||||||
val state = svc.getState();
|
val state = svc.getState();
|
||||||
var zlsPath = state.zlsPath;
|
var zlsPath = state.zlsPath;
|
||||||
|
if (StringUtil.isEmpty(zlsPath)) {
|
||||||
|
zlsPath = com.falsepattern.zigbrains.common.util.FileUtil.findExecutableOnPATH("zls").map(Path::toString).orElse(null);
|
||||||
|
if (zlsPath == null) {
|
||||||
|
Notifications.Bus.notify(new Notification("ZigBrains.ZLS", "Could not detect ZLS binary! Please configure it!",
|
||||||
|
NotificationType.ERROR));
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
state.setZlsPath(zlsPath);
|
||||||
|
}
|
||||||
if (!validatePath("ZLS Binary", zlsPath, false)) {
|
if (!validatePath("ZLS Binary", zlsPath, false)) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue