fix: NPE in go to definition

This commit is contained in:
FalsePattern 2024-03-10 12:04:45 +01:00
parent 733f0b2622
commit b4539c0aa9
Signed by: falsepattern
GPG key ID: E930CDEC50C50E23
2 changed files with 11 additions and 5 deletions

View file

@ -58,6 +58,8 @@ public class LSPGotoDefinitionAction extends ShowImplementationsAction {
super.actionPerformed(e);
return;
}
manager.gotoDefinition(psiElement);
if (!manager.gotoDefinition(psiElement)) {
super.actionPerformed(e);
}
}
}

View file

@ -1285,14 +1285,16 @@ public class EditorEventManager {
}
}
// Tries to go to definition
public void gotoDefinition(PsiElement element) {
public boolean gotoDefinition(PsiElement element) {
if (editor.isDisposed()) {
return;
return false;
}
val sourceOffset = element.getTextOffset();
val loc = requestDefinition(DocumentUtils.offsetToLSPPos(editor, sourceOffset));
if (loc == null)
return false;
gotoLocation(loc);
return gotoLocation(loc);
}
// Tries to go to declaration / show usages based on the element which is
@ -1327,7 +1329,7 @@ public class EditorEventManager {
}
}
public void gotoLocation(Location loc) {
public boolean gotoLocation(Location loc) {
VirtualFile file = null;
try {
file = VfsUtil.findFileByURL(new URL(loc.getUri()));
@ -1349,9 +1351,11 @@ public class EditorEventManager {
}
}
});
return true;
} else {
LOG.warn("Empty file for " + loc.getUri());
}
return false;
}
public void requestAndShowCodeActions() {